From 9777aa9d134e02fc335d37a9c54320aeaee3131e Mon Sep 17 00:00:00 2001 From: Marxsal Date: Tue, 22 Feb 2022 11:56:07 -0800 Subject: [PATCH 01/91] Webdav - category "paid" hosting (#6476) --- editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid b/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid index 8780d6cbb..8e246e128 100644 --- a/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid +++ b/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid @@ -4,7 +4,7 @@ created: 20160216191710789 delivery: Protocol description: Standard web protocol available on products such as Sharepoint method: save -modified: 20211129222601543 +modified: 20220222190056634 tags: Android Chrome Firefox [[Internet Explorer]] Linux Mac Opera PHP Safari Saving Windows iOS Edge title: Saving via WebDAV type: text/vnd.tiddlywiki @@ -66,6 +66,8 @@ When you do, an authentication dialog will come up. Use your email address that You should be able to load the file and save changes back in place. +!! Paid Hosting + !!! pCloud //''pCloud''// is cloud service with servers in Europe and the United States. When you sign up, you need to select which server location is best for you. Then in your web browser, sign in to the service. Upload the file you wish to access via the browser interface. Then, in another tab, open either From 5f994f7d46a5134340e220aa53c219c1d9b50dd5 Mon Sep 17 00:00:00 2001 From: Marxsal Date: Wed, 23 Feb 2022 13:47:21 -0800 Subject: [PATCH 02/91] Savers: Polly (#6481) * Savers: Polly * Polly, with url --- .../tiddlers/saving/Saving with Polly.tid | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 editions/tw5.com/tiddlers/saving/Saving with Polly.tid diff --git a/editions/tw5.com/tiddlers/saving/Saving with Polly.tid b/editions/tw5.com/tiddlers/saving/Saving with Polly.tid new file mode 100644 index 000000000..60ae74087 --- /dev/null +++ b/editions/tw5.com/tiddlers/saving/Saving with Polly.tid @@ -0,0 +1,29 @@ +caption: Polly +color: #29B6F6 +community-author: TiddlyTweeter +created: 20220223153410510 +delivery: Service +description: Batch script for saving downloaded TiddlyWiki files. +method: save +modified: 20220223160414274 +tags: Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows Edge +title: Saving with Polly +type: text/vnd.tiddlywiki + +[[Polly|https://github.com/Marxsal/polly]] is a batch file system using Windows //~PowerShell// to restore ~TiddlyWiki files from a specified download directory to their original home directory. + +Effectively, this becomes a new way to save your files, but with these features: + +* No binary executables +* Human-readable batch script. +* No special plugins in your ~TiddlyWiki file +* No special browser required +* No browser extension required. +* No need for node.exe running in background +* Total size expanded package only 100k +* Backups as regular file and/or zip to specified directories +* The ability to "parrot" extra copies to target directories (e.g. a Dropbox folder) + +It should be able to run anywhere that //~PowerShell// runs, including Windows, Linux, and Mac. + +https://github.com/Marxsal/polly \ No newline at end of file From 2c38c8351b0b9c091b61ffbc07ab49c3162985ce Mon Sep 17 00:00:00 2001 From: Ben Webber Date: Sat, 26 Feb 2022 09:42:24 +0000 Subject: [PATCH 03/91] Make butlast[0] consistent with rest (#6483) butlast[0] now returns the input list unchanged. Fixes: #5833 --- core/modules/filters/listops.js | 3 ++- editions/test/tiddlers/tests/test-filters.js | 1 + editions/tw5.com/tiddlers/filters/butlast.tid | 4 +++- editions/tw5.com/tiddlers/filters/examples/butlast.tid | 7 ++++--- editions/tw5.com/tiddlers/filters/examples/rest.tid | 7 ++++--- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/core/modules/filters/listops.js b/core/modules/filters/listops.js index ab194339a..02d92831a 100644 --- a/core/modules/filters/listops.js +++ b/core/modules/filters/listops.js @@ -87,7 +87,8 @@ exports.butlast = function(source,operator,options) { source(function(tiddler,title) { results.push(title); }); - return results.slice(0,-count); + var index = count === 0 ? results.length : -count; + return results.slice(0,index); }; exports.bl = exports.butlast; diff --git a/editions/test/tiddlers/tests/test-filters.js b/editions/test/tiddlers/tests/test-filters.js index 7fba38376..18545221b 100644 --- a/editions/test/tiddlers/tests/test-filters.js +++ b/editions/test/tiddlers/tests/test-filters.js @@ -371,6 +371,7 @@ Tests the filtering mechanism. expect(wiki.filterTiddlers("[sort[title]reverse[]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin"); expect(wiki.filterTiddlers("[sort[title]reverse[x]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin"); expect(wiki.filterTiddlers("[sort[title]butlast[]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three"); + expect(wiki.filterTiddlers("[sort[title]butlast[0]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne"); expect(wiki.filterTiddlers("[sort[title]butlast[2]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one"); expect(wiki.filterTiddlers("[sort[title]butlast[11]]").join(",")).toBe(""); expect(wiki.filterTiddlers("[sort[title]butlast[x]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three"); diff --git a/editions/tw5.com/tiddlers/filters/butlast.tid b/editions/tw5.com/tiddlers/filters/butlast.tid index c88346884..fd79ea7b3 100644 --- a/editions/tw5.com/tiddlers/filters/butlast.tid +++ b/editions/tw5.com/tiddlers/filters/butlast.tid @@ -1,5 +1,5 @@ created: 20140410103123179 -modified: 20150203191930000 +modified: 20220226043344258 tags: [[Filter Operators]] [[Order Operators]] title: butlast Operator type: text/vnd.tiddlywiki @@ -10,4 +10,6 @@ op-parameter: an integer, defaulting to 1 op-parameter-name: N op-output: all but the last <<.place N>> input titles +<<.from-version "5.2.2">> The <<.op butlast>> operator returns the input list unchanged if <<.place N>> is 0. This is consistent with the behaviour of the [[rest Operator]]. + <<.operator-examples "butlast">> diff --git a/editions/tw5.com/tiddlers/filters/examples/butlast.tid b/editions/tw5.com/tiddlers/filters/examples/butlast.tid index 6a0e2b235..9f67e52cd 100644 --- a/editions/tw5.com/tiddlers/filters/examples/butlast.tid +++ b/editions/tw5.com/tiddlers/filters/examples/butlast.tid @@ -1,5 +1,5 @@ created: 20150118134611000 -modified: 20150118183143000 +modified: 20220226043344258 tags: [[butlast Operator]] [[Operator Examples]] title: butlast Operator (Examples) type: text/vnd.tiddlywiki @@ -7,5 +7,6 @@ type: text/vnd.tiddlywiki <<.using-days-of-week>> <<.operator-example 1 "[list[Days of the Week]butlast[]]">> -<<.operator-example 2 "[list[Days of the Week]butlast[2]]">> -<<.operator-example 3 "A B C D E F G H I J K L M +[butlast[7]]">> +<<.operator-example 2 "[list[Days of the Week]butlast[0]]">> +<<.operator-example 3 "[list[Days of the Week]butlast[2]]">> +<<.operator-example 4 "A B C D E F G H I J K L M +[butlast[7]]">> diff --git a/editions/tw5.com/tiddlers/filters/examples/rest.tid b/editions/tw5.com/tiddlers/filters/examples/rest.tid index 61b35b119..a9d2ab416 100644 --- a/editions/tw5.com/tiddlers/filters/examples/rest.tid +++ b/editions/tw5.com/tiddlers/filters/examples/rest.tid @@ -1,5 +1,5 @@ created: 20150118134611000 -modified: 20150123211722000 +modified: 20220226043344258 tags: [[rest Operator]] [[Operator Examples]] title: rest Operator (Examples) type: text/vnd.tiddlywiki @@ -7,5 +7,6 @@ type: text/vnd.tiddlywiki <<.using-days-of-week>> <<.operator-example 1 "[list[Days of the Week]rest[]]">> -<<.operator-example 2 "[list[Days of the Week]rest[3]]">> -<<.operator-example 3 "Z Y X W V U T S R Q P O +[rest[5]]">> +<<.operator-example 2 "[list[Days of the Week]rest[0]]">> +<<.operator-example 3 "[list[Days of the Week]rest[3]]">> +<<.operator-example 4 "Z Y X W V U T S R Q P O +[rest[5]]">> From a071881562efa0eae5498cde857abd235167274a Mon Sep 17 00:00:00 2001 From: TW Videos <11172651+TiddlyVee@users.noreply.github.com> Date: Sat, 26 Feb 2022 19:45:58 +0100 Subject: [PATCH 04/91] Links to CLA: change branch from master to tiddlywiki-com (#6488) --- .../tiddlers/community/Contributor License Agreement.tid | 6 +++--- .../community/Signing the Contributor License Agreement.tid | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/editions/tw5.com/tiddlers/community/Contributor License Agreement.tid b/editions/tw5.com/tiddlers/community/Contributor License Agreement.tid index 0ea575d17..fb360537f 100644 --- a/editions/tw5.com/tiddlers/community/Contributor License Agreement.tid +++ b/editions/tw5.com/tiddlers/community/Contributor License Agreement.tid @@ -1,10 +1,10 @@ created: 20150630205511173 -modified: 20150630205632460 +modified: 20220226175543038 tags: title: Contributor License Agreement type: text/vnd.tiddlywiki Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community). -* For individuals use: [[licenses/CLA-individual|https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-individual.md]] -* For entities use: [[licenses/CLA-entity|https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-entity.md]] +* For individuals use: [[licenses/CLA-individual|https://github.com/Jermolene/TiddlyWiki5/tree/tiddlywiki-com/licenses/cla-individual.md]] +* For entities use: [[licenses/CLA-entity|https://github.com/Jermolene/TiddlyWiki5/tree/tiddlywiki-com/licenses/cla-entity.md]] diff --git a/editions/tw5.com/tiddlers/community/Signing the Contributor License Agreement.tid b/editions/tw5.com/tiddlers/community/Signing the Contributor License Agreement.tid index 9f924bfde..4fa2c1e35 100644 --- a/editions/tw5.com/tiddlers/community/Signing the Contributor License Agreement.tid +++ b/editions/tw5.com/tiddlers/community/Signing the Contributor License Agreement.tid @@ -1,5 +1,5 @@ created: 20150630205653005 -modified: 20190115165616599 +modified: 20220226175503241 tags: title: Signing the Contributor License Agreement type: text/vnd.tiddlywiki @@ -8,7 +8,7 @@ Create a GitHub pull request to add your name to `cla-individual.md` or `cla-ent ''step by step'' -# Navigate to [[licenses/CLA-individual|https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-individual.md]] or [[licenses/CLA-entity|https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-entity.md]] according to whether you are signing as an individual or representative of an organisation +# Navigate to [[licenses/CLA-individual|https://github.com/Jermolene/TiddlyWiki5/tree/tiddlywiki-com/licenses/cla-individual.md]] or [[licenses/CLA-entity|https://github.com/Jermolene/TiddlyWiki5/tree/tiddlywiki-com/licenses/cla-entity.md]] according to whether you are signing as an individual or representative of an organisation # Ensure that the "branch" dropdown at the top left is set to `tiddlywiki-com` # Click the "edit" button at the top-right corner (clicking this button will fork the project so you can edit the file) # Add your name at the bottom From 45a1478bc957a6d642b1f14f55d3acdfee757c29 Mon Sep 17 00:00:00 2001 From: TW Videos <11172651+TiddlyVee@users.noreply.github.com> Date: Sat, 26 Feb 2022 19:48:49 +0100 Subject: [PATCH 05/91] Allow TiddlyVee to submitt PRs (#6487) This is pmario and TiddlyVee will be used to create real PRs shown in videos --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index bd2c0ef67..2944940e9 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -477,3 +477,5 @@ Brian Theado, @btheado, 2021-10-10 Fred, @tw-FRed, 2021/12/04 @davout1806, 2021/12/17 + +@pmario, @TiddlyVee, 2022/02/26 From 615d8da64ff78c5f26e41db103d5df70f51ff571 Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Sat, 26 Feb 2022 19:59:45 +0100 Subject: [PATCH 06/91] Docs: mention MessageCatcher widget in LinkCatcher tiddler (#6485) --- editions/tw5.com/tiddlers/widgets/LinkCatcherWidget.tid | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/widgets/LinkCatcherWidget.tid b/editions/tw5.com/tiddlers/widgets/LinkCatcherWidget.tid index b1930f4e8..1e94d6e89 100644 --- a/editions/tw5.com/tiddlers/widgets/LinkCatcherWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/LinkCatcherWidget.tid @@ -1,6 +1,6 @@ caption: linkcatcher created: 20131024141900000 -modified: 20211009122821108 +modified: 20220226121122574 tags: Widgets MessageHandlerWidgets TriggeringWidgets title: LinkCatcherWidget type: text/vnd.tiddlywiki @@ -25,3 +25,4 @@ The content of the `<$linkcatcher>` widget is displayed normally. |setTo |Value to be assigned by the `set` attribute | |actions |Actions to be performed when a link is caught. Within the action string, the variable "navigateTo" contains the title of the tiddler being navigated. <<.from-version "5.1.23">> the <<.def "modifier">> variable lists the modifier keys that are pressed when the action is invoked. The possible modifiers are ''ctrl'', ''ctrl-alt'', ''ctrl-shift'', ''alt'', ''alt-shift'', ''shift'' and ''ctrl-alt-shift'' | +<<.tip """<<.from-version "5.2.0">> For more complex use cases involving trapping the <<.param tm-navigate>> message consider the MessageCatcherWidget which provides greater flexibility""">> From b3268546ef8ba3153d76f46f72d0496a9a181508 Mon Sep 17 00:00:00 2001 From: tw-FRed <95534072+tw-FRed@users.noreply.github.com> Date: Sun, 27 Feb 2022 18:21:55 +0100 Subject: [PATCH 07/91] fr-FR next batch of translation updates (#6489) * Move GettingStarted to the right place Previous batch of translations changed the wrong file * Revert #6467 for GettingStarted * Delete $ _editions_tw5.com_doc-macros.tid Wrong name for the updated tiddler * Update $__editions_tw5.com_doc-macros.tid * Translation updates * Update of 2 tiddlers referenced on HelloThere * 5 more tiddlers, referenced in WikiText.tid --- Block Quotes in WikiText.tid | 78 ++++++++ Code Blocks in WikiText.tid | 44 +++++ Formatting in WikiText.tid | 23 +++ HTML in WikiText.tid | 119 ++++++++++++ Headings in WikiText.tid | 22 +++ .../$ _editions_tw5.com_doc-macros.tid | 174 ------------------ .../$__editions_tw5.com_doc-macros.tid | 68 ++++++- .../Creating and editing tiddlers.tid | 22 +-- editions/fr-FR/tiddlers/GettingStarted.tid | 30 +-- .../fr-FR/tiddlers/How to export tiddlers.tid | 31 ++++ .../fr-FR/tiddlers/Importing Tiddlers.tid | 26 +++ editions/fr-FR/tiddlers/PermaLinks.tid | 38 ++-- editions/fr-FR/tiddlers/Share Plugin.tid | 15 ++ .../Sharing a TiddlyWiki on Dropbox.tid | 26 +++ .../Sharing your tiddlers with others.tid | 18 ++ .../fr-FR/tiddlers/TaskManagementExample.tid | 4 +- ...dlyWiki for Scholars by Alberto Molina.tid | 15 ++ languages/fr-FR/GettingStarted.tid | 39 ++-- 18 files changed, 543 insertions(+), 249 deletions(-) create mode 100644 Block Quotes in WikiText.tid create mode 100644 Code Blocks in WikiText.tid create mode 100644 Formatting in WikiText.tid create mode 100644 HTML in WikiText.tid create mode 100644 Headings in WikiText.tid delete mode 100644 editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid create mode 100644 editions/fr-FR/tiddlers/How to export tiddlers.tid create mode 100644 editions/fr-FR/tiddlers/Importing Tiddlers.tid create mode 100644 editions/fr-FR/tiddlers/Share Plugin.tid create mode 100644 editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid create mode 100644 editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid create mode 100644 editions/fr-FR/tiddlers/TiddlyWiki for Scholars by Alberto Molina.tid diff --git a/Block Quotes in WikiText.tid b/Block Quotes in WikiText.tid new file mode 100644 index 000000000..5727fb51a --- /dev/null +++ b/Block Quotes in WikiText.tid @@ -0,0 +1,78 @@ +created: 20131206154636572 +fr-title: Citations en bloc dans WikiText +modified: 20220226225218713 +tags: WikiText +title: Block Quotes in WikiText +type: text/vnd.tiddlywiki + +Il existe deux manières de produire des éléments HTML de type citation en bloc avec <>, l'une pour du contenu qui pourra s'afficher sur plusieurs lignes, et l'autre pour du contenu qui ne devra s'afficher que sur une seule ligne. + +! Citation en bloc multi-lignes + +La syntaxe pour les blocs multi-lignes est<<:>> + +<> + +!! Attribution + +Une attribution peut-être ajoutée au bloc comme ceci<<:>> + +<> + +!! Classes CSS + +Les blocs peuvent hériter des propriétés de classes CSS<<:>> + +<> + +Le cœur de <> inclut la classe `tc-big-quote` qui représente les citations avec des guillemets géants<<:>> + +<> + +! Bloc uniligne + +La syntaxe des citations uniligne est une extension de la syntaxe des [[listes avec WikiText|Lists in WikiText]]. Par exemple<<:>> + +< Bloc de citation uniligne +> Un autre bloc uniligne +">> + +Vous pouvez imbriquer des blocs unilignes comme ceci<<:>> + +``` +> Un bloc de niveau 1 +>> Un bloc de niveau 2 +> Un autre bloc de niveau 1 +">> +``` + +Ce qui affichera<<:>> + +> Un bloc de niveau 1 +>> Un bloc de niveau 2 +> Un autre bloc de niveau 1 + +Vous pouvez aussi mixer les citations en bloc avec d'autres types de listes. Par exemple<<:>> + +< Un bloc uniligne +**> Un autre bloc uniligne +* Liste trois +">> + +!! Pour aller plus loin +* les [[blocs en HTML5|http://www.alsacreations.com/tuto/lire/530-La-structure-des-balises-bloc-et-en-ligne.html]] diff --git a/Code Blocks in WikiText.tid b/Code Blocks in WikiText.tid new file mode 100644 index 000000000..a1c1032a7 --- /dev/null +++ b/Code Blocks in WikiText.tid @@ -0,0 +1,44 @@ +caption: Blocs de code +created: 20141016143834720 +fr-title: Blocs de code en WikiText +modified: 20220226232420710 +tags: WikiText +title: Code Blocks in WikiText +type: text/vnd.tiddlywiki + +Un bloc de code (<<.icon $:/core/images/mono-block>>) est délimité par trois caractères <> ``` (connus en anglais sous le nom de <>)<<:>> + +
+```
+Ce texte aura une chasse fixe et ne sera pas `formaté`.
+```
+
+ +Donnera le résultat suivant<<:>> + +``` +Ce texte aura une chasse fixe et ne sera pas `formaté`. +``` + +Pour être interprétés correctement, les trois accents graves doivent être placés au début d'une ligne et immédiatement suivis d'un retour à la ligne. + +Souvenez-vous que le paragraphe précédent doit s'être terminé correctement, à l'aide de deux retours à la ligne. L'exemple suivant est donc ''faux''<<:>> + +
+Ceci est un paragraphe ordinaire.
+```
+Ce texte aura une chasse fixe et ne sera pas `formaté`.
+```
+
+ +La version correcte est<<:>> + +
+Ceci est un paragraphe ordinaire.
+
+```
+Ce texte aura une chasse fixe et ne sera pas `formaté`.
+```
+
+ +Certains claviers traitent le backtick comme une [[touche morte|http://fr.wikipedia.org/wiki/Touche_morte]], le rendant difficile à taper. L'astuce est de taper 3 ` suivis d'un espace. Une autre méthode consiste à taper 6 ` d'affilée, puis de bouger le curseur en arrière trois fois pour taper ou coller le contenu du bloc. diff --git a/Formatting in WikiText.tid b/Formatting in WikiText.tid new file mode 100644 index 000000000..8066ab8e8 --- /dev/null +++ b/Formatting in WikiText.tid @@ -0,0 +1,23 @@ +caption: Formatage +created: 20141016142259705 +fr-title: Mise en forme avec WikiText +modified: 20220226233811803 +tags: WikiText +title: Formatting in WikiText +type: text/vnd.tiddlywiki + +Voici les formatages de caractères disponibles en [[WikiTexte|WikiText]]<<:>> + +|Format |Résultat |Icône |h +|`code`
``code contenant du `code` `` |`code`
``code contenant du `code` `` |<<.icon $:/core/images/mono-line>> | +|`''gras''` |texte en ''gras'' |<<.icon $:/core/images/bold>> | +|`//italique//` |texte en //italique// |<<.icon $:/core/images/italic>> | +|`__souligné__` |texte __souligné__ |<<.icon $:/core/images/underline>> | +|`~~barré~~` |texte ~~barré~~ |<<.icon $:/core/images/strikethrough>> | +|`^^exposant^^` |texte en ^^exposant^^ |<<.icon $:/core/images/superscript>> | +|`,,indice,,` |texte en ,,indice,, |<<.icon $:/core/images/subscript>> | + +Voir aussi<<:>> [[WikiTexte : blocs de code|Code Blocks in WikiText]] + +; Remarque +: Si le code inclus est à la fin du code contenant, l'espace entre le ` et les `` est nécessaire. diff --git a/HTML in WikiText.tid b/HTML in WikiText.tid new file mode 100644 index 000000000..592275185 --- /dev/null +++ b/HTML in WikiText.tid @@ -0,0 +1,119 @@ +caption: HTML +created: 20141017141153174 +fr-title: HTML dans le WikiTexte +modified: 20220227020401008 +tags: WikiText +title: HTML in WikiText +type: text/vnd.tiddlywiki + +! Balises HTML et commentaires + +Les balises et les commentaires HTML peuvent être utilisées directement en [[WikiTexte|WikiText]]. Par exemple<<:>> + +< +Ceci est un simple bloc de texte. HelloThere + +">> + +; Remarque +: Par conséquent, un mot écrit entre "chevrons" `< >` sera interprété comme une balise HTML, ce qui peut entraîner des effets de bord (notamment à cause de l'inexistence de la balise fermante).
À la place, mieux vaut utiliser le [[code HTML|Codes HTML]] des caractères "chevrons" : `<` et `>` + +!! Commentaires //Pragma// + +<<.from-version 5.2.0>> Les commentaires peuvent maintenant être librement entremêlés avec les pragmas ou bien à l'intérieur du corps d'un bloc de wikitexte. + +``` + +\define test() +Un peu de texte +\end + +<> +``` + +! Important + +<<.tip """[[Les Widgets utilisent la même syntaxe que les balises HTML|Widgets in WikiText]], donc les informations suivantes s'appliquent aussi à eux.""">> + +! Mode //bloc// ou mode //texte// ? + +Pour que le contenu d'un élément HTML soit [[interprété|WikiText Parser Modes]] en [[mode bloc|Block Mode WikiText]], la balise ouvrante doit être suivie par deux retours à la ligne. + +Sans les deux retours à la ligne, le contenu des balises sera [[interprété|WikiText Parser Modes]] en [[mode texte|Inline Mode WikiText]], ce qui signifie que les formatages de mode bloc tels que les tableaux, les listes et les titres ne seront pas reconnus. + +Voir aussi <> et <>. + +! Éléments auto-fermants + +Les balises suivantes sont traitées comme si elles étaient vides, ce qui signifie que `` est traitée comme si c'était ``, et qu'aucune balise de fermeture `` n'est nécessaire. Mais si la balise fermante existe elle est ignorée et traitée comme du texte. + +* ``, ``, `
`, ``, ``, ``, `
`, ``, ``, ``, ``, ``, ``, ``, ``, `` + +Si vous ne fermez pas n'importe quelle autre balise HTML, <> se comportera comme si les balises manquantes étaient déportées à la fin du tiddler. + +! Attributs + +Par extension à la syntaxe conventionnelle HTML, les attributs des éléments ou widgets peuvent être écrits de différentes façons<<:>> + +* en tant que chaîne littérale +* en tant que transclusion de <> +* en tant que transclusion de [[macro ou de variable|Macros in WikiText]] +* en tant que résultat d'une [[expression de filtre|Filter Expression]] + +!! Valeurs littérales d'attributs + +Les valeurs littérales d'attribut peuvent utiliser différents styles de ponctuation<<:>> + +* Guillemets simples (c-à-d `attribut='valeur'`) +* Guillemets doubles (c-à-d `attribut="valeur"`) +* Triples guillemets doubles (c-à-d `attribut="""valeur"""`) +* Aucune ponctuation n'est nécessaire pour les valeurs qui ne contiennent pas d'espace (c-à-d `attribut=valeur`) + +Les valeurs littérales d'attribut peuvent contenir des retours à la ligne. Par exemple<<:>> + +``` +
+``` + +L'utilisation des triples guillemets doubles `"""` permet de spécifier des valeurs d'attributs qui contiennent des caractères "guillemet double"<<:>> + +``` +
+``` + +!! Valeurs d'attributs par transclusion + +Les valeurs d'attributs par transclusion sont encadrées par des doubles accolades autour d'une <>, par exemple<<:>> + +``` +attr={{tiddler}} +attr={{!!field}} +attr={{tiddler!!field}} +``` +<<.warning "La valeur de l'attribut sera le résultat exact de la transclusion, sans aucune interprétation supplémentaire de <>. Toute syntaxe de wiki dans ce résultat sera laissée en l'état.">> + +!! Valeur d'attribut par variable + +Les valeurs d'attributs par variable sont encadrées par des doubles crochets autour d'un [[appel de macro|Macro Calls in WikiText]], par exemple<<:>> + +``` +
>> +... +
+``` +<<.warning "Le texte de la définition de la macro est retrouvé et la substitution des arguments a lieu (c-à-d la syntaxe <<.param $param$>> et <<.param $(...)$>>). Le texte résultant est affecté à la valeur de l'attribut. Toute syntaxe wiki dans ce texte, y-compris d'autres appels de macros ou des références de variables, sera laissée en l'état.">> + +!! Valeurs d'attributs par filtre + +Les valeurs d'attributs par filtre sont encadrées par des accolades triples autour d'une [[expression de filtre|Filter Expression]]. Le premier élément de la liste renvoyée par le filtre est affecté à l'attribut, ou une chaîne vide si la liste est vide. + +Cet exemple montre comment ajouter un préfixe à une valeur<<:>> + +``` +<$text text={{{ [addprefix[$:/myprefix/]] }}} /> +``` +<<.warning "La valeur de l'attribut sera le résultat exact du premier élément de la liste renvoyée par le filtre, sans aucune interprétation du <>. Toute syntaxe de wiki dans ce résultat sera laissée telle quelle.">> diff --git a/Headings in WikiText.tid b/Headings in WikiText.tid new file mode 100644 index 000000000..8395dd240 --- /dev/null +++ b/Headings in WikiText.tid @@ -0,0 +1,22 @@ +caption: Titres de rubriques +created: 20141017093039992 +fr-title: Titres de rubriques dans WikiText +modified: 20220226234057628 +tags: WikiText +title: Headings in WikiText +type: text/vnd.tiddlywiki + +Un titre de rubrique est codé par un à 6 caractères <> `!` au début d'une ligne<<:>> + +<> + +Des [[styles et des classes CSS|Styles and Classes in WikiText]] peuvent être assignés individuellement aux titres : + +<> diff --git a/editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid b/editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid deleted file mode 100644 index 226d0e4d7..000000000 --- a/editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid +++ /dev/null @@ -1,174 +0,0 @@ -created: 20150117152607000 -modified: 20220220000852855 -tags: $:/tags/Macro -title: $:/editions/tw5.com/doc-macros -type: text/vnd.tiddlywiki - -\define .concat(1,2,3,4,5) $1$$2$$3$$4$$5$ - -\define .def(_) $_$ -\define .em(_) $_$ -\define .strong(_) $_$ -\define .place(_) $_$ -\define .word(_) "$_$" - -\define .preamble(_) :.doc-preamble $_$ -\define .note(_) -@@.doc-note -;Note -: $_$ -@@ -\end - -\define .tid(_) $_$ -\define .tag(_) $_$ -\define .field(_) $_$ -\define .value(_) $_$ -\define .op(_) $_$ -\define .var(_) $_$ -\define .wid(_) $$_$ -\define .attr(_) $_$ -\define .param(_) $_$ - -\define .mtitle(_) $_$ Macro -\define .otitle(_) $_$ Operator -\define .vtitle(_) $_$ Variable - -\define .link(_,to) <$link to="$to$">$_$ -\define .clink(_,to) <<.link """$_$""" "$to$">> -\define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/> -\define .dlink-ex(_,to) <<.def "$_$">> -\define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/> -\define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/> -\define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> -\define .olink(_) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$_$">>/> -\define .olink2(_,to) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$to$">>/> -\define .vlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.vtitle "$_$">>/> -\define .vlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> -\define .wlink(to) <$macrocall $name=".link" _=<<.wid {{$to$!!caption}}>> to="$to$"/> -\define .wlink2(_,to) <$macrocall $name=".link" _="$_$" to="$to$"/> - -\define .key(_) $_$ -\define .combokey(_) <$macrocall $name=".if" cond="$_$" then=<<.key '$_$'>>/> -\define .keycombo(1,2,3,4) <<.combokey "$1$">><<.if "$2$" +>><<.combokey "$2$">><<.if "$3$" +>><<.combokey "$3$">><<.if "$4$" +>><<.combokey "$4$">> - -\define .tab(_) {{$_$!!caption}} -\define .sidebar-tab(_) <<.tab "$:/core/ui/SideBar/$_$">> -\define .more-tab(_) <<.tab "$:/core/ui/MoreSideBar/$_$">> -\define .info-tab(_) <<.tab "$:/core/ui/TiddlerInfo/$_$">> -\define .controlpanel-tab(_) <<.tab "$:/core/ui/ControlPanel/$_$">> -\define .advancedsearch-tab(_) <<.tab "$:/core/ui/AdvancedSearch/$_$">> -\define .toc-tab() <<.tab "TableOfContents">> -\define .example-tab(_) $_$ - -\define .button(_) {{$:/core/ui/Buttons/$_$!!caption}} - -\define .icon(_) {{$_$}} - -\define .tip(_)
{{$:/core/images/tip}}
$_$
-\define .warning(_)
{{$:/core/images/warning}}
$_$
- -\define .state-prefix() $:/state/editions/tw5.com/ - -\define .lorem() -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -\end - -\define .toc-lorem() -C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table-of-Contents Macros (Examples)]]. - -<<.lorem>> -\end - -\define .example(n,eg,egvar:NO-SUCH-VAR) -
-<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> - <$macrocall $name="copy-to-clipboard-above-right" src="""$eg$"""/> - <$codeblock code="""$eg$"""/> - -<$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> - - <$macrocall $name="copy-to-clipboard-above-right" src=<<$egvar$>>/> - <$codeblock code=<<$egvar$>>/> - -<$list filter="[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]" variable=".state"> -<$reveal state=<<.state>> type="nomatch" text="show"> -
-
<$button set=<<.state>> setTo="show">Essayez
-
- -<$reveal state=<<.state>> type="match" text="show"> -
-
<$button set=<<.state>> setTo="">Cachez
-
-
- <$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> - $eg$ - - <$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> - <<$egvar$>> - -
- - -\end - -\define .bad-example(eg) - - - - - - - -
Warning:
Don't do it this way!
- -$eg$ -
-\end - -\define .link-badge(text,link,colour) -> class="doc-link-badge" style="background-color:$colour$;" target="_blank" rel="noopener noreferrer"><$text text=<<__text__>>/> -\end - - -\define .link-badge-added(link,colour:#ffe246) <<.link-badge "added" """$link$""" """$colour$""">> -\define .link-badge-addendum(link,colour:#fcc84a) <<.link-badge "addendum" """$link$""" """$colour$""">> -\define .link-badge-extended(link,colour:#f9a344) <<.link-badge "extended" """$link$""" """$colour$""">> -\define .link-badge-fixed(link,colour:#ffa86d) <<.link-badge "fixed" """$link$""" """$colour$""">> -\define .link-badge-here(link,colour:#d88e63) <<.link-badge "here" """$link$""" """$colour$""">> -\define .link-badge-hide(link,colour:#9d959f) <<.link-badge "hide" """$link$""" """$colour$""">> -\define .link-badge-improved(link,colour:#7593c7) <<.link-badge "improved" """$link$""" """$colour$""">> -\define .link-badge-modified(link,colour:#7f99c9) <<.link-badge "modified" """$link$""" """$colour$""">> -\define .link-badge-removed(link,colour:#a9aabc) <<.link-badge "removed" """$link$""" """$colour$""">> -\define .link-badge-renamed(link,colour:#b4b995) <<.link-badge "renamed" """$link$""" """$colour$""">> -\define .link-badge-updated(link,colour:#91ba66) <<.link-badge "updated" """$link$""" """$colour$""">> - -\define .tiddler-fields(tiddler) -<$tiddler tiddler=<<__tiddler__>>> -
-

-<$link> -{{||$:/core/ui/TiddlerIcon}}<$text text=<>/> - -

- - -<$list filter="[all[current]fields[]sort[title]] -title" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/> - -
-
- -\end - -\define .banner-credits(credit,url) -> width="140" style="float:left;margin-right:0.5em;"/> - -$credit$ - -
- -
-\end - -
<$view field="text"/>
\ No newline at end of file diff --git a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid index b613f2eb4..b916b56d4 100644 --- a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid +++ b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid @@ -1,5 +1,5 @@ created: 20150117152607000 -modified: 20150620212025034 +modified: 20220220000852855 tags: $:/tags/Macro title: $:/editions/tw5.com/doc-macros type: text/vnd.tiddlywiki @@ -37,7 +37,7 @@ type: text/vnd.tiddlywiki \define .link(_,to) <$link to="$to$">$_$ \define .clink(_,to) <<.link """$_$""" "$to$">> \define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/> -\define .dlink-ex(_,to) <<.def "$_$">> +\define .dlink-ex(_,to) <<.def "$_$">> \define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/> \define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/> \define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> @@ -63,6 +63,8 @@ type: text/vnd.tiddlywiki \define .button(_) {{$:/core/ui/Buttons/$_$!!caption}} +\define .icon(_) {{$_$}} + \define .tip(_)
{{$:/core/images/tip}}
$_$
\define .warning(_)
{{$:/core/images/warning}}
$_$
@@ -81,10 +83,12 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- \define .example(n,eg,egvar:NO-SUCH-VAR)
<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> + <$macrocall $name="copy-to-clipboard-above-right" src="""$eg$"""/> <$codeblock code="""$eg$"""/> <$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> + <$macrocall $name="copy-to-clipboard-above-right" src=<<$egvar$>>/> <$codeblock code=<<$egvar$>>/> <$list filter="[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]" variable=".state"> @@ -108,3 +112,63 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- \end + +\define .bad-example(eg) + + + + + + + +
Warning:
Don't do it this way!
+ +$eg$ +
+\end + +\define .link-badge(text,link,colour) +> class="doc-link-badge" style="background-color:$colour$;" target="_blank" rel="noopener noreferrer"><$text text=<<__text__>>/> +\end + + +\define .link-badge-added(link,colour:#ffe246) <<.link-badge "added" """$link$""" """$colour$""">> +\define .link-badge-addendum(link,colour:#fcc84a) <<.link-badge "addendum" """$link$""" """$colour$""">> +\define .link-badge-extended(link,colour:#f9a344) <<.link-badge "extended" """$link$""" """$colour$""">> +\define .link-badge-fixed(link,colour:#ffa86d) <<.link-badge "fixed" """$link$""" """$colour$""">> +\define .link-badge-here(link,colour:#d88e63) <<.link-badge "here" """$link$""" """$colour$""">> +\define .link-badge-hide(link,colour:#9d959f) <<.link-badge "hide" """$link$""" """$colour$""">> +\define .link-badge-improved(link,colour:#7593c7) <<.link-badge "improved" """$link$""" """$colour$""">> +\define .link-badge-modified(link,colour:#7f99c9) <<.link-badge "modified" """$link$""" """$colour$""">> +\define .link-badge-removed(link,colour:#a9aabc) <<.link-badge "removed" """$link$""" """$colour$""">> +\define .link-badge-renamed(link,colour:#b4b995) <<.link-badge "renamed" """$link$""" """$colour$""">> +\define .link-badge-updated(link,colour:#91ba66) <<.link-badge "updated" """$link$""" """$colour$""">> + +\define .tiddler-fields(tiddler) +<$tiddler tiddler=<<__tiddler__>>> +
+

+<$link> +{{||$:/core/ui/TiddlerIcon}}<$text text=<>/> + +

+ + +<$list filter="[all[current]fields[]sort[title]] -title" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/> + +
+
+ +\end + +\define .banner-credits(credit,url) +> width="140" style="float:left;margin-right:0.5em;"/> + +$credit$ + +
+ +
+\end + +
<$view field="text"/>
diff --git a/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid b/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid index 243fceb77..62d894ec3 100644 --- a/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid +++ b/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid @@ -1,13 +1,13 @@ created: 20140904140300000 fr-title: Créer et modifier des tiddlers -modified: 20150620081426868 +modified: 20220221002250215 tags: [[Working with TiddlyWiki]] title: Creating and editing tiddlers type: text/vnd.tiddlywiki ! Créer des tiddlers -Vous créez un tiddler soit en cliquant sur le bouton {{$:/core/images/new-button}} du menu latéral, soit en cliquant sur un lien vers un tiddler absent. Les liens vers les tiddlers absents sont affichés en [[italique bleu]]. +Vous créez un tiddler soit en cliquant sur le bouton <<.icon $:/core/images/new-button>> du menu latéral, soit en cliquant sur un lien vers un tiddler absent. Les liens vers les tiddlers absents sont affichés en [[italique bleu]]. Voir aussi<<:>> @@ -15,23 +15,23 @@ Voir aussi<<:>> ! Modifier des tiddlers -Pour modifier un tiddler existant, cliquez sur le bouton {{$:/core/images/edit-button}} en haut et à droit du tiddler. +Pour modifier un tiddler existant, cliquez sur le bouton <<.icon $:/core/images/edit-button>> en haut et à droite du tiddler. !! Mode ébauche -Quand vous créez un nouveau tiddler ou modifiez un existant, le tiddler passe en mode ébauche. Ce qui propose un panneau de contrôle pour apporter différents types de modifications. Il a plusieurs parties, de bas en haut<<:>> +Quand vous créez un nouveau tiddler ou modifiez un existant, le tiddler passe en mode ébauche. Ce mode propose un panneau de contrôle pour apporter différents types de modifications. Il a plusieurs parties, de bas en haut<<:>> *''Le champ titre'' - pour modifier le titre du tiddler -*''Le sélecteur de tags'' - pour ajouter ou supprimer des tags. Lors de la saisie d'un tag, une liste déroulante affiche les tags correspondant sous forme de complétions. Vous pouvez choisir dans cette liste ou créer un tag entièrement nouveau. Puis cliquez sur le bouton ''ajouter'' pour ajouter le tag au tiddler. Chaque tag est affiché sous forme d'une pilule colorée. Cliquez le "×" d'un pilule pour supprimer le tag -*''La zone de texte'' - pour modifier le contenu principal du tiddler. Cliquez sur le bouton ''afficher la prévisualiation'' pour visualiser l'apparence des modifications -*''Le sélecteur de type'' - pour afficher vos tiddlers dans un format spécial, comme une image. Voir ContentType pour la liste des options. Le choix par défaut est `text/vnd.tiddlywiki`, qui indique que le tiddler contient du [[WikiTexte|WikiText]] -*''Le sélecteur de champ'' - pour ajouter ou supprimer des champs du tiddler. Par exemple, si vous modifiez un tiddler utilisé comme tag par d'autres tiddlers, vous pouvez ajouter un [[champ ''list''|ListField]] pour modifier l'ordre dans lequel ces tiddlers seront listé +*''Le sélecteur de tags'' - pour ajouter ou supprimer des tags. Lors de la saisie d'un tag, une liste déroulante affiche les tags correspondant sous forme de complétions. Vous pouvez choisir dans cette liste ou créer un tag entièrement nouveau. Puis cliquez sur le bouton ''ajouter'' ou utilisez la touche Entrée pour ajouter le tag au tiddler. Chaque tag est affiché sous forme d'une pilule colorée. Cliquez le "×" d'une pilule pour supprimer le tag +*''La zone de texte'' - pour modifier le contenu principal du tiddler. Cliquez sur le bouton ''afficher la prévisualiation'' (<<.icon $:/core/images/preview-closed>> / <<.icon $:/core/images/preview-open>>) pour visualiser l'apparence des modifications +*''Le sélecteur de type'' - pour afficher vos tiddlers dans un format spécial, comme une image. Voir ContentType pour la liste des options. Le choix par défaut est `text/vnd.tiddlywiki`, qui indique que le tiddler contient du <> +*''Le sélecteur de champ'' - pour ajouter ou supprimer des champs du tiddler. Par exemple, si vous modifiez un tiddler utilisé comme tag par d'autres tiddlers, vous pouvez ajouter un [[champ ''list''|ListField]] pour modifier l'ordre dans lequel ces tiddlers seront listés ! Confirmer, annuler ou supprimer Quand vous avez terminé les modifications, cliquez sur le bouton en haut et à droite du tiddler<<:>> -*Le bouton ''confirmer'' ({{$:/core/images/done-button}}) mémorise vos modifications dans le tiddler et quitte le mode ébauche. Si votre wiki est configuré en [[AutoSave]], vos modifications seront enregistrées de façon permanente. Autrement elles sont mémorisées temporairement dans votre navigateur web, et vous les perdrez si vous fermez votre page ~TiddlyWiki sans avoir cliqué sur le bouton principal pour ''Enregistrer'' {{$:/core/images/save-button}} dans le menu latéral. -*Le bouton ''annuler'' ({{$:/core/images/cancel-button}}) ignore vos modifications (après demande de confirmation) et quitte le mode ébauche. -*Le bouton ''supprimer'' ({{$:/core/images/delete-button}}) supprime tout le tiddler (après demande de confirmation). \ No newline at end of file +*Le bouton ''confirmer'' (<<.icon $:/core/images/done-button>>) mémorise vos modifications dans le tiddler et quitte le mode ébauche. Si votre wiki est configuré en <>, vos modifications seront enregistrées de façon permanente. Autrement elles sont mémorisées temporairement dans votre navigateur web, et vous les perdrez si vous fermez votre page ~TiddlyWiki sans avoir cliqué sur le bouton principal pour ''Enregistrer'' (<<.icon $:/core/images/save-button>>) dans le menu latéral. +*Le bouton ''annuler'' (<<.icon $:/core/images/cancel-button>>) ignore vos modifications (après demande de confirmation) et quitte le mode ébauche. +*Le bouton ''supprimer'' (<<.icon $:/core/images/delete-button>>) supprime tout le tiddler (après demande de confirmation). diff --git a/editions/fr-FR/tiddlers/GettingStarted.tid b/editions/fr-FR/tiddlers/GettingStarted.tid index 9fbd71706..b9e327d8f 100644 --- a/editions/fr-FR/tiddlers/GettingStarted.tid +++ b/editions/fr-FR/tiddlers/GettingStarted.tid @@ -1,30 +1,32 @@ created: 20131129090249275 fr-title: La mise en route -modified: 20160526131021571 +modified: 20220217175123712 tags: [[Working with TiddlyWiki]] title: GettingStarted type: text/vnd.tiddlywiki -\define default-platform() -GettingStarted - $(browser-name)$ -\end -Instructions pour bien commencer avec <>, selon les différentes plates-formes et configurations supportées. -<$set name="browser-name" value={{$:/info/browser/name}}> -<$macrocall $name="tabs" state="$:/state/tabs/platform" tabsList="[prefix[GettingStarted - ]]" default=<> class="tc-vertical"/> - +Téléchargez un <> vide en cliquant sur ce bouton<<:>> {{$:/editions/fr-FR/snippets/download-empty-button}} -Autres informations : +L'étape suivante consiste à choisir une solution d'enregistrement des modifications. De nombreuses méthodes sont disponibles, chacune avec ses atouts et ses limites. Cliquez sur la fiche d'une méthode pour voir plus d'informations la concernant. Vous pouvez aussi cocher une case de plateformes et de navigateur pour afficher les solutions qui fonctionnent pour cette combinaison. -* [[Cryptage|Encryption]] explique comment utiliser le système de cryptage intégré à <> pour protéger votre contenu avec un mot de passe ; -* [[Enregistrer avec Tiddlyspot|Saving on TiddlySpot]], un service gratuit qui vous permet d'utiliser <> en ligne ; -* Sauvegarde avec TiddlyDesktop, une application de bureautique dédiée au travail avec <> ; -* Vous pouvez aussi télécharger ce <> complet, avec toute sa documentation<>
+<<.warning "N'utilisez pas le menu ''Fichier''/''Enregistrer'' du navigateur internet pour enregistrer vos modifications (ça ne marche pas)<>">>

+ +{{Saving}} + + + +Autres informations<<:>> + +* [[Protéger le contenu avec un mot de passe|Encryption]] grâce au système de chiffrement intégré à <><<;>> +* [[Enregistrer avec Tiddlyspot|Saving on TiddlySpot]], un service gratuit qui vous permet d'utiliser <> en ligne<<;>> +* Sauvegarde avec TiddlyDesktop, une application de bureautique dédiée au travail avec <><<;>> +* Vous pouvez aussi télécharger ce <> complet, avec toute sa documentation<<:>>
<<< {{$:/snippets/download-wiki-button}} -Si le bouton ne fonctionne pas, sauvegardez ce lien : +Si le bouton ne fonctionne pas, sauvegardez ce lien<<:>> ~https://tiddlywiki.com/languages/fr-FR/index.html diff --git a/editions/fr-FR/tiddlers/How to export tiddlers.tid b/editions/fr-FR/tiddlers/How to export tiddlers.tid new file mode 100644 index 000000000..4efed009c --- /dev/null +++ b/editions/fr-FR/tiddlers/How to export tiddlers.tid @@ -0,0 +1,31 @@ +created: 20151006145934884 +fr-title: Exporter des tiddlers +modified: 20220222182612947 +tags: Learning +title: How to export tiddlers +type: text/vnd.tiddlywiki + +! Sélectionner tous les tiddlers pour l'exportation + +Pour exporter ''tous'' les tiddlers, cliquez sur l'onglet ''Outils'' de la barre latérale. Trouvez le bouton <<.icon $:/core/images/export-button>> ''exporter tout'' et cliquez dessus. Un menu flottant vous permet alors de choisir l'un des nombreux formats d'exportation des tiddlers. + +! Exporter un tiddler + +Pour exporter un tiddler particulier, commencez par l'afficher, puis cliquez sur le bouton <<.icon $:/core/images/down-arrow>> ''plus'' situé vers le haut du tiddler. Dans la liste qui apparaît, sélectionnez <<.icon $:/core/images/export-button>> ''exporter ce tiddler''. Un menu flottant vous permet alors de choisir l'un des nombreux formats d'exportation des tiddlers. + +! Exporter des tiddlers selon un critère (filtre) + +Pour exporter une sélection de tiddlers, cliquez sur le symbole de loupe <<.icon $:/core/images/advanced-search-button>> à proximité de la zone de recherche de la barre latérale, ce qui va ouvrir le tiddler de [[recherche avancée|$:/AdvancedSearch]]. Choisissez l'onglet ''Filtrer'' car c'est le seul qui permet d'exporter une sélection de tiddlers. Les [[filtres|Filters]] utilisent une syntaxe particulière, cliquez sur [[ce lien|Filters]] pour découvrir comment concevoir des filtres. + +Lorsque vous aurez rédigé un filtre, la liste des tiddlers correspondants apparaîtra. Vous pourrez alors cliquer sur le bouton <<.icon $:/core/images/export-button>> ''Exporte ces tiddlers'' situé à droite de la zone de saisie du filtre. Un menu flottant vous permettra alors de choisir l'un des nombreux formats d'exportation des tiddlers. + +! Formats d'exportation + +Actuellement, les formats d'exportation disponibles sont<<:>> + +* Le fichier au format CSV +* Le fichier au format JSON +* Le fichier HTML statique +* Le fichier au format <> + +Le format <> est particulier en ce qu'il ne permet d'exporter qu'un seul tiddler à la fois, même si vous essayer d'en exporter plusieurs à l'aide d'un filtre ou avec le bouton ''exporter tout''. diff --git a/editions/fr-FR/tiddlers/Importing Tiddlers.tid b/editions/fr-FR/tiddlers/Importing Tiddlers.tid new file mode 100644 index 000000000..874205edd --- /dev/null +++ b/editions/fr-FR/tiddlers/Importing Tiddlers.tid @@ -0,0 +1,26 @@ +created: 20130825162000000 +fr-title: Importer des tiddlers +modified: 20220222173231214 +tags: Features +title: Importing Tiddlers +type: text/vnd.tiddlywiki + +Vous pouvez importer des tiddlers dans un <> à partir de fichiers externes ou directement depuis un autre <>. + +!! Importer du contenu de fichiers externes + +Il existe plusieurs méthodes pour importer du contenu (tel que du texte, des images, des documents pdf, etc.) à partir de fichiers externes<<:>> + +* Utiliser le bouton <<.icon $:/core/images/import-button>> ''Importer'' (dans l'onglet ''Outils'' de la barre latérale) pour choisir un fichier<<;>> +* Gisser-déposer des fichiers depuis l'Explorateur Windows, ou le Finder MacOS, etc. directement dans la fenêtre de navigateur de <><<;>> +* Copier-coller du contenu directement depuis le presse-papiers en utilisant le menu ou le raccourci clavier (ctrl-V ou cmd-V) +** Actuellement disponible avec Chrome, Firefox et Edge (mais pas Internet Explorer) + +Pour la plupart, les fichiers sont importés en tant que tiddlers individuels. Les exceptions sont<<:>> + +* les fichiers ''.html'' qui sont reconnus comme des fichiers <> sont interprétés pour en extraire les tiddlers qu'ils contiennent<<;>> +* les fichiers ''.json'' sont interprétés pour en extraire les tiddlers qu'ils contiennent. Ils peuvent être créés en les [[exportant|How to export tiddlers]] d'un autre <>. <> reconnaît les fichiers JSON qui contiennent un unique tiddler, ou un tableau de tiddlers. + +!! Importer du contenu depuis des <> dans d'autres fenêtres + +Les tiddlers peuvent être importés depuis des <> affichés dans d'autres fenêtres de navigateurs grâce au [[glisser-déposer|Drag and Drop]]. Faites glisser un lien interne <> ou un tag d'un <> à un autre, entre fenêtres de navigateurs. Faire glisser un lien interne importera un tiddler unique, alors que faire glisser une pilule de tag importera tous les tiddlers qui portent ce [[tag|Tagging]]. diff --git a/editions/fr-FR/tiddlers/PermaLinks.tid b/editions/fr-FR/tiddlers/PermaLinks.tid index 67189e525..c9ca34d8e 100644 --- a/editions/fr-FR/tiddlers/PermaLinks.tid +++ b/editions/fr-FR/tiddlers/PermaLinks.tid @@ -1,16 +1,16 @@ caption: Permaliens created: 20140502213500000 fr-title: Permaliens -modified: 20150622112455420 +modified: 20220223144222832 tags: Features Concepts title: PermaLinks type: text/vnd.tiddlywiki -Les permaliens offrent la possibilités de faire des liens directs vers des tiddlers individuels dans un TiddlyWiki. +Les permaliens sont des liens directs vers des tiddlers individuels à l'intérieur d'un TiddlyWiki. ! La forme simple des permaliens -La forme la plus simple d'un permalien vers un tiddler cible unique est son nom précédé de "#" accolé au lien URL de base <<:>> +La forme la plus simple d'un permalien (<<.icon $:/core/images/permalink-button>>) vers un tiddler cible unique est son nom précédé de "#" accolé au lien URL de base <<:>> https://tiddlywiki.com/#HelloThere @@ -20,47 +20,47 @@ Le titre du tiddler peut contenir des espaces si nécessaire<<:>> Remarquez que les doubles crochets ne sont pas requis autour du titre du tiddler cible<<;>> cependant, s'ils sont présents ils seront supprimés automatiquement. -(NDT Attention en cas de traduction, c'est le lien doit pointer vers `title` le titre original et pas vers le titre traduit affiché qui ne reflète que le contenu du champ `fr-title`) +(NDT<<:>> Attention en cas de traduction, le lien doit pointer vers le titre original `title` et pas vers le titre traduit affiché qui ne reflète que le contenu du champ `fr-title`) ! Permaliens vers un déroulé -Le permalien peut aussi spécifier le déroulé de la liste de tiddlers qui seront ouverts avec le [[Tiddler Filtre|Filters]] cible<<:>> +Le permalien peut aussi spécifier la liste de tiddlers qui seront ouverts dans le déroulé en plus du tiddler cible, à l'aide d'un [[filtre|Filters]]<<:>> [[https://tiddlywiki.com/#TiddlerFields:Tiddlers TiddlerTags TiddlerFields ContentType]] -Si le tiddler cible est absent du déroulé de la liste, il est alors automatiquement inséré au début. Ce qui veut dire que les exemples suivants ciblent tous les deux le tiddler `Tiddlers` avec le déroulé de la suite `Tiddlers`, `Tags`, `TiddlerFields`: +Si le tiddler cible est absent de la liste, il est alors automatiquement inséré au début du déroulé. Ce qui veut dire que les exemples suivants désignent tous les deux le tiddler `Tiddlers` dans le déroulé `Tiddlers`, `Tags`, `TiddlerFields`<<:>> [[https://tiddlywiki.com/#Tiddlers:Tags TiddlerFields]] [[https://tiddlywiki.com/#Tiddlers:Tiddlers Tags TiddlerFields]] -Il est aussi possible de spécifier, pour les besoins de la navigation, un déroulé filtre sans spécifier de tiddler cible<<:>> +Il est aussi possible de spécifier un filtre sans spécifier de tiddler cible de navigation<<:>> -~https://tiddlywiki.com/#:[tags[task]] +~https://tiddlywiki.com/#:[tags[task]] ! Concernant le codage URL -Il existe des restrictions techniques aux caractères légaux d'un adressage URL. Afin de permettre à tous les titres de tiddler d'être adressés, les caractères illégaux font l'objet d'un processus appelé "codage URL" où les caractères problématique sont remplacés par leurs codes numériques. Par exemple, le caractère espace est remplacé par `%20`. +Il existe des restrictions techniques aux caractères autorisés dans un adressage URL. Afin de permettre à tous les titres de tiddler d'être adressés, les caractères illégaux font l'objet d'un processus appelé <> où les caractères problématiques sont remplacés par leurs codes numériques. Par exemple, le caractère espace est remplacé par `%20`. -Aussi bien le tiddler cible que le déroulé filtre seront encodé (mais pas le séparateur ":"). TiddlyWiki génère des URLs encodées correctement qui peuvent paraître un peu "moche". Cependant, dans la pratique les navigateurs parviennent heureusement et parfaitement à interpréter des caractères arbitraires dans les extraits URL. De ce fait, quand vous créez des permaliens manuellement vous pouvez choisir d'ignorer le codage URL. +Aussi bien le tiddler cible que le déroulé filtre devraient être encodés (mais pas le séparateur <>). <> génère des URLs encodées correctement qui peuvent paraître un peu "moche". Cependant, dans la pratique les navigateurs parviennent heureusement à interpréter parfaitement des caractères arbitraires dans les extraits URL. De ce fait, quand vous créez des permaliens manuellement vous pouvez choisir d'ignorer le codage URL. -! Comportement de TiddlyWiki avec les Permaliens +! Comportement de <> avec les Permaliens -Deux aspects importants du comportement de TiddliWiki avec les permaliens peuvent être réglés avec les options de l'onglet ''Réglages avancés'' du $:/ControlPanel <<:>> +Deux aspects importants du comportement de <> avec les permaliens peuvent être réglés avec les options de l'onglet ''Réglages avancés'' du <<.icon $:/core/images/options-button>> $:/ControlPanel <<:>> * d'une part la mise à jour automatique de la zone d'adresse à chaque navigation, et dans ce cas s'il faut inclure la séquence du déroulé aussi bien que le tiddler cible -* d'autre part si les mises à jour de la zone d'adresse doivent affecter l'historique du navigateur. Par défaut, c'est ''non''<<;>> mais lorsque que ''oui'' est sélectionné, vous pouvez reprendre votre navigation entre les tiddlers en utilisant les boutons avancer et reculer du navigateur +* d'autre part si les mises à jour de la zone d'adresse doivent affecter l'historique du navigateur. Par défaut, c'est ''non''<<;>> mais lorsque ''oui'' est sélectionné, vous pouvez reprendre votre navigation entre les tiddlers en utilisant les boutons avancer et reculer du navigateur -Notez que saisir un permalien ou s'y rendre causera toujours le traitement du permalien, et les tiddlers ouverts ou fermés en fonction de lui. +Notez que saisir un permalien ou s'y rendre causera toujours le traitement du permalien, ainsi que l'ouverture et la fermeture des tiddlers appropriés en fonction de son contenu. !! Détails techniques -Quand TiddlyWiki se lance il traite les permaliens selon les étapes suivantes<<;>> les même étapes sont répétées dynamiquement lors des modifications du permalien (cela survient en réaction à l'édition par l'adresse de la barre d'adresse, par exemple). +Quand <> se lance il traite les permaliens selon les étapes ci-dessous<<;>> ces même étapes sont répétées dynamiquement lors des modifications du permalien (ce qui survient en réaction à l'édition de la barre d'adresse par l'utilisateur, par exemple). -# Si le permalien contient un ":", traiter la chaine précédente comme la cible et la chaine qui suit comme le ''filtre du déroulé'' -# Si ":" est absent, traiter toute la chaine comme la ''cible'' et marquer le ''filtre du déroulé'' comme //non-spécifié// -# Si le ''filtre du déroulé'' est //non-spécifié// dans le processus de lancement, alors mettre une chaine vide dans le ''filtre du déroulé'' si la ''cible'' est spécifiée, ou aux tiddlers par défaut si la ''cible'' n'est pas spécifiée -# Si le ''filtre du déroulé'' est //non-spécifié// hors du processus de lancement, alors affecter le déroulé actuel au ''filtre du déroulé'' +# Si le permalien contient un <>, traiter la chaine précédente comme la ''cible'' et la chaine qui suit comme le ''filtre du déroulé'' +# Si <> est absent, traiter toute la chaine comme la ''cible'' et marquer le ''filtre du déroulé'' comme //non-spécifié// +# Si le ''filtre du déroulé'' est //non-spécifié// pendant le processus de lancement, alors mettre une chaine vide dans le ''filtre du déroulé'' si la ''cible'' est spécifiée, ou les tiddlers par défaut si la ''cible'' n'est pas spécifiée +# Si le ''filtre du déroulé'' est //non-spécifié// hors du processus de lancement, alors affecter le ''filtre du déroulé'' au déroulé actuel # Évaluer le ''filtre du déroulé'' comme ''liste du déroulé'' # Si la ''cible'' est spécifiée et absente de la ''liste du déroulé'' alors l'ajouter au début # Si la ''cible'' est spécifiée alors s'y rendre, autrement naviguer au premier tiddler de la ''liste du déroulé'' diff --git a/editions/fr-FR/tiddlers/Share Plugin.tid b/editions/fr-FR/tiddlers/Share Plugin.tid new file mode 100644 index 000000000..2d6ef7f98 --- /dev/null +++ b/editions/fr-FR/tiddlers/Share Plugin.tid @@ -0,0 +1,15 @@ +created: 20201228143125000 +fr-title: Plugin de partage +modified: 20220221010033461 +tags: OfficialPlugins +title: Share Plugin +type: text/vnd.tiddlywiki + +
N'installez ce plugin que si vous comprenez ce qu'il fait !
+ +Ce plugin expérimental fournit des outils pour partager des tiddlers via des URLs, comme<<:>> + +* La possibilité de charger un groupe de tiddlers grâce à une //adresse hachée// au démarrage +* Un assistant et des modèles pour créer des URLs à partir d'un groupe de tiddlers + +Dans la [[bibliothèque des plugins|Installing a plugin from the plugin library]], vous trouverez le plugin de partage sous le nom <>. diff --git a/editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid b/editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid new file mode 100644 index 000000000..8377817cd --- /dev/null +++ b/editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid @@ -0,0 +1,26 @@ +created: 20140122085818089 +fr-title: Partager un TiddlyWiki avec Dropbox +modified: 20220222195202852 +tags: Learning +title: Sharing a TiddlyWiki on Dropbox +type: text/vnd.tiddlywiki + +Vous pouvez travailler sur un fichier TiddlyWiki dans Dropbox et publier un lien que chacun pourra visualiser en lecture seule. + +# Mettez votre fichier TiddlyWiki dans un répertoire Dropbox +# Choisir l'option "Partager lien" de Dropbox pour avoir un lien d'accès publique au fichier +#* Dans l'interface web de Dropbox, c'est possible en cliquant sur l'icone du lien qui apparait au survol du fichier. Dropbox ajoute aussi un élément "Lien Partagé" au menu contextuel du Finder sur OS X et de l'Explorateur Windows +# L'URL générée par Dropbox aura cette forme<<:>> +#> `https://www.dropbox.com/s//mywiki.html` +# Modifier l'URL ainsi, en préservant soigneusement le //gobbledegook//<<:>> +#> `https://dl.dropboxusercontent.com/s//mywiki.html` + +Le résultat est une URL "secrète" que vous pouvez envoyer à d'autres personnes qui auront alors la capacité de découvrir le wiki. + +---- + +Entrez une URL générée par Dropbox ci-dessous et vous pourrez copier-coller l'URL secrète correspondante, ou l'ouvrir en cliquant sur <><<:>> + +<$edit-text tiddler="$:/temp/dropboxurl" default="https://www.dropbox.com/s//mywiki.html" tag="input" type="text" size="60"/> + +<$macrocall $name="dropbox-url" url={{$:/temp/dropboxurl}}/> diff --git a/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid b/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid new file mode 100644 index 000000000..a891d1f60 --- /dev/null +++ b/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid @@ -0,0 +1,18 @@ +created: 20140908163900000 +fr-title: Partager vos tiddlers avec d'autres +modified: 20220221004623008 +tags: Learning +title: Sharing your tiddlers with others +type: text/vnd.tiddlywiki + +Il existe plusieurs façons de partager des [[tiddlers|Tiddlers]] ou votre <> complet<<:>> + +*Vous pouvez joindre un <> à un courriel +*Vous pouvez publier votre <> en ligne, et envoyer le lien dans un message<<:>> +**un lien vers l'URL du fichier lui-même +**un [[permalien|PermaLinks]] (<<.icon $:/core/images/permalink-button>>) vers un tiddler spécifique +**Un lien [[permaview|PermaView]] (<<.icon $:/core/images/permaview-button>>) de tous les tiddlers ouverts +* Vous pouvez [[partager un lien Dropbox vers votre TiddlyWiki|Sharing a TiddlyWiki on Dropbox]] +* Vous pouvez [[exporter des tiddlers|How to export tiddlers]] (<<.icon $:/core/images/export-button>>) dans plusieurs formats de fichiers tels que texte (.TID), HTML statique, JSON et CSV (valeurs séparées par des virgules, compatibles avec les tableurs) +* Vous pouvez aussi partager des tiddlers simplement en rendant votre <> accessible aux autres, par exemple en le publiant en ligne, ce qui leur permettra [[d'importer des tiddlers|Importing Tiddlers]] qu'il contient +* Il y a un [[plugin de partage|Share Plugin]] expérimental que vous pouvez utiliser pour partager des tiddlers grâce à une URL spécialement conçue à cet effet. diff --git a/editions/fr-FR/tiddlers/TaskManagementExample.tid b/editions/fr-FR/tiddlers/TaskManagementExample.tid index ef5b77f74..19e4442e6 100644 --- a/editions/fr-FR/tiddlers/TaskManagementExample.tid +++ b/editions/fr-FR/tiddlers/TaskManagementExample.tid @@ -1,12 +1,14 @@ created: 20130825213300000 fr-title: Exemple de gestion de tâches -modified: 20160523100238122 +modified: 20220226174224424 tags: Learning title: TaskManagementExample type: text/vnd.tiddlywiki TiddlyWiki5 peut servir de système de gestion de tâches simple sans personnalisation supplémentaires. L'idée est que les tâches soient taguées avec `task`, celles étant terminées portant également le tag `done`. De cette manière, il est très simple de générer des listes de tâches. +<<.tip """Il y a [[une version améliorée de cet exemple|TaskManagementExample (Draggable)]] qui ajoute la possibilité de réordonner les tâches par glisser-déposer.""">> + ! Tâches à effectuer <$list filter="[!has[draft.of]tag[task]!tag[done]sort[created]]"> diff --git a/editions/fr-FR/tiddlers/TiddlyWiki for Scholars by Alberto Molina.tid b/editions/fr-FR/tiddlers/TiddlyWiki for Scholars by Alberto Molina.tid new file mode 100644 index 000000000..d4b938aa1 --- /dev/null +++ b/editions/fr-FR/tiddlers/TiddlyWiki for Scholars by Alberto Molina.tid @@ -0,0 +1,15 @@ +created: 20140720085406905 +fr-title: "TiddlyWiki for Scholars" par Alberto Molina +modified: 20220226175137835 +tags: Resources +title: "TiddlyWiki for Scholars" by Alberto Molina +type: text/vnd.tiddlywiki +url: http://tw5.scholars.tiddlyspot.com/ + +Une version préliminaire d'une //édition// de TiddlyWiki adaptée à une rigoureuse prise de notes universitaire. + +{{!!url}} + +<<< +//<> for Scholars// est une personnalisation de ~TiddlyWiki 5.0.13-beta, que j'ai écrite en pensant à la prise de notes à partir de lectures, mais qui peut servir à d'autres choses. L'idée est de montrer et de faciliter la création des données liées au tiddler courant sans quitter le tiddler. +<<< diff --git a/languages/fr-FR/GettingStarted.tid b/languages/fr-FR/GettingStarted.tid index b9e327d8f..8aa68609b 100644 --- a/languages/fr-FR/GettingStarted.tid +++ b/languages/fr-FR/GettingStarted.tid @@ -1,35 +1,18 @@ -created: 20131129090249275 -fr-title: La mise en route -modified: 20220217175123712 -tags: [[Working with TiddlyWiki]] title: GettingStarted -type: text/vnd.tiddlywiki +\define lingo-base() $:/language/ControlPanel/Basics/ +Bienvenue sur ~TiddlyWiki et parmi la communauté ~TiddlyWiki. -Téléchargez un <> vide en cliquant sur ce bouton<<:>> {{$:/editions/fr-FR/snippets/download-empty-button}} +Avant de confier à TiddlyWiki des informations importantes, commencez par vérifier que vos modifications peuvent être sauvegardées +correctement — reportez-vous aux [[instructions détaillées|https://tiddlywiki.com/languages/fr-FR/index.html#Saving]] sur https://tiddlywiki.com/. -L'étape suivante consiste à choisir une solution d'enregistrement des modifications. De nombreuses méthodes sont disponibles, chacune avec ses atouts et ses limites. Cliquez sur la fiche d'une méthode pour voir plus d'informations la concernant. Vous pouvez aussi cocher une case de plateformes et de navigateur pour afficher les solutions qui fonctionnent pour cette combinaison. +!! Personnalisez ce ~TiddlyWiki -<<.warning "N'utilisez pas le menu ''Fichier''/''Enregistrer'' du navigateur internet pour enregistrer vos modifications (ça ne marche pas)<>">>

+
-{{Saving}} - - - -Autres informations<<:>> - -* [[Protéger le contenu avec un mot de passe|Encryption]] grâce au système de chiffrement intégré à <><<;>> -* [[Enregistrer avec Tiddlyspot|Saving on TiddlySpot]], un service gratuit qui vous permet d'utiliser <> en ligne<<;>> -* Sauvegarde avec TiddlyDesktop, une application de bureautique dédiée au travail avec <><<;>> -* Vous pouvez aussi télécharger ce <> complet, avec toute sa documentation<<:>>
- -<<< -{{$:/snippets/download-wiki-button}} - -Si le bouton ne fonctionne pas, sauvegardez ce lien<<:>> - -~https://tiddlywiki.com/languages/fr-FR/index.html - -Votre navigateur vous demandera sans doute confirmation avant de démarrer le téléchargement. -<<< +|<$link to="$:/SiteTitle"><> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | +|<$link to="$:/SiteSubtitle"><> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | +|<$link to="$:/DefaultTiddlers"><> |<>
<$edit-text tag="textarea" tiddler="$:/DefaultTiddlers"/>
//<>// |
+ +Rendez-vous dans le [[panneau de contrôle|$:/ControlPanel]] pour plus d'options. From 4d3ebf4bf02d9eb369254d463548020601a692d3 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 27 Feb 2022 17:23:36 +0000 Subject: [PATCH 08/91] Revert "fr-FR next batch of translation updates (#6489)" This reverts commit b3268546ef8ba3153d76f46f72d0496a9a181508. --- Block Quotes in WikiText.tid | 78 -------- Code Blocks in WikiText.tid | 44 ----- Formatting in WikiText.tid | 23 --- HTML in WikiText.tid | 119 ------------ Headings in WikiText.tid | 22 --- .../$ _editions_tw5.com_doc-macros.tid | 174 ++++++++++++++++++ .../$__editions_tw5.com_doc-macros.tid | 68 +------ .../Creating and editing tiddlers.tid | 22 +-- editions/fr-FR/tiddlers/GettingStarted.tid | 30 ++- .../fr-FR/tiddlers/How to export tiddlers.tid | 31 ---- .../fr-FR/tiddlers/Importing Tiddlers.tid | 26 --- editions/fr-FR/tiddlers/PermaLinks.tid | 38 ++-- editions/fr-FR/tiddlers/Share Plugin.tid | 15 -- .../Sharing a TiddlyWiki on Dropbox.tid | 26 --- .../Sharing your tiddlers with others.tid | 18 -- .../fr-FR/tiddlers/TaskManagementExample.tid | 4 +- ...dlyWiki for Scholars by Alberto Molina.tid | 15 -- languages/fr-FR/GettingStarted.tid | 39 ++-- 18 files changed, 249 insertions(+), 543 deletions(-) delete mode 100644 Block Quotes in WikiText.tid delete mode 100644 Code Blocks in WikiText.tid delete mode 100644 Formatting in WikiText.tid delete mode 100644 HTML in WikiText.tid delete mode 100644 Headings in WikiText.tid create mode 100644 editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid delete mode 100644 editions/fr-FR/tiddlers/How to export tiddlers.tid delete mode 100644 editions/fr-FR/tiddlers/Importing Tiddlers.tid delete mode 100644 editions/fr-FR/tiddlers/Share Plugin.tid delete mode 100644 editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid delete mode 100644 editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid delete mode 100644 editions/fr-FR/tiddlers/TiddlyWiki for Scholars by Alberto Molina.tid diff --git a/Block Quotes in WikiText.tid b/Block Quotes in WikiText.tid deleted file mode 100644 index 5727fb51a..000000000 --- a/Block Quotes in WikiText.tid +++ /dev/null @@ -1,78 +0,0 @@ -created: 20131206154636572 -fr-title: Citations en bloc dans WikiText -modified: 20220226225218713 -tags: WikiText -title: Block Quotes in WikiText -type: text/vnd.tiddlywiki - -Il existe deux manières de produire des éléments HTML de type citation en bloc avec <>, l'une pour du contenu qui pourra s'afficher sur plusieurs lignes, et l'autre pour du contenu qui ne devra s'afficher que sur une seule ligne. - -! Citation en bloc multi-lignes - -La syntaxe pour les blocs multi-lignes est<<:>> - -<> - -!! Attribution - -Une attribution peut-être ajoutée au bloc comme ceci<<:>> - -<> - -!! Classes CSS - -Les blocs peuvent hériter des propriétés de classes CSS<<:>> - -<> - -Le cœur de <> inclut la classe `tc-big-quote` qui représente les citations avec des guillemets géants<<:>> - -<> - -! Bloc uniligne - -La syntaxe des citations uniligne est une extension de la syntaxe des [[listes avec WikiText|Lists in WikiText]]. Par exemple<<:>> - -< Bloc de citation uniligne -> Un autre bloc uniligne -">> - -Vous pouvez imbriquer des blocs unilignes comme ceci<<:>> - -``` -> Un bloc de niveau 1 ->> Un bloc de niveau 2 -> Un autre bloc de niveau 1 -">> -``` - -Ce qui affichera<<:>> - -> Un bloc de niveau 1 ->> Un bloc de niveau 2 -> Un autre bloc de niveau 1 - -Vous pouvez aussi mixer les citations en bloc avec d'autres types de listes. Par exemple<<:>> - -< Un bloc uniligne -**> Un autre bloc uniligne -* Liste trois -">> - -!! Pour aller plus loin -* les [[blocs en HTML5|http://www.alsacreations.com/tuto/lire/530-La-structure-des-balises-bloc-et-en-ligne.html]] diff --git a/Code Blocks in WikiText.tid b/Code Blocks in WikiText.tid deleted file mode 100644 index a1c1032a7..000000000 --- a/Code Blocks in WikiText.tid +++ /dev/null @@ -1,44 +0,0 @@ -caption: Blocs de code -created: 20141016143834720 -fr-title: Blocs de code en WikiText -modified: 20220226232420710 -tags: WikiText -title: Code Blocks in WikiText -type: text/vnd.tiddlywiki - -Un bloc de code (<<.icon $:/core/images/mono-block>>) est délimité par trois caractères <> ``` (connus en anglais sous le nom de <>)<<:>> - -
-```
-Ce texte aura une chasse fixe et ne sera pas `formaté`.
-```
-
- -Donnera le résultat suivant<<:>> - -``` -Ce texte aura une chasse fixe et ne sera pas `formaté`. -``` - -Pour être interprétés correctement, les trois accents graves doivent être placés au début d'une ligne et immédiatement suivis d'un retour à la ligne. - -Souvenez-vous que le paragraphe précédent doit s'être terminé correctement, à l'aide de deux retours à la ligne. L'exemple suivant est donc ''faux''<<:>> - -
-Ceci est un paragraphe ordinaire.
-```
-Ce texte aura une chasse fixe et ne sera pas `formaté`.
-```
-
- -La version correcte est<<:>> - -
-Ceci est un paragraphe ordinaire.
-
-```
-Ce texte aura une chasse fixe et ne sera pas `formaté`.
-```
-
- -Certains claviers traitent le backtick comme une [[touche morte|http://fr.wikipedia.org/wiki/Touche_morte]], le rendant difficile à taper. L'astuce est de taper 3 ` suivis d'un espace. Une autre méthode consiste à taper 6 ` d'affilée, puis de bouger le curseur en arrière trois fois pour taper ou coller le contenu du bloc. diff --git a/Formatting in WikiText.tid b/Formatting in WikiText.tid deleted file mode 100644 index 8066ab8e8..000000000 --- a/Formatting in WikiText.tid +++ /dev/null @@ -1,23 +0,0 @@ -caption: Formatage -created: 20141016142259705 -fr-title: Mise en forme avec WikiText -modified: 20220226233811803 -tags: WikiText -title: Formatting in WikiText -type: text/vnd.tiddlywiki - -Voici les formatages de caractères disponibles en [[WikiTexte|WikiText]]<<:>> - -|Format |Résultat |Icône |h -|`code`
``code contenant du `code` `` |`code`
``code contenant du `code` `` |<<.icon $:/core/images/mono-line>> | -|`''gras''` |texte en ''gras'' |<<.icon $:/core/images/bold>> | -|`//italique//` |texte en //italique// |<<.icon $:/core/images/italic>> | -|`__souligné__` |texte __souligné__ |<<.icon $:/core/images/underline>> | -|`~~barré~~` |texte ~~barré~~ |<<.icon $:/core/images/strikethrough>> | -|`^^exposant^^` |texte en ^^exposant^^ |<<.icon $:/core/images/superscript>> | -|`,,indice,,` |texte en ,,indice,, |<<.icon $:/core/images/subscript>> | - -Voir aussi<<:>> [[WikiTexte : blocs de code|Code Blocks in WikiText]] - -; Remarque -: Si le code inclus est à la fin du code contenant, l'espace entre le ` et les `` est nécessaire. diff --git a/HTML in WikiText.tid b/HTML in WikiText.tid deleted file mode 100644 index 592275185..000000000 --- a/HTML in WikiText.tid +++ /dev/null @@ -1,119 +0,0 @@ -caption: HTML -created: 20141017141153174 -fr-title: HTML dans le WikiTexte -modified: 20220227020401008 -tags: WikiText -title: HTML in WikiText -type: text/vnd.tiddlywiki - -! Balises HTML et commentaires - -Les balises et les commentaires HTML peuvent être utilisées directement en [[WikiTexte|WikiText]]. Par exemple<<:>> - -< -Ceci est un simple bloc de texte. HelloThere - -">> - -; Remarque -: Par conséquent, un mot écrit entre "chevrons" `< >` sera interprété comme une balise HTML, ce qui peut entraîner des effets de bord (notamment à cause de l'inexistence de la balise fermante).
À la place, mieux vaut utiliser le [[code HTML|Codes HTML]] des caractères "chevrons" : `<` et `>` - -!! Commentaires //Pragma// - -<<.from-version 5.2.0>> Les commentaires peuvent maintenant être librement entremêlés avec les pragmas ou bien à l'intérieur du corps d'un bloc de wikitexte. - -``` - -\define test() -Un peu de texte -\end - -<> -``` - -! Important - -<<.tip """[[Les Widgets utilisent la même syntaxe que les balises HTML|Widgets in WikiText]], donc les informations suivantes s'appliquent aussi à eux.""">> - -! Mode //bloc// ou mode //texte// ? - -Pour que le contenu d'un élément HTML soit [[interprété|WikiText Parser Modes]] en [[mode bloc|Block Mode WikiText]], la balise ouvrante doit être suivie par deux retours à la ligne. - -Sans les deux retours à la ligne, le contenu des balises sera [[interprété|WikiText Parser Modes]] en [[mode texte|Inline Mode WikiText]], ce qui signifie que les formatages de mode bloc tels que les tableaux, les listes et les titres ne seront pas reconnus. - -Voir aussi <> et <>. - -! Éléments auto-fermants - -Les balises suivantes sont traitées comme si elles étaient vides, ce qui signifie que `` est traitée comme si c'était ``, et qu'aucune balise de fermeture `` n'est nécessaire. Mais si la balise fermante existe elle est ignorée et traitée comme du texte. - -* ``, ``, `
`, ``, ``, ``, `
`, ``, ``, ``, ``, ``, ``, ``, ``, `` - -Si vous ne fermez pas n'importe quelle autre balise HTML, <> se comportera comme si les balises manquantes étaient déportées à la fin du tiddler. - -! Attributs - -Par extension à la syntaxe conventionnelle HTML, les attributs des éléments ou widgets peuvent être écrits de différentes façons<<:>> - -* en tant que chaîne littérale -* en tant que transclusion de <> -* en tant que transclusion de [[macro ou de variable|Macros in WikiText]] -* en tant que résultat d'une [[expression de filtre|Filter Expression]] - -!! Valeurs littérales d'attributs - -Les valeurs littérales d'attribut peuvent utiliser différents styles de ponctuation<<:>> - -* Guillemets simples (c-à-d `attribut='valeur'`) -* Guillemets doubles (c-à-d `attribut="valeur"`) -* Triples guillemets doubles (c-à-d `attribut="""valeur"""`) -* Aucune ponctuation n'est nécessaire pour les valeurs qui ne contiennent pas d'espace (c-à-d `attribut=valeur`) - -Les valeurs littérales d'attribut peuvent contenir des retours à la ligne. Par exemple<<:>> - -``` -
-``` - -L'utilisation des triples guillemets doubles `"""` permet de spécifier des valeurs d'attributs qui contiennent des caractères "guillemet double"<<:>> - -``` -
-``` - -!! Valeurs d'attributs par transclusion - -Les valeurs d'attributs par transclusion sont encadrées par des doubles accolades autour d'une <>, par exemple<<:>> - -``` -attr={{tiddler}} -attr={{!!field}} -attr={{tiddler!!field}} -``` -<<.warning "La valeur de l'attribut sera le résultat exact de la transclusion, sans aucune interprétation supplémentaire de <>. Toute syntaxe de wiki dans ce résultat sera laissée en l'état.">> - -!! Valeur d'attribut par variable - -Les valeurs d'attributs par variable sont encadrées par des doubles crochets autour d'un [[appel de macro|Macro Calls in WikiText]], par exemple<<:>> - -``` -
>> -... -
-``` -<<.warning "Le texte de la définition de la macro est retrouvé et la substitution des arguments a lieu (c-à-d la syntaxe <<.param $param$>> et <<.param $(...)$>>). Le texte résultant est affecté à la valeur de l'attribut. Toute syntaxe wiki dans ce texte, y-compris d'autres appels de macros ou des références de variables, sera laissée en l'état.">> - -!! Valeurs d'attributs par filtre - -Les valeurs d'attributs par filtre sont encadrées par des accolades triples autour d'une [[expression de filtre|Filter Expression]]. Le premier élément de la liste renvoyée par le filtre est affecté à l'attribut, ou une chaîne vide si la liste est vide. - -Cet exemple montre comment ajouter un préfixe à une valeur<<:>> - -``` -<$text text={{{ [addprefix[$:/myprefix/]] }}} /> -``` -<<.warning "La valeur de l'attribut sera le résultat exact du premier élément de la liste renvoyée par le filtre, sans aucune interprétation du <>. Toute syntaxe de wiki dans ce résultat sera laissée telle quelle.">> diff --git a/Headings in WikiText.tid b/Headings in WikiText.tid deleted file mode 100644 index 8395dd240..000000000 --- a/Headings in WikiText.tid +++ /dev/null @@ -1,22 +0,0 @@ -caption: Titres de rubriques -created: 20141017093039992 -fr-title: Titres de rubriques dans WikiText -modified: 20220226234057628 -tags: WikiText -title: Headings in WikiText -type: text/vnd.tiddlywiki - -Un titre de rubrique est codé par un à 6 caractères <> `!` au début d'une ligne<<:>> - -<> - -Des [[styles et des classes CSS|Styles and Classes in WikiText]] peuvent être assignés individuellement aux titres : - -<> diff --git a/editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid b/editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid new file mode 100644 index 000000000..226d0e4d7 --- /dev/null +++ b/editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid @@ -0,0 +1,174 @@ +created: 20150117152607000 +modified: 20220220000852855 +tags: $:/tags/Macro +title: $:/editions/tw5.com/doc-macros +type: text/vnd.tiddlywiki + +\define .concat(1,2,3,4,5) $1$$2$$3$$4$$5$ + +\define .def(_) $_$ +\define .em(_) $_$ +\define .strong(_) $_$ +\define .place(_) $_$ +\define .word(_) "$_$" + +\define .preamble(_) :.doc-preamble $_$ +\define .note(_) +@@.doc-note +;Note +: $_$ +@@ +\end + +\define .tid(_) $_$ +\define .tag(_) $_$ +\define .field(_) $_$ +\define .value(_) $_$ +\define .op(_) $_$ +\define .var(_) $_$ +\define .wid(_) $$_$ +\define .attr(_) $_$ +\define .param(_) $_$ + +\define .mtitle(_) $_$ Macro +\define .otitle(_) $_$ Operator +\define .vtitle(_) $_$ Variable + +\define .link(_,to) <$link to="$to$">$_$ +\define .clink(_,to) <<.link """$_$""" "$to$">> +\define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/> +\define .dlink-ex(_,to) <<.def "$_$">> +\define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/> +\define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/> +\define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> +\define .olink(_) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$_$">>/> +\define .olink2(_,to) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$to$">>/> +\define .vlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.vtitle "$_$">>/> +\define .vlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> +\define .wlink(to) <$macrocall $name=".link" _=<<.wid {{$to$!!caption}}>> to="$to$"/> +\define .wlink2(_,to) <$macrocall $name=".link" _="$_$" to="$to$"/> + +\define .key(_) $_$ +\define .combokey(_) <$macrocall $name=".if" cond="$_$" then=<<.key '$_$'>>/> +\define .keycombo(1,2,3,4) <<.combokey "$1$">><<.if "$2$" +>><<.combokey "$2$">><<.if "$3$" +>><<.combokey "$3$">><<.if "$4$" +>><<.combokey "$4$">> + +\define .tab(_) {{$_$!!caption}} +\define .sidebar-tab(_) <<.tab "$:/core/ui/SideBar/$_$">> +\define .more-tab(_) <<.tab "$:/core/ui/MoreSideBar/$_$">> +\define .info-tab(_) <<.tab "$:/core/ui/TiddlerInfo/$_$">> +\define .controlpanel-tab(_) <<.tab "$:/core/ui/ControlPanel/$_$">> +\define .advancedsearch-tab(_) <<.tab "$:/core/ui/AdvancedSearch/$_$">> +\define .toc-tab() <<.tab "TableOfContents">> +\define .example-tab(_) $_$ + +\define .button(_) {{$:/core/ui/Buttons/$_$!!caption}} + +\define .icon(_) {{$_$}} + +\define .tip(_)
{{$:/core/images/tip}}
$_$
+\define .warning(_)
{{$:/core/images/warning}}
$_$
+ +\define .state-prefix() $:/state/editions/tw5.com/ + +\define .lorem() +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +\end + +\define .toc-lorem() +C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table-of-Contents Macros (Examples)]]. + +<<.lorem>> +\end + +\define .example(n,eg,egvar:NO-SUCH-VAR) +
+<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> + <$macrocall $name="copy-to-clipboard-above-right" src="""$eg$"""/> + <$codeblock code="""$eg$"""/> + +<$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> + + <$macrocall $name="copy-to-clipboard-above-right" src=<<$egvar$>>/> + <$codeblock code=<<$egvar$>>/> + +<$list filter="[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]" variable=".state"> +<$reveal state=<<.state>> type="nomatch" text="show"> +
+
<$button set=<<.state>> setTo="show">Essayez
+
+ +<$reveal state=<<.state>> type="match" text="show"> +
+
<$button set=<<.state>> setTo="">Cachez
+
+
+ <$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> + $eg$ + + <$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> + <<$egvar$>> + +
+ + +\end + +\define .bad-example(eg) + + + + + + + +
Warning:
Don't do it this way!
+ +$eg$ +
+\end + +\define .link-badge(text,link,colour) +> class="doc-link-badge" style="background-color:$colour$;" target="_blank" rel="noopener noreferrer"><$text text=<<__text__>>/> +\end + + +\define .link-badge-added(link,colour:#ffe246) <<.link-badge "added" """$link$""" """$colour$""">> +\define .link-badge-addendum(link,colour:#fcc84a) <<.link-badge "addendum" """$link$""" """$colour$""">> +\define .link-badge-extended(link,colour:#f9a344) <<.link-badge "extended" """$link$""" """$colour$""">> +\define .link-badge-fixed(link,colour:#ffa86d) <<.link-badge "fixed" """$link$""" """$colour$""">> +\define .link-badge-here(link,colour:#d88e63) <<.link-badge "here" """$link$""" """$colour$""">> +\define .link-badge-hide(link,colour:#9d959f) <<.link-badge "hide" """$link$""" """$colour$""">> +\define .link-badge-improved(link,colour:#7593c7) <<.link-badge "improved" """$link$""" """$colour$""">> +\define .link-badge-modified(link,colour:#7f99c9) <<.link-badge "modified" """$link$""" """$colour$""">> +\define .link-badge-removed(link,colour:#a9aabc) <<.link-badge "removed" """$link$""" """$colour$""">> +\define .link-badge-renamed(link,colour:#b4b995) <<.link-badge "renamed" """$link$""" """$colour$""">> +\define .link-badge-updated(link,colour:#91ba66) <<.link-badge "updated" """$link$""" """$colour$""">> + +\define .tiddler-fields(tiddler) +<$tiddler tiddler=<<__tiddler__>>> +
+

+<$link> +{{||$:/core/ui/TiddlerIcon}}<$text text=<>/> + +

+ + +<$list filter="[all[current]fields[]sort[title]] -title" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/> + +
+
+ +\end + +\define .banner-credits(credit,url) +> width="140" style="float:left;margin-right:0.5em;"/> + +$credit$ + +
+ +
+\end + +
<$view field="text"/>
\ No newline at end of file diff --git a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid index b916b56d4..b613f2eb4 100644 --- a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid +++ b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid @@ -1,5 +1,5 @@ created: 20150117152607000 -modified: 20220220000852855 +modified: 20150620212025034 tags: $:/tags/Macro title: $:/editions/tw5.com/doc-macros type: text/vnd.tiddlywiki @@ -37,7 +37,7 @@ type: text/vnd.tiddlywiki \define .link(_,to) <$link to="$to$">$_$ \define .clink(_,to) <<.link """$_$""" "$to$">> \define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/> -\define .dlink-ex(_,to) <<.def "$_$">> +\define .dlink-ex(_,to) <<.def "$_$">> \define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/> \define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/> \define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> @@ -63,8 +63,6 @@ type: text/vnd.tiddlywiki \define .button(_) {{$:/core/ui/Buttons/$_$!!caption}} -\define .icon(_) {{$_$}} - \define .tip(_)
{{$:/core/images/tip}}
$_$
\define .warning(_)
{{$:/core/images/warning}}
$_$
@@ -83,12 +81,10 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- \define .example(n,eg,egvar:NO-SUCH-VAR)
<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> - <$macrocall $name="copy-to-clipboard-above-right" src="""$eg$"""/> <$codeblock code="""$eg$"""/> <$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> - <$macrocall $name="copy-to-clipboard-above-right" src=<<$egvar$>>/> <$codeblock code=<<$egvar$>>/> <$list filter="[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]" variable=".state"> @@ -112,63 +108,3 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- \end - -\define .bad-example(eg) - - - - - - - -
Warning:
Don't do it this way!
- -$eg$ -
-\end - -\define .link-badge(text,link,colour) -> class="doc-link-badge" style="background-color:$colour$;" target="_blank" rel="noopener noreferrer"><$text text=<<__text__>>/> -\end - - -\define .link-badge-added(link,colour:#ffe246) <<.link-badge "added" """$link$""" """$colour$""">> -\define .link-badge-addendum(link,colour:#fcc84a) <<.link-badge "addendum" """$link$""" """$colour$""">> -\define .link-badge-extended(link,colour:#f9a344) <<.link-badge "extended" """$link$""" """$colour$""">> -\define .link-badge-fixed(link,colour:#ffa86d) <<.link-badge "fixed" """$link$""" """$colour$""">> -\define .link-badge-here(link,colour:#d88e63) <<.link-badge "here" """$link$""" """$colour$""">> -\define .link-badge-hide(link,colour:#9d959f) <<.link-badge "hide" """$link$""" """$colour$""">> -\define .link-badge-improved(link,colour:#7593c7) <<.link-badge "improved" """$link$""" """$colour$""">> -\define .link-badge-modified(link,colour:#7f99c9) <<.link-badge "modified" """$link$""" """$colour$""">> -\define .link-badge-removed(link,colour:#a9aabc) <<.link-badge "removed" """$link$""" """$colour$""">> -\define .link-badge-renamed(link,colour:#b4b995) <<.link-badge "renamed" """$link$""" """$colour$""">> -\define .link-badge-updated(link,colour:#91ba66) <<.link-badge "updated" """$link$""" """$colour$""">> - -\define .tiddler-fields(tiddler) -<$tiddler tiddler=<<__tiddler__>>> -
-

-<$link> -{{||$:/core/ui/TiddlerIcon}}<$text text=<>/> - -

- - -<$list filter="[all[current]fields[]sort[title]] -title" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/> - -
-
- -\end - -\define .banner-credits(credit,url) -> width="140" style="float:left;margin-right:0.5em;"/> - -$credit$ - -
- -
-\end - -
<$view field="text"/>
diff --git a/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid b/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid index 62d894ec3..243fceb77 100644 --- a/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid +++ b/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid @@ -1,13 +1,13 @@ created: 20140904140300000 fr-title: Créer et modifier des tiddlers -modified: 20220221002250215 +modified: 20150620081426868 tags: [[Working with TiddlyWiki]] title: Creating and editing tiddlers type: text/vnd.tiddlywiki ! Créer des tiddlers -Vous créez un tiddler soit en cliquant sur le bouton <<.icon $:/core/images/new-button>> du menu latéral, soit en cliquant sur un lien vers un tiddler absent. Les liens vers les tiddlers absents sont affichés en [[italique bleu]]. +Vous créez un tiddler soit en cliquant sur le bouton {{$:/core/images/new-button}} du menu latéral, soit en cliquant sur un lien vers un tiddler absent. Les liens vers les tiddlers absents sont affichés en [[italique bleu]]. Voir aussi<<:>> @@ -15,23 +15,23 @@ Voir aussi<<:>> ! Modifier des tiddlers -Pour modifier un tiddler existant, cliquez sur le bouton <<.icon $:/core/images/edit-button>> en haut et à droite du tiddler. +Pour modifier un tiddler existant, cliquez sur le bouton {{$:/core/images/edit-button}} en haut et à droit du tiddler. !! Mode ébauche -Quand vous créez un nouveau tiddler ou modifiez un existant, le tiddler passe en mode ébauche. Ce mode propose un panneau de contrôle pour apporter différents types de modifications. Il a plusieurs parties, de bas en haut<<:>> +Quand vous créez un nouveau tiddler ou modifiez un existant, le tiddler passe en mode ébauche. Ce qui propose un panneau de contrôle pour apporter différents types de modifications. Il a plusieurs parties, de bas en haut<<:>> *''Le champ titre'' - pour modifier le titre du tiddler -*''Le sélecteur de tags'' - pour ajouter ou supprimer des tags. Lors de la saisie d'un tag, une liste déroulante affiche les tags correspondant sous forme de complétions. Vous pouvez choisir dans cette liste ou créer un tag entièrement nouveau. Puis cliquez sur le bouton ''ajouter'' ou utilisez la touche Entrée pour ajouter le tag au tiddler. Chaque tag est affiché sous forme d'une pilule colorée. Cliquez le "×" d'une pilule pour supprimer le tag -*''La zone de texte'' - pour modifier le contenu principal du tiddler. Cliquez sur le bouton ''afficher la prévisualiation'' (<<.icon $:/core/images/preview-closed>> / <<.icon $:/core/images/preview-open>>) pour visualiser l'apparence des modifications -*''Le sélecteur de type'' - pour afficher vos tiddlers dans un format spécial, comme une image. Voir ContentType pour la liste des options. Le choix par défaut est `text/vnd.tiddlywiki`, qui indique que le tiddler contient du <> -*''Le sélecteur de champ'' - pour ajouter ou supprimer des champs du tiddler. Par exemple, si vous modifiez un tiddler utilisé comme tag par d'autres tiddlers, vous pouvez ajouter un [[champ ''list''|ListField]] pour modifier l'ordre dans lequel ces tiddlers seront listés +*''Le sélecteur de tags'' - pour ajouter ou supprimer des tags. Lors de la saisie d'un tag, une liste déroulante affiche les tags correspondant sous forme de complétions. Vous pouvez choisir dans cette liste ou créer un tag entièrement nouveau. Puis cliquez sur le bouton ''ajouter'' pour ajouter le tag au tiddler. Chaque tag est affiché sous forme d'une pilule colorée. Cliquez le "×" d'un pilule pour supprimer le tag +*''La zone de texte'' - pour modifier le contenu principal du tiddler. Cliquez sur le bouton ''afficher la prévisualiation'' pour visualiser l'apparence des modifications +*''Le sélecteur de type'' - pour afficher vos tiddlers dans un format spécial, comme une image. Voir ContentType pour la liste des options. Le choix par défaut est `text/vnd.tiddlywiki`, qui indique que le tiddler contient du [[WikiTexte|WikiText]] +*''Le sélecteur de champ'' - pour ajouter ou supprimer des champs du tiddler. Par exemple, si vous modifiez un tiddler utilisé comme tag par d'autres tiddlers, vous pouvez ajouter un [[champ ''list''|ListField]] pour modifier l'ordre dans lequel ces tiddlers seront listé ! Confirmer, annuler ou supprimer Quand vous avez terminé les modifications, cliquez sur le bouton en haut et à droite du tiddler<<:>> -*Le bouton ''confirmer'' (<<.icon $:/core/images/done-button>>) mémorise vos modifications dans le tiddler et quitte le mode ébauche. Si votre wiki est configuré en <>, vos modifications seront enregistrées de façon permanente. Autrement elles sont mémorisées temporairement dans votre navigateur web, et vous les perdrez si vous fermez votre page ~TiddlyWiki sans avoir cliqué sur le bouton principal pour ''Enregistrer'' (<<.icon $:/core/images/save-button>>) dans le menu latéral. -*Le bouton ''annuler'' (<<.icon $:/core/images/cancel-button>>) ignore vos modifications (après demande de confirmation) et quitte le mode ébauche. -*Le bouton ''supprimer'' (<<.icon $:/core/images/delete-button>>) supprime tout le tiddler (après demande de confirmation). +*Le bouton ''confirmer'' ({{$:/core/images/done-button}}) mémorise vos modifications dans le tiddler et quitte le mode ébauche. Si votre wiki est configuré en [[AutoSave]], vos modifications seront enregistrées de façon permanente. Autrement elles sont mémorisées temporairement dans votre navigateur web, et vous les perdrez si vous fermez votre page ~TiddlyWiki sans avoir cliqué sur le bouton principal pour ''Enregistrer'' {{$:/core/images/save-button}} dans le menu latéral. +*Le bouton ''annuler'' ({{$:/core/images/cancel-button}}) ignore vos modifications (après demande de confirmation) et quitte le mode ébauche. +*Le bouton ''supprimer'' ({{$:/core/images/delete-button}}) supprime tout le tiddler (après demande de confirmation). \ No newline at end of file diff --git a/editions/fr-FR/tiddlers/GettingStarted.tid b/editions/fr-FR/tiddlers/GettingStarted.tid index b9e327d8f..9fbd71706 100644 --- a/editions/fr-FR/tiddlers/GettingStarted.tid +++ b/editions/fr-FR/tiddlers/GettingStarted.tid @@ -1,32 +1,30 @@ created: 20131129090249275 fr-title: La mise en route -modified: 20220217175123712 +modified: 20160526131021571 tags: [[Working with TiddlyWiki]] title: GettingStarted type: text/vnd.tiddlywiki +\define default-platform() +GettingStarted - $(browser-name)$ +\end +Instructions pour bien commencer avec <>, selon les différentes plates-formes et configurations supportées. -Téléchargez un <> vide en cliquant sur ce bouton<<:>> {{$:/editions/fr-FR/snippets/download-empty-button}} +<$set name="browser-name" value={{$:/info/browser/name}}> +<$macrocall $name="tabs" state="$:/state/tabs/platform" tabsList="[prefix[GettingStarted - ]]" default=<> class="tc-vertical"/> + -L'étape suivante consiste à choisir une solution d'enregistrement des modifications. De nombreuses méthodes sont disponibles, chacune avec ses atouts et ses limites. Cliquez sur la fiche d'une méthode pour voir plus d'informations la concernant. Vous pouvez aussi cocher une case de plateformes et de navigateur pour afficher les solutions qui fonctionnent pour cette combinaison. +Autres informations : -<<.warning "N'utilisez pas le menu ''Fichier''/''Enregistrer'' du navigateur internet pour enregistrer vos modifications (ça ne marche pas)<>">>

- -{{Saving}} - - - -Autres informations<<:>> - -* [[Protéger le contenu avec un mot de passe|Encryption]] grâce au système de chiffrement intégré à <><<;>> -* [[Enregistrer avec Tiddlyspot|Saving on TiddlySpot]], un service gratuit qui vous permet d'utiliser <> en ligne<<;>> -* Sauvegarde avec TiddlyDesktop, une application de bureautique dédiée au travail avec <><<;>> -* Vous pouvez aussi télécharger ce <> complet, avec toute sa documentation<<:>>
+* [[Cryptage|Encryption]] explique comment utiliser le système de cryptage intégré à <> pour protéger votre contenu avec un mot de passe ; +* [[Enregistrer avec Tiddlyspot|Saving on TiddlySpot]], un service gratuit qui vous permet d'utiliser <> en ligne ; +* Sauvegarde avec TiddlyDesktop, une application de bureautique dédiée au travail avec <> ; +* Vous pouvez aussi télécharger ce <> complet, avec toute sa documentation<>
<<< {{$:/snippets/download-wiki-button}} -Si le bouton ne fonctionne pas, sauvegardez ce lien<<:>> +Si le bouton ne fonctionne pas, sauvegardez ce lien : ~https://tiddlywiki.com/languages/fr-FR/index.html diff --git a/editions/fr-FR/tiddlers/How to export tiddlers.tid b/editions/fr-FR/tiddlers/How to export tiddlers.tid deleted file mode 100644 index 4efed009c..000000000 --- a/editions/fr-FR/tiddlers/How to export tiddlers.tid +++ /dev/null @@ -1,31 +0,0 @@ -created: 20151006145934884 -fr-title: Exporter des tiddlers -modified: 20220222182612947 -tags: Learning -title: How to export tiddlers -type: text/vnd.tiddlywiki - -! Sélectionner tous les tiddlers pour l'exportation - -Pour exporter ''tous'' les tiddlers, cliquez sur l'onglet ''Outils'' de la barre latérale. Trouvez le bouton <<.icon $:/core/images/export-button>> ''exporter tout'' et cliquez dessus. Un menu flottant vous permet alors de choisir l'un des nombreux formats d'exportation des tiddlers. - -! Exporter un tiddler - -Pour exporter un tiddler particulier, commencez par l'afficher, puis cliquez sur le bouton <<.icon $:/core/images/down-arrow>> ''plus'' situé vers le haut du tiddler. Dans la liste qui apparaît, sélectionnez <<.icon $:/core/images/export-button>> ''exporter ce tiddler''. Un menu flottant vous permet alors de choisir l'un des nombreux formats d'exportation des tiddlers. - -! Exporter des tiddlers selon un critère (filtre) - -Pour exporter une sélection de tiddlers, cliquez sur le symbole de loupe <<.icon $:/core/images/advanced-search-button>> à proximité de la zone de recherche de la barre latérale, ce qui va ouvrir le tiddler de [[recherche avancée|$:/AdvancedSearch]]. Choisissez l'onglet ''Filtrer'' car c'est le seul qui permet d'exporter une sélection de tiddlers. Les [[filtres|Filters]] utilisent une syntaxe particulière, cliquez sur [[ce lien|Filters]] pour découvrir comment concevoir des filtres. - -Lorsque vous aurez rédigé un filtre, la liste des tiddlers correspondants apparaîtra. Vous pourrez alors cliquer sur le bouton <<.icon $:/core/images/export-button>> ''Exporte ces tiddlers'' situé à droite de la zone de saisie du filtre. Un menu flottant vous permettra alors de choisir l'un des nombreux formats d'exportation des tiddlers. - -! Formats d'exportation - -Actuellement, les formats d'exportation disponibles sont<<:>> - -* Le fichier au format CSV -* Le fichier au format JSON -* Le fichier HTML statique -* Le fichier au format <> - -Le format <> est particulier en ce qu'il ne permet d'exporter qu'un seul tiddler à la fois, même si vous essayer d'en exporter plusieurs à l'aide d'un filtre ou avec le bouton ''exporter tout''. diff --git a/editions/fr-FR/tiddlers/Importing Tiddlers.tid b/editions/fr-FR/tiddlers/Importing Tiddlers.tid deleted file mode 100644 index 874205edd..000000000 --- a/editions/fr-FR/tiddlers/Importing Tiddlers.tid +++ /dev/null @@ -1,26 +0,0 @@ -created: 20130825162000000 -fr-title: Importer des tiddlers -modified: 20220222173231214 -tags: Features -title: Importing Tiddlers -type: text/vnd.tiddlywiki - -Vous pouvez importer des tiddlers dans un <> à partir de fichiers externes ou directement depuis un autre <>. - -!! Importer du contenu de fichiers externes - -Il existe plusieurs méthodes pour importer du contenu (tel que du texte, des images, des documents pdf, etc.) à partir de fichiers externes<<:>> - -* Utiliser le bouton <<.icon $:/core/images/import-button>> ''Importer'' (dans l'onglet ''Outils'' de la barre latérale) pour choisir un fichier<<;>> -* Gisser-déposer des fichiers depuis l'Explorateur Windows, ou le Finder MacOS, etc. directement dans la fenêtre de navigateur de <><<;>> -* Copier-coller du contenu directement depuis le presse-papiers en utilisant le menu ou le raccourci clavier (ctrl-V ou cmd-V) -** Actuellement disponible avec Chrome, Firefox et Edge (mais pas Internet Explorer) - -Pour la plupart, les fichiers sont importés en tant que tiddlers individuels. Les exceptions sont<<:>> - -* les fichiers ''.html'' qui sont reconnus comme des fichiers <> sont interprétés pour en extraire les tiddlers qu'ils contiennent<<;>> -* les fichiers ''.json'' sont interprétés pour en extraire les tiddlers qu'ils contiennent. Ils peuvent être créés en les [[exportant|How to export tiddlers]] d'un autre <>. <> reconnaît les fichiers JSON qui contiennent un unique tiddler, ou un tableau de tiddlers. - -!! Importer du contenu depuis des <> dans d'autres fenêtres - -Les tiddlers peuvent être importés depuis des <> affichés dans d'autres fenêtres de navigateurs grâce au [[glisser-déposer|Drag and Drop]]. Faites glisser un lien interne <> ou un tag d'un <> à un autre, entre fenêtres de navigateurs. Faire glisser un lien interne importera un tiddler unique, alors que faire glisser une pilule de tag importera tous les tiddlers qui portent ce [[tag|Tagging]]. diff --git a/editions/fr-FR/tiddlers/PermaLinks.tid b/editions/fr-FR/tiddlers/PermaLinks.tid index c9ca34d8e..67189e525 100644 --- a/editions/fr-FR/tiddlers/PermaLinks.tid +++ b/editions/fr-FR/tiddlers/PermaLinks.tid @@ -1,16 +1,16 @@ caption: Permaliens created: 20140502213500000 fr-title: Permaliens -modified: 20220223144222832 +modified: 20150622112455420 tags: Features Concepts title: PermaLinks type: text/vnd.tiddlywiki -Les permaliens sont des liens directs vers des tiddlers individuels à l'intérieur d'un TiddlyWiki. +Les permaliens offrent la possibilités de faire des liens directs vers des tiddlers individuels dans un TiddlyWiki. ! La forme simple des permaliens -La forme la plus simple d'un permalien (<<.icon $:/core/images/permalink-button>>) vers un tiddler cible unique est son nom précédé de "#" accolé au lien URL de base <<:>> +La forme la plus simple d'un permalien vers un tiddler cible unique est son nom précédé de "#" accolé au lien URL de base <<:>> https://tiddlywiki.com/#HelloThere @@ -20,47 +20,47 @@ Le titre du tiddler peut contenir des espaces si nécessaire<<:>> Remarquez que les doubles crochets ne sont pas requis autour du titre du tiddler cible<<;>> cependant, s'ils sont présents ils seront supprimés automatiquement. -(NDT<<:>> Attention en cas de traduction, le lien doit pointer vers le titre original `title` et pas vers le titre traduit affiché qui ne reflète que le contenu du champ `fr-title`) +(NDT Attention en cas de traduction, c'est le lien doit pointer vers `title` le titre original et pas vers le titre traduit affiché qui ne reflète que le contenu du champ `fr-title`) ! Permaliens vers un déroulé -Le permalien peut aussi spécifier la liste de tiddlers qui seront ouverts dans le déroulé en plus du tiddler cible, à l'aide d'un [[filtre|Filters]]<<:>> +Le permalien peut aussi spécifier le déroulé de la liste de tiddlers qui seront ouverts avec le [[Tiddler Filtre|Filters]] cible<<:>> [[https://tiddlywiki.com/#TiddlerFields:Tiddlers TiddlerTags TiddlerFields ContentType]] -Si le tiddler cible est absent de la liste, il est alors automatiquement inséré au début du déroulé. Ce qui veut dire que les exemples suivants désignent tous les deux le tiddler `Tiddlers` dans le déroulé `Tiddlers`, `Tags`, `TiddlerFields`<<:>> +Si le tiddler cible est absent du déroulé de la liste, il est alors automatiquement inséré au début. Ce qui veut dire que les exemples suivants ciblent tous les deux le tiddler `Tiddlers` avec le déroulé de la suite `Tiddlers`, `Tags`, `TiddlerFields`: [[https://tiddlywiki.com/#Tiddlers:Tags TiddlerFields]] [[https://tiddlywiki.com/#Tiddlers:Tiddlers Tags TiddlerFields]] -Il est aussi possible de spécifier un filtre sans spécifier de tiddler cible de navigation<<:>> +Il est aussi possible de spécifier, pour les besoins de la navigation, un déroulé filtre sans spécifier de tiddler cible<<:>> -~https://tiddlywiki.com/#:[tags[task]] +~https://tiddlywiki.com/#:[tags[task]] ! Concernant le codage URL -Il existe des restrictions techniques aux caractères autorisés dans un adressage URL. Afin de permettre à tous les titres de tiddler d'être adressés, les caractères illégaux font l'objet d'un processus appelé <> où les caractères problématiques sont remplacés par leurs codes numériques. Par exemple, le caractère espace est remplacé par `%20`. +Il existe des restrictions techniques aux caractères légaux d'un adressage URL. Afin de permettre à tous les titres de tiddler d'être adressés, les caractères illégaux font l'objet d'un processus appelé "codage URL" où les caractères problématique sont remplacés par leurs codes numériques. Par exemple, le caractère espace est remplacé par `%20`. -Aussi bien le tiddler cible que le déroulé filtre devraient être encodés (mais pas le séparateur <>). <> génère des URLs encodées correctement qui peuvent paraître un peu "moche". Cependant, dans la pratique les navigateurs parviennent heureusement à interpréter parfaitement des caractères arbitraires dans les extraits URL. De ce fait, quand vous créez des permaliens manuellement vous pouvez choisir d'ignorer le codage URL. +Aussi bien le tiddler cible que le déroulé filtre seront encodé (mais pas le séparateur ":"). TiddlyWiki génère des URLs encodées correctement qui peuvent paraître un peu "moche". Cependant, dans la pratique les navigateurs parviennent heureusement et parfaitement à interpréter des caractères arbitraires dans les extraits URL. De ce fait, quand vous créez des permaliens manuellement vous pouvez choisir d'ignorer le codage URL. -! Comportement de <> avec les Permaliens +! Comportement de TiddlyWiki avec les Permaliens -Deux aspects importants du comportement de <> avec les permaliens peuvent être réglés avec les options de l'onglet ''Réglages avancés'' du <<.icon $:/core/images/options-button>> $:/ControlPanel <<:>> +Deux aspects importants du comportement de TiddliWiki avec les permaliens peuvent être réglés avec les options de l'onglet ''Réglages avancés'' du $:/ControlPanel <<:>> * d'une part la mise à jour automatique de la zone d'adresse à chaque navigation, et dans ce cas s'il faut inclure la séquence du déroulé aussi bien que le tiddler cible -* d'autre part si les mises à jour de la zone d'adresse doivent affecter l'historique du navigateur. Par défaut, c'est ''non''<<;>> mais lorsque ''oui'' est sélectionné, vous pouvez reprendre votre navigation entre les tiddlers en utilisant les boutons avancer et reculer du navigateur +* d'autre part si les mises à jour de la zone d'adresse doivent affecter l'historique du navigateur. Par défaut, c'est ''non''<<;>> mais lorsque que ''oui'' est sélectionné, vous pouvez reprendre votre navigation entre les tiddlers en utilisant les boutons avancer et reculer du navigateur -Notez que saisir un permalien ou s'y rendre causera toujours le traitement du permalien, ainsi que l'ouverture et la fermeture des tiddlers appropriés en fonction de son contenu. +Notez que saisir un permalien ou s'y rendre causera toujours le traitement du permalien, et les tiddlers ouverts ou fermés en fonction de lui. !! Détails techniques -Quand <> se lance il traite les permaliens selon les étapes ci-dessous<<;>> ces même étapes sont répétées dynamiquement lors des modifications du permalien (ce qui survient en réaction à l'édition de la barre d'adresse par l'utilisateur, par exemple). +Quand TiddlyWiki se lance il traite les permaliens selon les étapes suivantes<<;>> les même étapes sont répétées dynamiquement lors des modifications du permalien (cela survient en réaction à l'édition par l'adresse de la barre d'adresse, par exemple). -# Si le permalien contient un <>, traiter la chaine précédente comme la ''cible'' et la chaine qui suit comme le ''filtre du déroulé'' -# Si <> est absent, traiter toute la chaine comme la ''cible'' et marquer le ''filtre du déroulé'' comme //non-spécifié// -# Si le ''filtre du déroulé'' est //non-spécifié// pendant le processus de lancement, alors mettre une chaine vide dans le ''filtre du déroulé'' si la ''cible'' est spécifiée, ou les tiddlers par défaut si la ''cible'' n'est pas spécifiée -# Si le ''filtre du déroulé'' est //non-spécifié// hors du processus de lancement, alors affecter le ''filtre du déroulé'' au déroulé actuel +# Si le permalien contient un ":", traiter la chaine précédente comme la cible et la chaine qui suit comme le ''filtre du déroulé'' +# Si ":" est absent, traiter toute la chaine comme la ''cible'' et marquer le ''filtre du déroulé'' comme //non-spécifié// +# Si le ''filtre du déroulé'' est //non-spécifié// dans le processus de lancement, alors mettre une chaine vide dans le ''filtre du déroulé'' si la ''cible'' est spécifiée, ou aux tiddlers par défaut si la ''cible'' n'est pas spécifiée +# Si le ''filtre du déroulé'' est //non-spécifié// hors du processus de lancement, alors affecter le déroulé actuel au ''filtre du déroulé'' # Évaluer le ''filtre du déroulé'' comme ''liste du déroulé'' # Si la ''cible'' est spécifiée et absente de la ''liste du déroulé'' alors l'ajouter au début # Si la ''cible'' est spécifiée alors s'y rendre, autrement naviguer au premier tiddler de la ''liste du déroulé'' diff --git a/editions/fr-FR/tiddlers/Share Plugin.tid b/editions/fr-FR/tiddlers/Share Plugin.tid deleted file mode 100644 index 2d6ef7f98..000000000 --- a/editions/fr-FR/tiddlers/Share Plugin.tid +++ /dev/null @@ -1,15 +0,0 @@ -created: 20201228143125000 -fr-title: Plugin de partage -modified: 20220221010033461 -tags: OfficialPlugins -title: Share Plugin -type: text/vnd.tiddlywiki - -
N'installez ce plugin que si vous comprenez ce qu'il fait !
- -Ce plugin expérimental fournit des outils pour partager des tiddlers via des URLs, comme<<:>> - -* La possibilité de charger un groupe de tiddlers grâce à une //adresse hachée// au démarrage -* Un assistant et des modèles pour créer des URLs à partir d'un groupe de tiddlers - -Dans la [[bibliothèque des plugins|Installing a plugin from the plugin library]], vous trouverez le plugin de partage sous le nom <>. diff --git a/editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid b/editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid deleted file mode 100644 index 8377817cd..000000000 --- a/editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid +++ /dev/null @@ -1,26 +0,0 @@ -created: 20140122085818089 -fr-title: Partager un TiddlyWiki avec Dropbox -modified: 20220222195202852 -tags: Learning -title: Sharing a TiddlyWiki on Dropbox -type: text/vnd.tiddlywiki - -Vous pouvez travailler sur un fichier TiddlyWiki dans Dropbox et publier un lien que chacun pourra visualiser en lecture seule. - -# Mettez votre fichier TiddlyWiki dans un répertoire Dropbox -# Choisir l'option "Partager lien" de Dropbox pour avoir un lien d'accès publique au fichier -#* Dans l'interface web de Dropbox, c'est possible en cliquant sur l'icone du lien qui apparait au survol du fichier. Dropbox ajoute aussi un élément "Lien Partagé" au menu contextuel du Finder sur OS X et de l'Explorateur Windows -# L'URL générée par Dropbox aura cette forme<<:>> -#> `https://www.dropbox.com/s//mywiki.html` -# Modifier l'URL ainsi, en préservant soigneusement le //gobbledegook//<<:>> -#> `https://dl.dropboxusercontent.com/s//mywiki.html` - -Le résultat est une URL "secrète" que vous pouvez envoyer à d'autres personnes qui auront alors la capacité de découvrir le wiki. - ----- - -Entrez une URL générée par Dropbox ci-dessous et vous pourrez copier-coller l'URL secrète correspondante, ou l'ouvrir en cliquant sur <><<:>> - -<$edit-text tiddler="$:/temp/dropboxurl" default="https://www.dropbox.com/s//mywiki.html" tag="input" type="text" size="60"/> - -<$macrocall $name="dropbox-url" url={{$:/temp/dropboxurl}}/> diff --git a/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid b/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid deleted file mode 100644 index a891d1f60..000000000 --- a/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid +++ /dev/null @@ -1,18 +0,0 @@ -created: 20140908163900000 -fr-title: Partager vos tiddlers avec d'autres -modified: 20220221004623008 -tags: Learning -title: Sharing your tiddlers with others -type: text/vnd.tiddlywiki - -Il existe plusieurs façons de partager des [[tiddlers|Tiddlers]] ou votre <> complet<<:>> - -*Vous pouvez joindre un <> à un courriel -*Vous pouvez publier votre <> en ligne, et envoyer le lien dans un message<<:>> -**un lien vers l'URL du fichier lui-même -**un [[permalien|PermaLinks]] (<<.icon $:/core/images/permalink-button>>) vers un tiddler spécifique -**Un lien [[permaview|PermaView]] (<<.icon $:/core/images/permaview-button>>) de tous les tiddlers ouverts -* Vous pouvez [[partager un lien Dropbox vers votre TiddlyWiki|Sharing a TiddlyWiki on Dropbox]] -* Vous pouvez [[exporter des tiddlers|How to export tiddlers]] (<<.icon $:/core/images/export-button>>) dans plusieurs formats de fichiers tels que texte (.TID), HTML statique, JSON et CSV (valeurs séparées par des virgules, compatibles avec les tableurs) -* Vous pouvez aussi partager des tiddlers simplement en rendant votre <> accessible aux autres, par exemple en le publiant en ligne, ce qui leur permettra [[d'importer des tiddlers|Importing Tiddlers]] qu'il contient -* Il y a un [[plugin de partage|Share Plugin]] expérimental que vous pouvez utiliser pour partager des tiddlers grâce à une URL spécialement conçue à cet effet. diff --git a/editions/fr-FR/tiddlers/TaskManagementExample.tid b/editions/fr-FR/tiddlers/TaskManagementExample.tid index 19e4442e6..ef5b77f74 100644 --- a/editions/fr-FR/tiddlers/TaskManagementExample.tid +++ b/editions/fr-FR/tiddlers/TaskManagementExample.tid @@ -1,14 +1,12 @@ created: 20130825213300000 fr-title: Exemple de gestion de tâches -modified: 20220226174224424 +modified: 20160523100238122 tags: Learning title: TaskManagementExample type: text/vnd.tiddlywiki TiddlyWiki5 peut servir de système de gestion de tâches simple sans personnalisation supplémentaires. L'idée est que les tâches soient taguées avec `task`, celles étant terminées portant également le tag `done`. De cette manière, il est très simple de générer des listes de tâches. -<<.tip """Il y a [[une version améliorée de cet exemple|TaskManagementExample (Draggable)]] qui ajoute la possibilité de réordonner les tâches par glisser-déposer.""">> - ! Tâches à effectuer <$list filter="[!has[draft.of]tag[task]!tag[done]sort[created]]"> diff --git a/editions/fr-FR/tiddlers/TiddlyWiki for Scholars by Alberto Molina.tid b/editions/fr-FR/tiddlers/TiddlyWiki for Scholars by Alberto Molina.tid deleted file mode 100644 index d4b938aa1..000000000 --- a/editions/fr-FR/tiddlers/TiddlyWiki for Scholars by Alberto Molina.tid +++ /dev/null @@ -1,15 +0,0 @@ -created: 20140720085406905 -fr-title: "TiddlyWiki for Scholars" par Alberto Molina -modified: 20220226175137835 -tags: Resources -title: "TiddlyWiki for Scholars" by Alberto Molina -type: text/vnd.tiddlywiki -url: http://tw5.scholars.tiddlyspot.com/ - -Une version préliminaire d'une //édition// de TiddlyWiki adaptée à une rigoureuse prise de notes universitaire. - -{{!!url}} - -<<< -//<> for Scholars// est une personnalisation de ~TiddlyWiki 5.0.13-beta, que j'ai écrite en pensant à la prise de notes à partir de lectures, mais qui peut servir à d'autres choses. L'idée est de montrer et de faciliter la création des données liées au tiddler courant sans quitter le tiddler. -<<< diff --git a/languages/fr-FR/GettingStarted.tid b/languages/fr-FR/GettingStarted.tid index 8aa68609b..b9e327d8f 100644 --- a/languages/fr-FR/GettingStarted.tid +++ b/languages/fr-FR/GettingStarted.tid @@ -1,18 +1,35 @@ +created: 20131129090249275 +fr-title: La mise en route +modified: 20220217175123712 +tags: [[Working with TiddlyWiki]] title: GettingStarted +type: text/vnd.tiddlywiki -\define lingo-base() $:/language/ControlPanel/Basics/ -Bienvenue sur ~TiddlyWiki et parmi la communauté ~TiddlyWiki. -Avant de confier à TiddlyWiki des informations importantes, commencez par vérifier que vos modifications peuvent être sauvegardées -correctement — reportez-vous aux [[instructions détaillées|https://tiddlywiki.com/languages/fr-FR/index.html#Saving]] sur https://tiddlywiki.com/. +Téléchargez un <> vide en cliquant sur ce bouton<<:>> {{$:/editions/fr-FR/snippets/download-empty-button}} -!! Personnalisez ce ~TiddlyWiki +L'étape suivante consiste à choisir une solution d'enregistrement des modifications. De nombreuses méthodes sont disponibles, chacune avec ses atouts et ses limites. Cliquez sur la fiche d'une méthode pour voir plus d'informations la concernant. Vous pouvez aussi cocher une case de plateformes et de navigateur pour afficher les solutions qui fonctionnent pour cette combinaison. -
+<<.warning "N'utilisez pas le menu ''Fichier''/''Enregistrer'' du navigateur internet pour enregistrer vos modifications (ça ne marche pas)<>">>

-|<$link to="$:/SiteTitle"><> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | -|<$link to="$:/SiteSubtitle"><> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | -|<$link to="$:/DefaultTiddlers"><> |<>
<$edit-text tag="textarea" tiddler="$:/DefaultTiddlers"/>
//<>// | +{{Saving}} + + + +Autres informations<<:>> + +* [[Protéger le contenu avec un mot de passe|Encryption]] grâce au système de chiffrement intégré à <><<;>> +* [[Enregistrer avec Tiddlyspot|Saving on TiddlySpot]], un service gratuit qui vous permet d'utiliser <> en ligne<<;>> +* Sauvegarde avec TiddlyDesktop, une application de bureautique dédiée au travail avec <><<;>> +* Vous pouvez aussi télécharger ce <> complet, avec toute sa documentation<<:>>
+ +<<< +{{$:/snippets/download-wiki-button}} + +Si le bouton ne fonctionne pas, sauvegardez ce lien<<:>> + +~https://tiddlywiki.com/languages/fr-FR/index.html + +Votre navigateur vous demandera sans doute confirmation avant de démarrer le téléchargement. +<<<
- -Rendez-vous dans le [[panneau de contrôle|$:/ControlPanel]] pour plus d'options. From b196cf77e8a5225160f1627744bb331531c99bd5 Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Tue, 1 Mar 2022 10:23:19 +0100 Subject: [PATCH 09/91] Sort sidebar language, plugin and theme list by name rather than description (#6501) --- core/ui/MoreSideBar/plugins/Languages.tid | 2 +- core/ui/MoreSideBar/plugins/Plugins.tid | 2 +- core/ui/MoreSideBar/plugins/Theme.tid | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/ui/MoreSideBar/plugins/Languages.tid b/core/ui/MoreSideBar/plugins/Languages.tid index 2220f0124..31d477ee5 100644 --- a/core/ui/MoreSideBar/plugins/Languages.tid +++ b/core/ui/MoreSideBar/plugins/Languages.tid @@ -2,4 +2,4 @@ title: $:/core/ui/MoreSideBar/Plugins/Languages tags: $:/tags/MoreSideBar/Plugins caption: {{$:/language/ControlPanel/Plugins/Languages/Caption}} -<$list filter="[!has[draft.of]plugin-type[language]sort[description]]" template="$:/core/ui/PluginListItemTemplate" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/> +<$list filter="[!has[draft.of]plugin-type[language]sort[name]]" template="$:/core/ui/PluginListItemTemplate" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/> diff --git a/core/ui/MoreSideBar/plugins/Plugins.tid b/core/ui/MoreSideBar/plugins/Plugins.tid index 96933542a..3f36dda0c 100644 --- a/core/ui/MoreSideBar/plugins/Plugins.tid +++ b/core/ui/MoreSideBar/plugins/Plugins.tid @@ -2,4 +2,4 @@ title: $:/core/ui/MoreSideBar/Plugins/Plugins tags: $:/tags/MoreSideBar/Plugins caption: {{$:/language/ControlPanel/Plugins/Plugins/Caption}} -<$list filter="[!has[draft.of]plugin-type[plugin]sort[description]]" template="$:/core/ui/PluginListItemTemplate" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/> +<$list filter="[!has[draft.of]plugin-type[plugin]sort[name]]" template="$:/core/ui/PluginListItemTemplate" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/> diff --git a/core/ui/MoreSideBar/plugins/Theme.tid b/core/ui/MoreSideBar/plugins/Theme.tid index 48447cd6e..c1d7d7f44 100644 --- a/core/ui/MoreSideBar/plugins/Theme.tid +++ b/core/ui/MoreSideBar/plugins/Theme.tid @@ -2,4 +2,4 @@ title: $:/core/ui/MoreSideBar/Plugins/Theme tags: $:/tags/MoreSideBar/Plugins caption: {{$:/language/ControlPanel/Plugins/Themes/Caption}} -<$list filter="[!has[draft.of]plugin-type[theme]sort[description]]" template="$:/core/ui/PluginListItemTemplate" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/> +<$list filter="[!has[draft.of]plugin-type[theme]sort[name]]" template="$:/core/ui/PluginListItemTemplate" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/> From 8114d5475b22b216f51488daf0f29c434b3d62b3 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Tue, 1 Mar 2022 16:56:52 +0000 Subject: [PATCH 10/91] Update release note --- editions/prerelease/tiddlers/Release 5.2.2.tid | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/editions/prerelease/tiddlers/Release 5.2.2.tid b/editions/prerelease/tiddlers/Release 5.2.2.tid index e09fcf1fe..4764da5d8 100644 --- a/editions/prerelease/tiddlers/Release 5.2.2.tid +++ b/editions/prerelease/tiddlers/Release 5.2.2.tid @@ -60,19 +60,25 @@ This is a major upgrade to the latest version of highlight.js. The new version h * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/853a899c77766e47eade1dfa5822640ef9915637">> wrapping and wikification of field names in field viewer * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/0186c6490fbd1d8fd4de7c3fa99ccf4d129fbd80">> missing whitespace between description and MIME type in edit template dropdown for the ''type'' field * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/c7e8c87f85b54f60302ff8e396a7569d996e3f67">> incorrect usage of code view for certain system tiddlers +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6501">> sidebar plugin listing to be sorted by name rather than description ! Widget Improvements * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/commit/66ae1d6930796a9eb062fdb64a755adab8f39294">> classes to the ImageWidget to indicate whether it is loading, loaded or has encountered an error * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6389">> RadioWidget not using default value if the field or index is missing * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6426">> issue with ImportVariablesWidget when importing block mode widgets +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6480">> DraggableWidget to support an optional drag handle ! Filter improvements +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6468">> support for case insensitive matching for the [[prefix Operator]] and [[suffix Operator]] * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/commit/1a0c831216c397c6fef8e5685e47857193411a1b">> [[sha256 Operator]] * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6438">> crash when using deprecated regexp operands for filter operators * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/5742">> [[lookup Operator]] to support indexes as well as fields * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6293">> [[search Operator]] with new 'some' flag +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6478">> [[untagged Operator]] to consider non-existent tiddlers to be untagged +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6477">> [[insertbefore Operator]] to accept the position title as a parameter, instead of as a variable name in the suffix +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6483">> [[butlast Operator]] to be consistent with the [[rest Operator]] ! Hackability Improvements @@ -107,6 +113,7 @@ This is a major upgrade to the latest version of highlight.js. The new version h [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: +* <> * <> * <> * <> From aaf1aa3821e470735ac24b2f21af58835bc5d2ba Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Wed, 2 Mar 2022 18:34:02 +0100 Subject: [PATCH 11/91] Improve affordances for new browser windows (#6498) * feat: extend tm-open-window to allow opening the same tiddler in multiple templates, and introduce tm-close-window to close browser windows * fix: use a windowID parameter to uniquely identify a window and introduce tm-close-all-tiddlers * fix: whitespace * fix: update variable --- core/modules/startup/windows.js | 29 +++++++++----- .../WidgetMessage_ tm-close-all-windows.tid | 20 ++++++++++ .../WidgetMessage_ tm-close-window.tid | 39 +++++++++++++++++++ .../WidgetMessage_ tm-open-window.tid | 12 +++--- 4 files changed, 86 insertions(+), 14 deletions(-) create mode 100644 editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-all-windows.tid create mode 100644 editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid diff --git a/core/modules/startup/windows.js b/core/modules/startup/windows.js index 95207a9ec..384961b7b 100644 --- a/core/modules/startup/windows.js +++ b/core/modules/startup/windows.js @@ -20,6 +20,8 @@ exports.synchronous = true; // Global to keep track of open windows (hashmap by title) $tw.windows = {}; +// Default template to use for new windows +var DEFAULT_WINDOW_TEMPLATE = "$:/core/templates/single.tiddler.window"; exports.startup = function() { // Handle open window message @@ -29,24 +31,25 @@ exports.startup = function() { title = event.param || event.tiddlerTitle, paramObject = event.paramObject || {}, windowTitle = paramObject.windowTitle || title, - template = paramObject.template || "$:/core/templates/single.tiddler.window", + windowID = paramObject.windowID || title, + template = paramObject.template || DEFAULT_WINDOW_TEMPLATE, width = paramObject.width || "700", height = paramObject.height || "600", top = paramObject.top, left = paramObject.left, - variables = $tw.utils.extend({},paramObject,{currentTiddler: title}); + variables = $tw.utils.extend({},paramObject,{currentTiddler: title, "tv-window-id": windowID}); // Open the window var srcWindow, srcDocument; // In case that popup blockers deny opening a new window try { - srcWindow = window.open("","external-" + title,"scrollbars,width=" + width + ",height=" + height + (top ? ",top=" + top : "" ) + (left ? ",left=" + left : "" )), + srcWindow = window.open("","external-" + windowID,"scrollbars,width=" + width + ",height=" + height + (top ? ",top=" + top : "" ) + (left ? ",left=" + left : "" )), srcDocument = srcWindow.document; } catch(e) { return; } - $tw.windows[title] = srcWindow; + $tw.windows[windowID] = srcWindow; // Check for reopening the same window if(srcWindow.haveInitialisedWindow) { return; @@ -56,7 +59,7 @@ exports.startup = function() { srcDocument.close(); srcDocument.title = windowTitle; srcWindow.addEventListener("beforeunload",function(event) { - delete $tw.windows[title]; + delete $tw.windows[windowID]; $tw.wiki.removeEventListener("change",refreshHandler); },false); // Set up the styles @@ -90,13 +93,21 @@ exports.startup = function() { srcWindow.document.documentElement.addEventListener("click",$tw.popup,true); srcWindow.haveInitialisedWindow = true; }); - // Close open windows when unloading main window - $tw.addUnloadTask(function() { + $tw.rootWidget.addEventListener("tm-close-window",function(event) { + var windowID = event.param, + win = $tw.windows[windowID]; + if(win) { + win.close(); + } + }); + var closeAllWindows = function() { $tw.utils.each($tw.windows,function(win) { win.close(); }); - }); - + } + $tw.rootWidget.addEventListener("tm-close-all-windows",closeAllWindows); + // Close open windows when unloading main window + $tw.addUnloadTask(closeAllWindows); }; })(); diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-all-windows.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-all-windows.tid new file mode 100644 index 000000000..d916460e9 --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-all-windows.tid @@ -0,0 +1,20 @@ +created: 20220301162305764 +modified: 20220301180818011 +tags: Messages +title: WidgetMessage: tm-close-all-windows +type: text/vnd.tiddlywiki + +<<.from-version 5.2.2>> +The `tm-close-all-windows` [[message|Messages]] closes all additional //browser// window that were opened with [[tm-open-window|WidgetMessage: tm-open-window]]. + +The `tm-close-window` message is best generated with the ActionSendMessageWidget, which in turn is triggered by a widget such as the ButtonWidget. It is handled by the core itself. + +<$macrocall $name='wikitext-example-without-html' +src=""" +<$button>Close All Windows +<$action-sendmessage + $message="tm-close-all-windows" +/> + +""" /> + diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid new file mode 100644 index 000000000..d955988ba --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid @@ -0,0 +1,39 @@ +caption: tm-open-window +created: 20220228140417116 +modified: 20220301180905777 +tags: Messages +title: WidgetMessage: tm-close-window +type: text/vnd.tiddlywiki + +<<.from-version 5.2.2>> +The `tm-close-window` [[message|Messages]] closes an additional //browser// window that was opened with [[tm-open-window|WidgetMessage: tm-open-window]]. Specify which window to close by setting the value of <<.param param>> to the string used as <<.param windowID>> when opening the window. + +|!Name |!Description | +|param //{default param}// |String used as <<.param windowID>> when opening the window | + +The `tm-close-window` message is best generated with the ActionSendMessageWidget, which in turn is triggered by a widget such as the ButtonWidget. It is handled by the core itself. + +<<.tip """When used with the ActionSendMessageWidget, <<.param 'param'>> becomes <<.param '$param'>> """>> +<<.tip """To close all additional browser windows that were opened with [[tm-open-window|WidgetMessage: tm-open-window]] use [[WidgetMessage: tm-close-all-windows]]""">> + +<$macrocall $name='wikitext-example-without-html' +src=""" +<$button>Open Window +<$action-sendmessage + $message="tm-open-window" + $param="$:/temp/openme" + template="SampleWindowTemplate" + windowTitle="My Window Title" + width="400" + height="500" + windowID="window1" + something="I just in over in a variable, and boy is my Hashmap tired." /> + +<$button>Close Window +<$action-sendmessage + $message="tm-close-window" + $param="window1" +/> + +""" /> + diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid index a8f7c35f1..332acdceb 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid @@ -1,6 +1,6 @@ caption: tm-open-window created: 20160424181447704 -modified: 20220219125413255 +modified: 20220301162140993 tags: Messages title: WidgetMessage: tm-open-window type: text/vnd.tiddlywiki @@ -8,20 +8,22 @@ type: text/vnd.tiddlywiki The `tm-open-window` [[message|Messages]] opens a tiddler in a new //browser// window. If no parameters are specified, the current tiddler is opened in a new window. Similiar to `tm-modal` any additional parameters passed via the <<.param "paramObject">> are provided as variables to the new window. |!Name |!Description | -|param |Title of the tiddler to be opened in a new browser window, defaults to <<.var "currentTiddler">> if empty | -|template |Template in which the tiddler will be rendered in | +|param //{default param}// |Title of the tiddler to be opened in a new browser window, defaults to <<.var "currentTiddler">> if empty | +|template |Template in which the tiddler will be rendered | |windowTitle |Title string for the opened window | |width |Width of the new browser window | |height |Height of the new browser window | |left|<<.from-version "5.2.2">> Optional, left position of new browser window| |top|<<.from-version "5.2.2">> Optional, top position of new browser window| -|paramObject |Hashmap of variables to be provided to the modal, contains all extra parameters passed to the widget sending the message. | +|windowID|<<.from-version "5.2.2">> Optional, unique string used to identify the widow. Can be used with [[WidgetMessage: tm-close-window]] to close the window. Defaults to the value of <<.param param>> | +|//{any other params}// |Any other parameters are made available as variables within the new window | The `tm-open-window` message is best generated with the ActionSendMessageWidget, which in turn is triggered by a widget such as the ButtonWidget. It is handled by the core itself. <<.tip """When used with the ActionSendMessageWidget, <<.param 'param'>> becomes <<.param '$param'>> """>> <<.tip """Parameters <<.param template>>, <<.param windowTitle>>, <<.param width>>, <<.param height>>, <<.param left>> and <<.param top>> require the ActionSendMessageWidget.""">> - +<<.tip """<<.from-version 5.2.2>> To close a window opened with tm-open-window use [[WidgetMessage: tm-close-window]]""">> +<<.tip """<<.from-version 5.2.2>> To open a tiddler in more than one new window, use a unique value for <<.param windowID>>""">> <$macrocall $name='wikitext-example-without-html' src=""" From 864b5ec05dbc0eb2c0eadce040ebe7c6876dff76 Mon Sep 17 00:00:00 2001 From: TW Videos <11172651+TiddlyVee@users.noreply.github.com> Date: Wed, 2 Mar 2022 18:36:53 +0100 Subject: [PATCH 12/91] Improve readability for documentation macros (#6494) --- editions/tw5.com/tiddlers/system/operator-macros.tid | 6 ++++-- editions/tw5.com/tiddlers/system/style-guide-macros.tid | 6 +++++- editions/tw5.com/tiddlers/system/variable-macros.tid | 6 ++++-- editions/tw5.com/tiddlers/system/wikitext-macros.tid | 6 ++++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/editions/tw5.com/tiddlers/system/operator-macros.tid b/editions/tw5.com/tiddlers/system/operator-macros.tid index 477968945..d24cac016 100644 --- a/editions/tw5.com/tiddlers/system/operator-macros.tid +++ b/editions/tw5.com/tiddlers/system/operator-macros.tid @@ -1,7 +1,7 @@ created: 20150117152607000 -modified: 20150228114306000 -title: $:/editions/tw5.com/operator-macros +modified: 20220227210111054 tags: $:/tags/Macro +title: $:/editions/tw5.com/operator-macros \define .operator-examples(op,text:"Examples") <$link to="$op$ Operator (Examples)">$text$ @@ -48,3 +48,5 @@ tags: $:/tags/Macro <$macrocall $name=".note" _="This operator is <<.em not>> available when ~TiddlyWiki is running in a web browser."/> \end + +
<$view field="text"/>
\ No newline at end of file diff --git a/editions/tw5.com/tiddlers/system/style-guide-macros.tid b/editions/tw5.com/tiddlers/system/style-guide-macros.tid index 3b505f2ab..abe0750e0 100644 --- a/editions/tw5.com/tiddlers/system/style-guide-macros.tid +++ b/editions/tw5.com/tiddlers/system/style-guide-macros.tid @@ -1,5 +1,7 @@ -title: $:/editions/tw5.com/style-guide-macros +created: 20220227210120989 +modified: 20220227210123695 tags: $:/tags/Macro +title: $:/editions/tw5.com/style-guide-macros \define style-guide(good,bad) @@ -15,3 +17,5 @@ tags: $:/tags/Macro
\end + +
<$view field="text"/>
\ No newline at end of file diff --git a/editions/tw5.com/tiddlers/system/variable-macros.tid b/editions/tw5.com/tiddlers/system/variable-macros.tid index aac443017..313f065af 100644 --- a/editions/tw5.com/tiddlers/system/variable-macros.tid +++ b/editions/tw5.com/tiddlers/system/variable-macros.tid @@ -1,7 +1,7 @@ created: 20150228114241000 -modified: 20150228141312000 -title: $:/editions/tw5.com/variable-macros +modified: 20220227210136243 tags: $:/tags/Macro +title: $:/editions/tw5.com/variable-macros \define .variable-examples(v,text:"Examples") <$link to="$v$ Variable (Examples)">$text$ \define .macro-examples(m,text:"Examples") <$link to="$m$ Macro (Examples)">$text$ @@ -17,3 +17,5 @@ It can be set to <<.value yes>> or <<.value no>> prior to transcluding such a bu The standard page template sets it to the value found in [[$configTiddler$]], with the result that this becomes the default for the whole page. The user can adjust this default by using a tickbox on the <<.controlpanel-tab Settings>> tab of the [[Control Panel|$:/ControlPanel]]. \end + +
<$view field="text"/>
\ No newline at end of file diff --git a/editions/tw5.com/tiddlers/system/wikitext-macros.tid b/editions/tw5.com/tiddlers/system/wikitext-macros.tid index 908b8f473..cb5f81bf1 100644 --- a/editions/tw5.com/tiddlers/system/wikitext-macros.tid +++ b/editions/tw5.com/tiddlers/system/wikitext-macros.tid @@ -1,5 +1,5 @@ created: 20150117184156000 -modified: 20220122143551571 +modified: 20220227210152153 tags: $:/tags/Macro title: $:/editions/tw5.com/wikitext-macros type: text/vnd.tiddlywiki @@ -63,4 +63,6 @@ $$$ [[$tiddler$]]: <> -\end \ No newline at end of file +\end + +
<$view field="text"/>
\ No newline at end of file From 71df5162ba87163dd8d7b46e7dfd5b973775ff85 Mon Sep 17 00:00:00 2001 From: TW Videos <11172651+TiddlyVee@users.noreply.github.com> Date: Wed, 2 Mar 2022 18:40:23 +0100 Subject: [PATCH 13/91] Improve the docs for the sortan operator (#6495) --- editions/tw5.com/tiddlers/demonstrations/Apple.tid | 7 ++++++- editions/tw5.com/tiddlers/filters/examples/sortan.tid | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/demonstrations/Apple.tid b/editions/tw5.com/tiddlers/demonstrations/Apple.tid index b5f86997d..0fb74a853 100644 --- a/editions/tw5.com/tiddlers/demonstrations/Apple.tid +++ b/editions/tw5.com/tiddlers/demonstrations/Apple.tid @@ -1,6 +1,11 @@ created: 20180222072026299 list: [[Apple 6]] [[Apple 7]] [[Apple 8]] [[Apple 9]] [[Apple 10]] [[Apple 20]] [[Apple 30]] [[Apple 100]] -modified: 20211115005421558 +modified: 20220227210835979 tags: Demonstrations title: Apple +<<.this-is-operator-example>> + +It has a <<.field list>> field containing the following items: + +<> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/filters/examples/sortan.tid b/editions/tw5.com/tiddlers/filters/examples/sortan.tid index d50c526f1..c5df1cf3d 100644 --- a/editions/tw5.com/tiddlers/filters/examples/sortan.tid +++ b/editions/tw5.com/tiddlers/filters/examples/sortan.tid @@ -1,11 +1,15 @@ created: 20180222071947788 -modified: 20180222072601161 +modified: 20220227210921516 tags: [[sortan Operator]] [[Operator Examples]] title: sortan Operator (Examples) type: text/vnd.tiddlywiki These examples make use of the [[Apple]] tiddler. +---- + +Try the following example with `sort` instead of `sortan` + <<.operator-example 1 "[list[Apple]sortan[]]">> <<.operator-example 2 "[list[Apple]!sortan[]]">> <<.operator-example 3 "App-10-A App-9-B App-10-B App-9-A +[sortan[]]">> From a38b25eff523eedb523d1bbb672a01aef3da22ac Mon Sep 17 00:00:00 2001 From: CodaCoder Date: Wed, 2 Mar 2022 11:59:36 -0600 Subject: [PATCH 14/91] Fix issues in WidgetMessage: tm-open-window (#6497) --- .../messages/SampleWindowTemplate.tid | 4 ++-- .../WidgetMessage_ tm-open-window.tid | 24 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/editions/tw5.com/tiddlers/messages/SampleWindowTemplate.tid b/editions/tw5.com/tiddlers/messages/SampleWindowTemplate.tid index 51bd17783..7ef3e0d98 100644 --- a/editions/tw5.com/tiddlers/messages/SampleWindowTemplate.tid +++ b/editions/tw5.com/tiddlers/messages/SampleWindowTemplate.tid @@ -1,5 +1,5 @@ created: 20211109165213041 -modified: 20211117224321325 +modified: 20220227211343988 tags: [[Message Examples]] title: SampleWindowTemplate @@ -7,4 +7,4 @@ title: SampleWindowTemplate | ''Name:'' |<$edit field=name tag="input" />| |''Rank:'' |<$edit field=rank tag="input" />| -''Variable 'something' contains:''<> \ No newline at end of file +''Variable 'something' contains:'' <> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid index 9e452fd7d..f62bce027 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid @@ -1,6 +1,6 @@ caption: tm-open-window created: 20160424181447704 -modified: 20211117042202771 +modified: 20220227212704337 tags: Messages title: WidgetMessage: tm-open-window type: text/vnd.tiddlywiki @@ -9,16 +9,16 @@ The `tm-open-window` [[message|Message]] opens a tiddler in a new //browser// wi |!Name |!Description | |param |Title of the tiddler to be opened in a new browser window, defaults to <<.var "currentTiddler">> if empty | -|template |Template in which the tiddler will be rendered in | -|windowTitle |Title string for the opened window | -|width |Width of the new browser window | -|height |Height of the new browser window | -|paramObject |Hashmap of variables to be provided to the modal, contains all extra parameters passed to the widget sending the message. | +|template |Template tiddler used to render the tiddler in the new browser window | +|windowTitle |Title for the new browser window | +|width |Width of the new browser window (in pixels without units) | +|height |Height of the new browser window (in pixels without units) | +|paramObject |Hashmap of variables to be provided to the template, contains all extra parameters passed to the widget sending the message | -The `tm-open-window` message is best generated with the ActionSendMessageWidget, which in turn is triggered by a widget such as the ButtonWidget. It is handled by the core itself. +The `tm-open-window` message is best generated with the ActionSendMessageWidget, which in turn is triggered by a widget such as the ButtonWidget. The message is handled by the core itself. -<<.tip """When used with the ActionSendMessage Widget, <<.param 'param'>> becomes <<.param '$param'>> """>> -<<.tip """Parameters <<.param template>>, <<.param windowTitle>>, <<.param width>>, and <<.param height>> require the ActionSendMessageWidget.""">> +<<.tip """When used with the ActionSendMessageWidget, <<.param 'param'>> becomes <<.param '$param'>> """>> +<<.tip """The parameters <<.param template>>, <<.param windowTitle>>, <<.param width>>, and <<.param height>> ''require'' the ActionSendMessageWidget.""">> <$macrocall $name='wikitext-example-without-html' @@ -29,9 +29,9 @@ src=""" $param="$:/temp/openme" template="SampleWindowTemplate" windowTitle="My Window Title" - width="100em" - height="50em" - something="I just in over in a variable, and boy is my Hashmap tired." /> + width="640" + height="480" + something="This is my new window. There are many like it, but this one is mine." /> """ /> From 115b20ff7b079e6e5f1e5f9a57c70ab3b00a17fe Mon Sep 17 00:00:00 2001 From: tw-FRed <95534072+tw-FRed@users.noreply.github.com> Date: Wed, 2 Mar 2022 19:50:29 +0100 Subject: [PATCH 15/91] FR documentation translations update (#6489 redone) (#6502) * Translation updates, new translations, tiddlers renaming * Wrong target tiddler name for tw5.com's doc-macros.tid * Update GettingStarted --- .../$ _editions_tw5.com_doc-macros.tid | 174 ------------------ .../$__editions_tw5.com_doc-macros.tid | 68 ++++++- .../tiddlers/Block_Quotes_in_WikiText.tid | 23 ++- .../tiddlers/Code Blocks in WikiText.tid | 47 +++-- .../Creating and editing tiddlers.tid | 22 +-- .../fr-FR/tiddlers/Formatting in WikiText.tid | 24 +-- editions/fr-FR/tiddlers/GettingStarted.tid | 30 +-- editions/fr-FR/tiddlers/HTML in WikiText.tid | 105 ++++++++--- .../fr-FR/tiddlers/Headings in WikiText.tid | 4 +- .../fr-FR/tiddlers/How to export tiddlers.tid | 31 ++++ editions/fr-FR/tiddlers/ImportTiddlers.tid | 14 -- .../fr-FR/tiddlers/Importing Tiddlers.tid | 26 +++ editions/fr-FR/tiddlers/PermaLinks.tid | 38 ++-- editions/fr-FR/tiddlers/Share Plugin.tid | 15 ++ ...id => Sharing a TiddlyWiki on Dropbox.tid} | 16 +- .../Sharing your tiddlers with others.tid | 18 ++ .../Sharing_your_tiddlers_with_others.tid | 16 -- .../fr-FR/tiddlers/TaskManagementExample.tid | 4 +- ...lyWiki for Scholars_ by Alberto Molina.tid | 4 +- languages/fr-FR/GettingStarted.tid | 39 ++-- 20 files changed, 365 insertions(+), 353 deletions(-) delete mode 100644 editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid create mode 100644 editions/fr-FR/tiddlers/How to export tiddlers.tid delete mode 100644 editions/fr-FR/tiddlers/ImportTiddlers.tid create mode 100644 editions/fr-FR/tiddlers/Importing Tiddlers.tid create mode 100644 editions/fr-FR/tiddlers/Share Plugin.tid rename editions/fr-FR/tiddlers/{Sharing_a_TiddlyWiki_on_Dropbox.tid => Sharing a TiddlyWiki on Dropbox.tid} (51%) create mode 100644 editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid delete mode 100644 editions/fr-FR/tiddlers/Sharing_your_tiddlers_with_others.tid diff --git a/editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid b/editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid deleted file mode 100644 index 226d0e4d7..000000000 --- a/editions/fr-FR/tiddlers/$ _editions_tw5.com_doc-macros.tid +++ /dev/null @@ -1,174 +0,0 @@ -created: 20150117152607000 -modified: 20220220000852855 -tags: $:/tags/Macro -title: $:/editions/tw5.com/doc-macros -type: text/vnd.tiddlywiki - -\define .concat(1,2,3,4,5) $1$$2$$3$$4$$5$ - -\define .def(_) $_$ -\define .em(_) $_$ -\define .strong(_) $_$ -\define .place(_) $_$ -\define .word(_) "$_$" - -\define .preamble(_) :.doc-preamble $_$ -\define .note(_) -@@.doc-note -;Note -: $_$ -@@ -\end - -\define .tid(_) $_$ -\define .tag(_) $_$ -\define .field(_) $_$ -\define .value(_) $_$ -\define .op(_) $_$ -\define .var(_) $_$ -\define .wid(_) $$_$ -\define .attr(_) $_$ -\define .param(_) $_$ - -\define .mtitle(_) $_$ Macro -\define .otitle(_) $_$ Operator -\define .vtitle(_) $_$ Variable - -\define .link(_,to) <$link to="$to$">$_$ -\define .clink(_,to) <<.link """$_$""" "$to$">> -\define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/> -\define .dlink-ex(_,to) <<.def "$_$">> -\define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/> -\define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/> -\define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> -\define .olink(_) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$_$">>/> -\define .olink2(_,to) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$to$">>/> -\define .vlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.vtitle "$_$">>/> -\define .vlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> -\define .wlink(to) <$macrocall $name=".link" _=<<.wid {{$to$!!caption}}>> to="$to$"/> -\define .wlink2(_,to) <$macrocall $name=".link" _="$_$" to="$to$"/> - -\define .key(_) $_$ -\define .combokey(_) <$macrocall $name=".if" cond="$_$" then=<<.key '$_$'>>/> -\define .keycombo(1,2,3,4) <<.combokey "$1$">><<.if "$2$" +>><<.combokey "$2$">><<.if "$3$" +>><<.combokey "$3$">><<.if "$4$" +>><<.combokey "$4$">> - -\define .tab(_) {{$_$!!caption}} -\define .sidebar-tab(_) <<.tab "$:/core/ui/SideBar/$_$">> -\define .more-tab(_) <<.tab "$:/core/ui/MoreSideBar/$_$">> -\define .info-tab(_) <<.tab "$:/core/ui/TiddlerInfo/$_$">> -\define .controlpanel-tab(_) <<.tab "$:/core/ui/ControlPanel/$_$">> -\define .advancedsearch-tab(_) <<.tab "$:/core/ui/AdvancedSearch/$_$">> -\define .toc-tab() <<.tab "TableOfContents">> -\define .example-tab(_) $_$ - -\define .button(_) {{$:/core/ui/Buttons/$_$!!caption}} - -\define .icon(_) {{$_$}} - -\define .tip(_)
{{$:/core/images/tip}}
$_$
-\define .warning(_)
{{$:/core/images/warning}}
$_$
- -\define .state-prefix() $:/state/editions/tw5.com/ - -\define .lorem() -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -\end - -\define .toc-lorem() -C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table-of-Contents Macros (Examples)]]. - -<<.lorem>> -\end - -\define .example(n,eg,egvar:NO-SUCH-VAR) -
-<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> - <$macrocall $name="copy-to-clipboard-above-right" src="""$eg$"""/> - <$codeblock code="""$eg$"""/> - -<$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> - - <$macrocall $name="copy-to-clipboard-above-right" src=<<$egvar$>>/> - <$codeblock code=<<$egvar$>>/> - -<$list filter="[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]" variable=".state"> -<$reveal state=<<.state>> type="nomatch" text="show"> -
-
<$button set=<<.state>> setTo="show">Essayez
-
- -<$reveal state=<<.state>> type="match" text="show"> -
-
<$button set=<<.state>> setTo="">Cachez
-
-
- <$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> - $eg$ - - <$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> - <<$egvar$>> - -
- - -\end - -\define .bad-example(eg) - - - - - - - -
Warning:
Don't do it this way!
- -$eg$ -
-\end - -\define .link-badge(text,link,colour) -> class="doc-link-badge" style="background-color:$colour$;" target="_blank" rel="noopener noreferrer"><$text text=<<__text__>>/> -\end - - -\define .link-badge-added(link,colour:#ffe246) <<.link-badge "added" """$link$""" """$colour$""">> -\define .link-badge-addendum(link,colour:#fcc84a) <<.link-badge "addendum" """$link$""" """$colour$""">> -\define .link-badge-extended(link,colour:#f9a344) <<.link-badge "extended" """$link$""" """$colour$""">> -\define .link-badge-fixed(link,colour:#ffa86d) <<.link-badge "fixed" """$link$""" """$colour$""">> -\define .link-badge-here(link,colour:#d88e63) <<.link-badge "here" """$link$""" """$colour$""">> -\define .link-badge-hide(link,colour:#9d959f) <<.link-badge "hide" """$link$""" """$colour$""">> -\define .link-badge-improved(link,colour:#7593c7) <<.link-badge "improved" """$link$""" """$colour$""">> -\define .link-badge-modified(link,colour:#7f99c9) <<.link-badge "modified" """$link$""" """$colour$""">> -\define .link-badge-removed(link,colour:#a9aabc) <<.link-badge "removed" """$link$""" """$colour$""">> -\define .link-badge-renamed(link,colour:#b4b995) <<.link-badge "renamed" """$link$""" """$colour$""">> -\define .link-badge-updated(link,colour:#91ba66) <<.link-badge "updated" """$link$""" """$colour$""">> - -\define .tiddler-fields(tiddler) -<$tiddler tiddler=<<__tiddler__>>> -
-

-<$link> -{{||$:/core/ui/TiddlerIcon}}<$text text=<>/> - -

- - -<$list filter="[all[current]fields[]sort[title]] -title" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/> - -
-
- -\end - -\define .banner-credits(credit,url) -> width="140" style="float:left;margin-right:0.5em;"/> - -$credit$ - -
- -
-\end - -
<$view field="text"/>
\ No newline at end of file diff --git a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid index b613f2eb4..226d0e4d7 100644 --- a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid +++ b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid @@ -1,5 +1,5 @@ created: 20150117152607000 -modified: 20150620212025034 +modified: 20220220000852855 tags: $:/tags/Macro title: $:/editions/tw5.com/doc-macros type: text/vnd.tiddlywiki @@ -37,7 +37,7 @@ type: text/vnd.tiddlywiki \define .link(_,to) <$link to="$to$">$_$ \define .clink(_,to) <<.link """$_$""" "$to$">> \define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/> -\define .dlink-ex(_,to) <<.def "$_$">> +\define .dlink-ex(_,to) <<.def "$_$">> \define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/> \define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/> \define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> @@ -63,6 +63,8 @@ type: text/vnd.tiddlywiki \define .button(_) {{$:/core/ui/Buttons/$_$!!caption}} +\define .icon(_) {{$_$}} + \define .tip(_)
{{$:/core/images/tip}}
$_$
\define .warning(_)
{{$:/core/images/warning}}
$_$
@@ -81,10 +83,12 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- \define .example(n,eg,egvar:NO-SUCH-VAR)
<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> + <$macrocall $name="copy-to-clipboard-above-right" src="""$eg$"""/> <$codeblock code="""$eg$"""/> <$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> + <$macrocall $name="copy-to-clipboard-above-right" src=<<$egvar$>>/> <$codeblock code=<<$egvar$>>/> <$list filter="[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]" variable=".state"> @@ -108,3 +112,63 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- \end + +\define .bad-example(eg) + + + + + + + +
Warning:
Don't do it this way!
+ +$eg$ +
+\end + +\define .link-badge(text,link,colour) +> class="doc-link-badge" style="background-color:$colour$;" target="_blank" rel="noopener noreferrer"><$text text=<<__text__>>/> +\end + + +\define .link-badge-added(link,colour:#ffe246) <<.link-badge "added" """$link$""" """$colour$""">> +\define .link-badge-addendum(link,colour:#fcc84a) <<.link-badge "addendum" """$link$""" """$colour$""">> +\define .link-badge-extended(link,colour:#f9a344) <<.link-badge "extended" """$link$""" """$colour$""">> +\define .link-badge-fixed(link,colour:#ffa86d) <<.link-badge "fixed" """$link$""" """$colour$""">> +\define .link-badge-here(link,colour:#d88e63) <<.link-badge "here" """$link$""" """$colour$""">> +\define .link-badge-hide(link,colour:#9d959f) <<.link-badge "hide" """$link$""" """$colour$""">> +\define .link-badge-improved(link,colour:#7593c7) <<.link-badge "improved" """$link$""" """$colour$""">> +\define .link-badge-modified(link,colour:#7f99c9) <<.link-badge "modified" """$link$""" """$colour$""">> +\define .link-badge-removed(link,colour:#a9aabc) <<.link-badge "removed" """$link$""" """$colour$""">> +\define .link-badge-renamed(link,colour:#b4b995) <<.link-badge "renamed" """$link$""" """$colour$""">> +\define .link-badge-updated(link,colour:#91ba66) <<.link-badge "updated" """$link$""" """$colour$""">> + +\define .tiddler-fields(tiddler) +<$tiddler tiddler=<<__tiddler__>>> +
+

+<$link> +{{||$:/core/ui/TiddlerIcon}}<$text text=<>/> + +

+ + +<$list filter="[all[current]fields[]sort[title]] -title" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/> + +
+
+ +\end + +\define .banner-credits(credit,url) +> width="140" style="float:left;margin-right:0.5em;"/> + +$credit$ + +
+ +
+\end + +
<$view field="text"/>
\ No newline at end of file diff --git a/editions/fr-FR/tiddlers/Block_Quotes_in_WikiText.tid b/editions/fr-FR/tiddlers/Block_Quotes_in_WikiText.tid index 14b8351f8..5727fb51a 100644 --- a/editions/fr-FR/tiddlers/Block_Quotes_in_WikiText.tid +++ b/editions/fr-FR/tiddlers/Block_Quotes_in_WikiText.tid @@ -1,11 +1,11 @@ created: 20131206154636572 fr-title: Citations en bloc dans WikiText -modified: 20150624090734021 +modified: 20220226225218713 tags: WikiText title: Block Quotes in WikiText type: text/vnd.tiddlywiki -Il existe deux manières de produire des éléments HTML de type citation en bloc avec <>, l'un pour du contenu qui pourra s'afficher sur plusieurs lignes, et l'autre pour du contenu qui ne devra s'afficher que sur une seule ligne. +Il existe deux manières de produire des éléments HTML de type citation en bloc avec <>, l'une pour du contenu qui pourra s'afficher sur plusieurs lignes, et l'autre pour du contenu qui ne devra s'afficher que sur une seule ligne. ! Citation en bloc multi-lignes @@ -19,7 +19,7 @@ Ceci est un paragraphe de type citation en bloc !! Attribution -Une attribution peut-être ajoutée au bloc comme ceci, comme ceci : +Une attribution peut-être ajoutée au bloc comme ceci<<:>> <> <> +Le cœur de <> inclut la classe `tc-big-quote` qui représente les citations avec des guillemets géants<<:>> + +<> + ! Bloc uniligne -La syntaxe des citations uniligne est une extension de la syntaxe des [[Listes avec WikiText]]. Par exemple : +La syntaxe des citations uniligne est une extension de la syntaxe des [[listes avec WikiText|Lists in WikiText]]. Par exemple<<:>> < Bloc de citation uniligne > Un autre bloc uniligne ">> -Vous pouvez agréger des blocs unilignes comme ceci : +Vous pouvez imbriquer des blocs unilignes comme ceci<<:>> ``` > Un bloc de niveau 1 @@ -52,13 +59,13 @@ Vous pouvez agréger des blocs unilignes comme ceci : ">> ``` -Affichera : +Ce qui affichera<<:>> > Un bloc de niveau 1 >> Un bloc de niveau 2 > Un autre bloc de niveau 1 -Vous pouvez mixer les citations en bloc avec d'autres types de listes. Par exemple : +Vous pouvez aussi mixer les citations en bloc avec d'autres types de listes. Par exemple<<:>> <``` (connus en anglais sous le nom de "backticks") : +Un bloc de code (<<.icon $:/core/images/mono-block>>) est délimité par trois caractères <> ``` (connus en anglais sous le nom de <>)<<:>> + +
+```
+Ce texte aura une chasse fixe et ne sera pas `formaté`.
+```
+
+ +Donnera le résultat suivant<<:>> + +``` +Ce texte aura une chasse fixe et ne sera pas `formaté`. +``` + +Pour être interprétés correctement, les trois accents graves doivent être placés au début d'une ligne et immédiatement suivis d'un retour à la ligne. + +Souvenez-vous que le paragraphe précédent doit s'être terminé correctement, à l'aide de deux retours à la ligne. L'exemple suivant est donc ''faux''<<:>> + +
+Ceci est un paragraphe ordinaire.
+```
+Ce texte aura une chasse fixe et ne sera pas `formaté`.
+```
+
+ +La version correcte est<<:>>
 Ceci est un paragraphe ordinaire.
@@ -16,18 +41,4 @@ Ce texte aura une chasse fixe et ne sera pas `formaté`.
 ```
 
-
- -Ceci est un paragraphe ordinaire. - -``` -Ce texte aura une chasse fixe et ne sera pas `formaté`. -``` -
- -; Remarques -* Pour être interprétés correctements, les trois backticks doivent être : -** précédés de deux retours à la ligne (pour terminer correctement le paragraphe précédent) ; -** au début de la ligne ; -** immédiatement suivis d'un retour à la ligne. -* Certains claviers traitent le backtick comme une [[touche morte|http://fr.wikipedia.org/wiki/Touche_morte]], le rendant difficile à taper. L'astuce est de taper 3 ` suivis d'un espace. Une autre méthode consiste à taper 6 ` d'affilée, puis de bouger le curseur en arrière trois fois pour taper ou coller le contenu du bloc. +Certains claviers traitent le backtick comme une [[touche morte|http://fr.wikipedia.org/wiki/Touche_morte]], le rendant difficile à taper. L'astuce est de taper 3 ` suivis d'un espace. Une autre méthode consiste à taper 6 ` d'affilée, puis de bouger le curseur en arrière trois fois pour taper ou coller le contenu du bloc. diff --git a/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid b/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid index 243fceb77..62d894ec3 100644 --- a/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid +++ b/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid @@ -1,13 +1,13 @@ created: 20140904140300000 fr-title: Créer et modifier des tiddlers -modified: 20150620081426868 +modified: 20220221002250215 tags: [[Working with TiddlyWiki]] title: Creating and editing tiddlers type: text/vnd.tiddlywiki ! Créer des tiddlers -Vous créez un tiddler soit en cliquant sur le bouton {{$:/core/images/new-button}} du menu latéral, soit en cliquant sur un lien vers un tiddler absent. Les liens vers les tiddlers absents sont affichés en [[italique bleu]]. +Vous créez un tiddler soit en cliquant sur le bouton <<.icon $:/core/images/new-button>> du menu latéral, soit en cliquant sur un lien vers un tiddler absent. Les liens vers les tiddlers absents sont affichés en [[italique bleu]]. Voir aussi<<:>> @@ -15,23 +15,23 @@ Voir aussi<<:>> ! Modifier des tiddlers -Pour modifier un tiddler existant, cliquez sur le bouton {{$:/core/images/edit-button}} en haut et à droit du tiddler. +Pour modifier un tiddler existant, cliquez sur le bouton <<.icon $:/core/images/edit-button>> en haut et à droite du tiddler. !! Mode ébauche -Quand vous créez un nouveau tiddler ou modifiez un existant, le tiddler passe en mode ébauche. Ce qui propose un panneau de contrôle pour apporter différents types de modifications. Il a plusieurs parties, de bas en haut<<:>> +Quand vous créez un nouveau tiddler ou modifiez un existant, le tiddler passe en mode ébauche. Ce mode propose un panneau de contrôle pour apporter différents types de modifications. Il a plusieurs parties, de bas en haut<<:>> *''Le champ titre'' - pour modifier le titre du tiddler -*''Le sélecteur de tags'' - pour ajouter ou supprimer des tags. Lors de la saisie d'un tag, une liste déroulante affiche les tags correspondant sous forme de complétions. Vous pouvez choisir dans cette liste ou créer un tag entièrement nouveau. Puis cliquez sur le bouton ''ajouter'' pour ajouter le tag au tiddler. Chaque tag est affiché sous forme d'une pilule colorée. Cliquez le "×" d'un pilule pour supprimer le tag -*''La zone de texte'' - pour modifier le contenu principal du tiddler. Cliquez sur le bouton ''afficher la prévisualiation'' pour visualiser l'apparence des modifications -*''Le sélecteur de type'' - pour afficher vos tiddlers dans un format spécial, comme une image. Voir ContentType pour la liste des options. Le choix par défaut est `text/vnd.tiddlywiki`, qui indique que le tiddler contient du [[WikiTexte|WikiText]] -*''Le sélecteur de champ'' - pour ajouter ou supprimer des champs du tiddler. Par exemple, si vous modifiez un tiddler utilisé comme tag par d'autres tiddlers, vous pouvez ajouter un [[champ ''list''|ListField]] pour modifier l'ordre dans lequel ces tiddlers seront listé +*''Le sélecteur de tags'' - pour ajouter ou supprimer des tags. Lors de la saisie d'un tag, une liste déroulante affiche les tags correspondant sous forme de complétions. Vous pouvez choisir dans cette liste ou créer un tag entièrement nouveau. Puis cliquez sur le bouton ''ajouter'' ou utilisez la touche Entrée pour ajouter le tag au tiddler. Chaque tag est affiché sous forme d'une pilule colorée. Cliquez le "×" d'une pilule pour supprimer le tag +*''La zone de texte'' - pour modifier le contenu principal du tiddler. Cliquez sur le bouton ''afficher la prévisualiation'' (<<.icon $:/core/images/preview-closed>> / <<.icon $:/core/images/preview-open>>) pour visualiser l'apparence des modifications +*''Le sélecteur de type'' - pour afficher vos tiddlers dans un format spécial, comme une image. Voir ContentType pour la liste des options. Le choix par défaut est `text/vnd.tiddlywiki`, qui indique que le tiddler contient du <> +*''Le sélecteur de champ'' - pour ajouter ou supprimer des champs du tiddler. Par exemple, si vous modifiez un tiddler utilisé comme tag par d'autres tiddlers, vous pouvez ajouter un [[champ ''list''|ListField]] pour modifier l'ordre dans lequel ces tiddlers seront listés ! Confirmer, annuler ou supprimer Quand vous avez terminé les modifications, cliquez sur le bouton en haut et à droite du tiddler<<:>> -*Le bouton ''confirmer'' ({{$:/core/images/done-button}}) mémorise vos modifications dans le tiddler et quitte le mode ébauche. Si votre wiki est configuré en [[AutoSave]], vos modifications seront enregistrées de façon permanente. Autrement elles sont mémorisées temporairement dans votre navigateur web, et vous les perdrez si vous fermez votre page ~TiddlyWiki sans avoir cliqué sur le bouton principal pour ''Enregistrer'' {{$:/core/images/save-button}} dans le menu latéral. -*Le bouton ''annuler'' ({{$:/core/images/cancel-button}}) ignore vos modifications (après demande de confirmation) et quitte le mode ébauche. -*Le bouton ''supprimer'' ({{$:/core/images/delete-button}}) supprime tout le tiddler (après demande de confirmation). \ No newline at end of file +*Le bouton ''confirmer'' (<<.icon $:/core/images/done-button>>) mémorise vos modifications dans le tiddler et quitte le mode ébauche. Si votre wiki est configuré en <>, vos modifications seront enregistrées de façon permanente. Autrement elles sont mémorisées temporairement dans votre navigateur web, et vous les perdrez si vous fermez votre page ~TiddlyWiki sans avoir cliqué sur le bouton principal pour ''Enregistrer'' (<<.icon $:/core/images/save-button>>) dans le menu latéral. +*Le bouton ''annuler'' (<<.icon $:/core/images/cancel-button>>) ignore vos modifications (après demande de confirmation) et quitte le mode ébauche. +*Le bouton ''supprimer'' (<<.icon $:/core/images/delete-button>>) supprime tout le tiddler (après demande de confirmation). diff --git a/editions/fr-FR/tiddlers/Formatting in WikiText.tid b/editions/fr-FR/tiddlers/Formatting in WikiText.tid index 0efb17022..8066ab8e8 100644 --- a/editions/fr-FR/tiddlers/Formatting in WikiText.tid +++ b/editions/fr-FR/tiddlers/Formatting in WikiText.tid @@ -1,23 +1,23 @@ caption: Formatage created: 20141016142259705 fr-title: Mise en forme avec WikiText -modified: 20150601093436425 +modified: 20220226233811803 tags: WikiText title: Formatting in WikiText type: text/vnd.tiddlywiki -Voici les formatages de texte disponibles en [[WikiTexte|WikiText]] : +Voici les formatages de caractères disponibles en [[WikiTexte|WikiText]]<<:>> -|Format |Résultat |h -|`''gras''` |texte en ''gras'' | -|`//italique//` |texte en //italique// | -|`__souligné__` |texte __souligné__ | -|`~~barré~~` |texte ~~barré~~ | -|`code`
``code contenant du `code` `` |`code`
``code contenant du `code` `` | -|`^^exposant^^` |texte en ^^exposant^^ | -|`,,indice,,` |texte en ,,indice,, | +|Format |Résultat |Icône |h +|`code`
``code contenant du `code` `` |`code`
``code contenant du `code` `` |<<.icon $:/core/images/mono-line>> | +|`''gras''` |texte en ''gras'' |<<.icon $:/core/images/bold>> | +|`//italique//` |texte en //italique// |<<.icon $:/core/images/italic>> | +|`__souligné__` |texte __souligné__ |<<.icon $:/core/images/underline>> | +|`~~barré~~` |texte ~~barré~~ |<<.icon $:/core/images/strikethrough>> | +|`^^exposant^^` |texte en ^^exposant^^ |<<.icon $:/core/images/superscript>> | +|`,,indice,,` |texte en ,,indice,, |<<.icon $:/core/images/subscript>> | -Voir aussi : [[WikiTexte : blocs de code|Code Blocks in WikiText]] +Voir aussi<<:>> [[WikiTexte : blocs de code|Code Blocks in WikiText]] ; Remarque -* Si le code inclus est à la fin du code contenant, l'espace entre le ` et les `` est nécessaire. +: Si le code inclus est à la fin du code contenant, l'espace entre le ` et les `` est nécessaire. diff --git a/editions/fr-FR/tiddlers/GettingStarted.tid b/editions/fr-FR/tiddlers/GettingStarted.tid index 9fbd71706..b9e327d8f 100644 --- a/editions/fr-FR/tiddlers/GettingStarted.tid +++ b/editions/fr-FR/tiddlers/GettingStarted.tid @@ -1,30 +1,32 @@ created: 20131129090249275 fr-title: La mise en route -modified: 20160526131021571 +modified: 20220217175123712 tags: [[Working with TiddlyWiki]] title: GettingStarted type: text/vnd.tiddlywiki -\define default-platform() -GettingStarted - $(browser-name)$ -\end -Instructions pour bien commencer avec <>, selon les différentes plates-formes et configurations supportées. -<$set name="browser-name" value={{$:/info/browser/name}}> -<$macrocall $name="tabs" state="$:/state/tabs/platform" tabsList="[prefix[GettingStarted - ]]" default=<> class="tc-vertical"/> - +Téléchargez un <> vide en cliquant sur ce bouton<<:>> {{$:/editions/fr-FR/snippets/download-empty-button}} -Autres informations : +L'étape suivante consiste à choisir une solution d'enregistrement des modifications. De nombreuses méthodes sont disponibles, chacune avec ses atouts et ses limites. Cliquez sur la fiche d'une méthode pour voir plus d'informations la concernant. Vous pouvez aussi cocher une case de plateformes et de navigateur pour afficher les solutions qui fonctionnent pour cette combinaison. -* [[Cryptage|Encryption]] explique comment utiliser le système de cryptage intégré à <> pour protéger votre contenu avec un mot de passe ; -* [[Enregistrer avec Tiddlyspot|Saving on TiddlySpot]], un service gratuit qui vous permet d'utiliser <> en ligne ; -* Sauvegarde avec TiddlyDesktop, une application de bureautique dédiée au travail avec <> ; -* Vous pouvez aussi télécharger ce <> complet, avec toute sa documentation<>
+<<.warning "N'utilisez pas le menu ''Fichier''/''Enregistrer'' du navigateur internet pour enregistrer vos modifications (ça ne marche pas)<>">>

+ +{{Saving}} + + + +Autres informations<<:>> + +* [[Protéger le contenu avec un mot de passe|Encryption]] grâce au système de chiffrement intégré à <><<;>> +* [[Enregistrer avec Tiddlyspot|Saving on TiddlySpot]], un service gratuit qui vous permet d'utiliser <> en ligne<<;>> +* Sauvegarde avec TiddlyDesktop, une application de bureautique dédiée au travail avec <><<;>> +* Vous pouvez aussi télécharger ce <> complet, avec toute sa documentation<<:>>
<<< {{$:/snippets/download-wiki-button}} -Si le bouton ne fonctionne pas, sauvegardez ce lien : +Si le bouton ne fonctionne pas, sauvegardez ce lien<<:>> ~https://tiddlywiki.com/languages/fr-FR/index.html diff --git a/editions/fr-FR/tiddlers/HTML in WikiText.tid b/editions/fr-FR/tiddlers/HTML in WikiText.tid index e6c954584..592275185 100644 --- a/editions/fr-FR/tiddlers/HTML in WikiText.tid +++ b/editions/fr-FR/tiddlers/HTML in WikiText.tid @@ -1,12 +1,14 @@ caption: HTML created: 20141017141153174 -modified: 20141118192457947 +fr-title: HTML dans le WikiTexte +modified: 20220227020401008 tags: WikiText title: HTML in WikiText -fr-title: HTML dans le WikiTexte type: text/vnd.tiddlywiki -Les balises HTML (dont les commentaires ``) peuvent être utilisées directement en [[WikiTexte|WikiText]] : +! Balises HTML et commentaires + +Les balises et les commentaires HTML peuvent être utilisées directement en [[WikiTexte|WikiText]]. Par exemple<<:>> < Ceci est un simple bloc de texte. HelloThere @@ -14,47 +16,60 @@ Ceci est un simple bloc de texte. HelloThere ">> ; Remarque -* Par conséquent, un mot écrit entre "chevrons" `< >` sera interprété comme une balise HTML, ce qui peut entraîner des effets de bord (notamment à cause de l'inexistence de la balise fermante).
À la place, mieux vaut utiliser le [[code HTML|Codes HTML]] des caractères "chevrons" : `<` et `>` +: Par conséquent, un mot écrit entre "chevrons" `< >` sera interprété comme une balise HTML, ce qui peut entraîner des effets de bord (notamment à cause de l'inexistence de la balise fermante).
À la place, mieux vaut utiliser le [[code HTML|Codes HTML]] des caractères "chevrons" : `<` et `>` -! Interprétation du contenu +!! Commentaires //Pragma// -Par défaut, le contenu d'un élément HTML est interprété en mode texte ("inline mode" en anglais). Cela signifie que les [[formatages de texte|Formatting in WikiText]] (comme du gras ou un exposant) s'appliquent, mais que les formatages de type bloc (comme les tables, les listes ou les titres) ne sont pas reconnus. +<<.from-version 5.2.0>> Les commentaires peuvent maintenant être librement entremêlés avec les pragmas ou bien à l'intérieur du corps d'un bloc de wikitexte. -Pour que le contenu de l'élément HTML soit interprété en mode bloc ("block mode" en anglais), il faut faire suivre la balise ouvrante de deux retours à la ligne. +``` + +\define test() +Un peu de texte +\end -< -Ceci est du contenu en ''mode texte''. +<> +``` -* Les listes ne sont pas reconnues +! Important --- pas plus que les paragraphes ! - +<<.tip """[[Les Widgets utilisent la même syntaxe que les balises HTML|Widgets in WikiText]], donc les informations suivantes s'appliquent aussi à eux.""">> ---- -
+! Mode //bloc// ou mode //texte// ? -Ceci est du contenu en ''mode bloc''. +Pour que le contenu d'un élément HTML soit [[interprété|WikiText Parser Modes]] en [[mode bloc|Block Mode WikiText]], la balise ouvrante doit être suivie par deux retours à la ligne. -* Les listes sont reconnues -
">> +Sans les deux retours à la ligne, le contenu des balises sera [[interprété|WikiText Parser Modes]] en [[mode texte|Inline Mode WikiText]], ce qui signifie que les formatages de mode bloc tels que les tableaux, les listes et les titres ne seront pas reconnus. + +Voir aussi <> et <>. + +! Éléments auto-fermants + +Les balises suivantes sont traitées comme si elles étaient vides, ce qui signifie que `` est traitée comme si c'était ``, et qu'aucune balise de fermeture `` n'est nécessaire. Mais si la balise fermante existe elle est ignorée et traitée comme du texte. + +* ``, ``, `
`, ``, ``, ``, `
`, ``, ``, ``, ``, ``, ``, ``, ``, `` + +Si vous ne fermez pas n'importe quelle autre balise HTML, <> se comportera comme si les balises manquantes étaient déportées à la fin du tiddler. ! Attributs -Les attributs d'une balise HTML peuvent être spécifiés littéralement, à l'aide d'une [[transclusion|Transclusion in WikiText]] ou par l'invocation d'une [[macro|Macros in WikiText]] : +Par extension à la syntaxe conventionnelle HTML, les attributs des éléments ou widgets peuvent être écrits de différentes façons<<:>> -Par exemple, ici la valeur de l'attribut `href` sera égale à la valeur du tiddler ~MonLienDestination : +* en tant que chaîne littérale +* en tant que transclusion de <> +* en tant que transclusion de [[macro ou de variable|Macros in WikiText]] +* en tant que résultat d'une [[expression de filtre|Filter Expression]] -``` -label du lien -``` +!! Valeurs littérales d'attributs -Et là, l'attribut est spécifié en invoquant une macro (qui génère elle-même un lien qui peut être paramétré) : +Les valeurs littérales d'attribut peuvent utiliser différents styles de ponctuation<<:>> -``` ->>label du lien -``` +* Guillemets simples (c-à-d `attribut='valeur'`) +* Guillemets doubles (c-à-d `attribut="valeur"`) +* Triples guillemets doubles (c-à-d `attribut="""valeur"""`) +* Aucune ponctuation n'est nécessaire pour les valeurs qui ne contiennent pas d'espace (c-à-d `attribut=valeur`) -Les valeurs d'attribut littérales peuvent contenir des retours à la ligne (ignoré par le HTML) : +Les valeurs littérales d'attribut peuvent contenir des retours à la ligne. Par exemple<<:>> ```
``` -L'utilisation de trois caractères "guillemets doubles" `"""` permet de spécifier des valeurs d'attributs qui contiennent un seul caractère "guillemet double" : +L'utilisation des triples guillemets doubles `"""` permet de spécifier des valeurs d'attributs qui contiennent des caractères "guillemet double"<<:>> ```
+``` + +!! Valeurs d'attributs par transclusion + +Les valeurs d'attributs par transclusion sont encadrées par des doubles accolades autour d'une <>, par exemple<<:>> + +``` +attr={{tiddler}} +attr={{!!field}} +attr={{tiddler!!field}} +``` +<<.warning "La valeur de l'attribut sera le résultat exact de la transclusion, sans aucune interprétation supplémentaire de <>. Toute syntaxe de wiki dans ce résultat sera laissée en l'état.">> + +!! Valeur d'attribut par variable + +Les valeurs d'attributs par variable sont encadrées par des doubles crochets autour d'un [[appel de macro|Macro Calls in WikiText]], par exemple<<:>> + +``` +
>> +... +
+``` +<<.warning "Le texte de la définition de la macro est retrouvé et la substitution des arguments a lieu (c-à-d la syntaxe <<.param $param$>> et <<.param $(...)$>>). Le texte résultant est affecté à la valeur de l'attribut. Toute syntaxe wiki dans ce texte, y-compris d'autres appels de macros ou des références de variables, sera laissée en l'état.">> + +!! Valeurs d'attributs par filtre + +Les valeurs d'attributs par filtre sont encadrées par des accolades triples autour d'une [[expression de filtre|Filter Expression]]. Le premier élément de la liste renvoyée par le filtre est affecté à l'attribut, ou une chaîne vide si la liste est vide. + +Cet exemple montre comment ajouter un préfixe à une valeur<<:>> + +``` +<$text text={{{ [addprefix[$:/myprefix/]] }}} /> +``` +<<.warning "La valeur de l'attribut sera le résultat exact du premier élément de la liste renvoyée par le filtre, sans aucune interprétation du <>. Toute syntaxe de wiki dans ce résultat sera laissée telle quelle.">> diff --git a/editions/fr-FR/tiddlers/Headings in WikiText.tid b/editions/fr-FR/tiddlers/Headings in WikiText.tid index 7ff72fef8..8395dd240 100644 --- a/editions/fr-FR/tiddlers/Headings in WikiText.tid +++ b/editions/fr-FR/tiddlers/Headings in WikiText.tid @@ -1,12 +1,12 @@ caption: Titres de rubriques created: 20141017093039992 fr-title: Titres de rubriques dans WikiText -modified: 20150624093140963 +modified: 20220226234057628 tags: WikiText title: Headings in WikiText type: text/vnd.tiddlywiki -Un ou plusieurs caractères "point d'exclamation" `!` au début d'une ligne signalent un titre de rubrique : +Un titre de rubrique est codé par un à 6 caractères <> `!` au début d'une ligne<<:>> <> ''exporter tout'' et cliquez dessus. Un menu flottant vous permet alors de choisir l'un des nombreux formats d'exportation des tiddlers. + +! Exporter un tiddler + +Pour exporter un tiddler particulier, commencez par l'afficher, puis cliquez sur le bouton <<.icon $:/core/images/down-arrow>> ''plus'' situé vers le haut du tiddler. Dans la liste qui apparaît, sélectionnez <<.icon $:/core/images/export-button>> ''exporter ce tiddler''. Un menu flottant vous permet alors de choisir l'un des nombreux formats d'exportation des tiddlers. + +! Exporter des tiddlers selon un critère (filtre) + +Pour exporter une sélection de tiddlers, cliquez sur le symbole de loupe <<.icon $:/core/images/advanced-search-button>> à proximité de la zone de recherche de la barre latérale, ce qui va ouvrir le tiddler de [[recherche avancée|$:/AdvancedSearch]]. Choisissez l'onglet ''Filtrer'' car c'est le seul qui permet d'exporter une sélection de tiddlers. Les [[filtres|Filters]] utilisent une syntaxe particulière, cliquez sur [[ce lien|Filters]] pour découvrir comment concevoir des filtres. + +Lorsque vous aurez rédigé un filtre, la liste des tiddlers correspondants apparaîtra. Vous pourrez alors cliquer sur le bouton <<.icon $:/core/images/export-button>> ''Exporte ces tiddlers'' situé à droite de la zone de saisie du filtre. Un menu flottant vous permettra alors de choisir l'un des nombreux formats d'exportation des tiddlers. + +! Formats d'exportation + +Actuellement, les formats d'exportation disponibles sont<<:>> + +* Le fichier au format CSV +* Le fichier au format JSON +* Le fichier HTML statique +* Le fichier au format <> + +Le format <> est particulier en ce qu'il ne permet d'exporter qu'un seul tiddler à la fois, même si vous essayer d'en exporter plusieurs à l'aide d'un filtre ou avec le bouton ''exporter tout''. diff --git a/editions/fr-FR/tiddlers/ImportTiddlers.tid b/editions/fr-FR/tiddlers/ImportTiddlers.tid deleted file mode 100644 index 1600bfe0e..000000000 --- a/editions/fr-FR/tiddlers/ImportTiddlers.tid +++ /dev/null @@ -1,14 +0,0 @@ -created: 20130825162000000 -fr-title: Importer du contenu -modified: 20150531190339977 -tags: Features -title: ImportTiddlers -type: text/vnd.tiddlywiki - -On peut importer du contenu dans un fichier <> de plusieurs façons<> - -* En utilisant le bouton ''importer'' (sous l'onglet ''Outils'' dans la barre latérale, ou dans le [[Panneau de contrôle|$:/ControlPanel]]) pour choisir un ou plusieurs fichiers locaux<> -* En glissant-déposant des fichiers à partir de l'explorateur Windows ou du Finder Mac OS X sur la fenêtre TiddlyWiki5 du navigateur -* En collant directement le contenu du presse-papier à l'aide du raccourci clavier (contrôle-V ou commande-V) -** Coller depuis le presse-papier n'est pour l'instant possible que dans GoogleChrome - diff --git a/editions/fr-FR/tiddlers/Importing Tiddlers.tid b/editions/fr-FR/tiddlers/Importing Tiddlers.tid new file mode 100644 index 000000000..874205edd --- /dev/null +++ b/editions/fr-FR/tiddlers/Importing Tiddlers.tid @@ -0,0 +1,26 @@ +created: 20130825162000000 +fr-title: Importer des tiddlers +modified: 20220222173231214 +tags: Features +title: Importing Tiddlers +type: text/vnd.tiddlywiki + +Vous pouvez importer des tiddlers dans un <> à partir de fichiers externes ou directement depuis un autre <>. + +!! Importer du contenu de fichiers externes + +Il existe plusieurs méthodes pour importer du contenu (tel que du texte, des images, des documents pdf, etc.) à partir de fichiers externes<<:>> + +* Utiliser le bouton <<.icon $:/core/images/import-button>> ''Importer'' (dans l'onglet ''Outils'' de la barre latérale) pour choisir un fichier<<;>> +* Gisser-déposer des fichiers depuis l'Explorateur Windows, ou le Finder MacOS, etc. directement dans la fenêtre de navigateur de <><<;>> +* Copier-coller du contenu directement depuis le presse-papiers en utilisant le menu ou le raccourci clavier (ctrl-V ou cmd-V) +** Actuellement disponible avec Chrome, Firefox et Edge (mais pas Internet Explorer) + +Pour la plupart, les fichiers sont importés en tant que tiddlers individuels. Les exceptions sont<<:>> + +* les fichiers ''.html'' qui sont reconnus comme des fichiers <> sont interprétés pour en extraire les tiddlers qu'ils contiennent<<;>> +* les fichiers ''.json'' sont interprétés pour en extraire les tiddlers qu'ils contiennent. Ils peuvent être créés en les [[exportant|How to export tiddlers]] d'un autre <>. <> reconnaît les fichiers JSON qui contiennent un unique tiddler, ou un tableau de tiddlers. + +!! Importer du contenu depuis des <> dans d'autres fenêtres + +Les tiddlers peuvent être importés depuis des <> affichés dans d'autres fenêtres de navigateurs grâce au [[glisser-déposer|Drag and Drop]]. Faites glisser un lien interne <> ou un tag d'un <> à un autre, entre fenêtres de navigateurs. Faire glisser un lien interne importera un tiddler unique, alors que faire glisser une pilule de tag importera tous les tiddlers qui portent ce [[tag|Tagging]]. diff --git a/editions/fr-FR/tiddlers/PermaLinks.tid b/editions/fr-FR/tiddlers/PermaLinks.tid index 67189e525..c9ca34d8e 100644 --- a/editions/fr-FR/tiddlers/PermaLinks.tid +++ b/editions/fr-FR/tiddlers/PermaLinks.tid @@ -1,16 +1,16 @@ caption: Permaliens created: 20140502213500000 fr-title: Permaliens -modified: 20150622112455420 +modified: 20220223144222832 tags: Features Concepts title: PermaLinks type: text/vnd.tiddlywiki -Les permaliens offrent la possibilités de faire des liens directs vers des tiddlers individuels dans un TiddlyWiki. +Les permaliens sont des liens directs vers des tiddlers individuels à l'intérieur d'un TiddlyWiki. ! La forme simple des permaliens -La forme la plus simple d'un permalien vers un tiddler cible unique est son nom précédé de "#" accolé au lien URL de base <<:>> +La forme la plus simple d'un permalien (<<.icon $:/core/images/permalink-button>>) vers un tiddler cible unique est son nom précédé de "#" accolé au lien URL de base <<:>> https://tiddlywiki.com/#HelloThere @@ -20,47 +20,47 @@ Le titre du tiddler peut contenir des espaces si nécessaire<<:>> Remarquez que les doubles crochets ne sont pas requis autour du titre du tiddler cible<<;>> cependant, s'ils sont présents ils seront supprimés automatiquement. -(NDT Attention en cas de traduction, c'est le lien doit pointer vers `title` le titre original et pas vers le titre traduit affiché qui ne reflète que le contenu du champ `fr-title`) +(NDT<<:>> Attention en cas de traduction, le lien doit pointer vers le titre original `title` et pas vers le titre traduit affiché qui ne reflète que le contenu du champ `fr-title`) ! Permaliens vers un déroulé -Le permalien peut aussi spécifier le déroulé de la liste de tiddlers qui seront ouverts avec le [[Tiddler Filtre|Filters]] cible<<:>> +Le permalien peut aussi spécifier la liste de tiddlers qui seront ouverts dans le déroulé en plus du tiddler cible, à l'aide d'un [[filtre|Filters]]<<:>> [[https://tiddlywiki.com/#TiddlerFields:Tiddlers TiddlerTags TiddlerFields ContentType]] -Si le tiddler cible est absent du déroulé de la liste, il est alors automatiquement inséré au début. Ce qui veut dire que les exemples suivants ciblent tous les deux le tiddler `Tiddlers` avec le déroulé de la suite `Tiddlers`, `Tags`, `TiddlerFields`: +Si le tiddler cible est absent de la liste, il est alors automatiquement inséré au début du déroulé. Ce qui veut dire que les exemples suivants désignent tous les deux le tiddler `Tiddlers` dans le déroulé `Tiddlers`, `Tags`, `TiddlerFields`<<:>> [[https://tiddlywiki.com/#Tiddlers:Tags TiddlerFields]] [[https://tiddlywiki.com/#Tiddlers:Tiddlers Tags TiddlerFields]] -Il est aussi possible de spécifier, pour les besoins de la navigation, un déroulé filtre sans spécifier de tiddler cible<<:>> +Il est aussi possible de spécifier un filtre sans spécifier de tiddler cible de navigation<<:>> -~https://tiddlywiki.com/#:[tags[task]] +~https://tiddlywiki.com/#:[tags[task]] ! Concernant le codage URL -Il existe des restrictions techniques aux caractères légaux d'un adressage URL. Afin de permettre à tous les titres de tiddler d'être adressés, les caractères illégaux font l'objet d'un processus appelé "codage URL" où les caractères problématique sont remplacés par leurs codes numériques. Par exemple, le caractère espace est remplacé par `%20`. +Il existe des restrictions techniques aux caractères autorisés dans un adressage URL. Afin de permettre à tous les titres de tiddler d'être adressés, les caractères illégaux font l'objet d'un processus appelé <> où les caractères problématiques sont remplacés par leurs codes numériques. Par exemple, le caractère espace est remplacé par `%20`. -Aussi bien le tiddler cible que le déroulé filtre seront encodé (mais pas le séparateur ":"). TiddlyWiki génère des URLs encodées correctement qui peuvent paraître un peu "moche". Cependant, dans la pratique les navigateurs parviennent heureusement et parfaitement à interpréter des caractères arbitraires dans les extraits URL. De ce fait, quand vous créez des permaliens manuellement vous pouvez choisir d'ignorer le codage URL. +Aussi bien le tiddler cible que le déroulé filtre devraient être encodés (mais pas le séparateur <>). <> génère des URLs encodées correctement qui peuvent paraître un peu "moche". Cependant, dans la pratique les navigateurs parviennent heureusement à interpréter parfaitement des caractères arbitraires dans les extraits URL. De ce fait, quand vous créez des permaliens manuellement vous pouvez choisir d'ignorer le codage URL. -! Comportement de TiddlyWiki avec les Permaliens +! Comportement de <> avec les Permaliens -Deux aspects importants du comportement de TiddliWiki avec les permaliens peuvent être réglés avec les options de l'onglet ''Réglages avancés'' du $:/ControlPanel <<:>> +Deux aspects importants du comportement de <> avec les permaliens peuvent être réglés avec les options de l'onglet ''Réglages avancés'' du <<.icon $:/core/images/options-button>> $:/ControlPanel <<:>> * d'une part la mise à jour automatique de la zone d'adresse à chaque navigation, et dans ce cas s'il faut inclure la séquence du déroulé aussi bien que le tiddler cible -* d'autre part si les mises à jour de la zone d'adresse doivent affecter l'historique du navigateur. Par défaut, c'est ''non''<<;>> mais lorsque que ''oui'' est sélectionné, vous pouvez reprendre votre navigation entre les tiddlers en utilisant les boutons avancer et reculer du navigateur +* d'autre part si les mises à jour de la zone d'adresse doivent affecter l'historique du navigateur. Par défaut, c'est ''non''<<;>> mais lorsque ''oui'' est sélectionné, vous pouvez reprendre votre navigation entre les tiddlers en utilisant les boutons avancer et reculer du navigateur -Notez que saisir un permalien ou s'y rendre causera toujours le traitement du permalien, et les tiddlers ouverts ou fermés en fonction de lui. +Notez que saisir un permalien ou s'y rendre causera toujours le traitement du permalien, ainsi que l'ouverture et la fermeture des tiddlers appropriés en fonction de son contenu. !! Détails techniques -Quand TiddlyWiki se lance il traite les permaliens selon les étapes suivantes<<;>> les même étapes sont répétées dynamiquement lors des modifications du permalien (cela survient en réaction à l'édition par l'adresse de la barre d'adresse, par exemple). +Quand <> se lance il traite les permaliens selon les étapes ci-dessous<<;>> ces même étapes sont répétées dynamiquement lors des modifications du permalien (ce qui survient en réaction à l'édition de la barre d'adresse par l'utilisateur, par exemple). -# Si le permalien contient un ":", traiter la chaine précédente comme la cible et la chaine qui suit comme le ''filtre du déroulé'' -# Si ":" est absent, traiter toute la chaine comme la ''cible'' et marquer le ''filtre du déroulé'' comme //non-spécifié// -# Si le ''filtre du déroulé'' est //non-spécifié// dans le processus de lancement, alors mettre une chaine vide dans le ''filtre du déroulé'' si la ''cible'' est spécifiée, ou aux tiddlers par défaut si la ''cible'' n'est pas spécifiée -# Si le ''filtre du déroulé'' est //non-spécifié// hors du processus de lancement, alors affecter le déroulé actuel au ''filtre du déroulé'' +# Si le permalien contient un <>, traiter la chaine précédente comme la ''cible'' et la chaine qui suit comme le ''filtre du déroulé'' +# Si <> est absent, traiter toute la chaine comme la ''cible'' et marquer le ''filtre du déroulé'' comme //non-spécifié// +# Si le ''filtre du déroulé'' est //non-spécifié// pendant le processus de lancement, alors mettre une chaine vide dans le ''filtre du déroulé'' si la ''cible'' est spécifiée, ou les tiddlers par défaut si la ''cible'' n'est pas spécifiée +# Si le ''filtre du déroulé'' est //non-spécifié// hors du processus de lancement, alors affecter le ''filtre du déroulé'' au déroulé actuel # Évaluer le ''filtre du déroulé'' comme ''liste du déroulé'' # Si la ''cible'' est spécifiée et absente de la ''liste du déroulé'' alors l'ajouter au début # Si la ''cible'' est spécifiée alors s'y rendre, autrement naviguer au premier tiddler de la ''liste du déroulé'' diff --git a/editions/fr-FR/tiddlers/Share Plugin.tid b/editions/fr-FR/tiddlers/Share Plugin.tid new file mode 100644 index 000000000..2d6ef7f98 --- /dev/null +++ b/editions/fr-FR/tiddlers/Share Plugin.tid @@ -0,0 +1,15 @@ +created: 20201228143125000 +fr-title: Plugin de partage +modified: 20220221010033461 +tags: OfficialPlugins +title: Share Plugin +type: text/vnd.tiddlywiki + +
N'installez ce plugin que si vous comprenez ce qu'il fait !
+ +Ce plugin expérimental fournit des outils pour partager des tiddlers via des URLs, comme<<:>> + +* La possibilité de charger un groupe de tiddlers grâce à une //adresse hachée// au démarrage +* Un assistant et des modèles pour créer des URLs à partir d'un groupe de tiddlers + +Dans la [[bibliothèque des plugins|Installing a plugin from the plugin library]], vous trouverez le plugin de partage sous le nom <>. diff --git a/editions/fr-FR/tiddlers/Sharing_a_TiddlyWiki_on_Dropbox.tid b/editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid similarity index 51% rename from editions/fr-FR/tiddlers/Sharing_a_TiddlyWiki_on_Dropbox.tid rename to editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid index 6804c4a09..8377817cd 100644 --- a/editions/fr-FR/tiddlers/Sharing_a_TiddlyWiki_on_Dropbox.tid +++ b/editions/fr-FR/tiddlers/Sharing a TiddlyWiki on Dropbox.tid @@ -1,6 +1,6 @@ created: 20140122085818089 fr-title: Partager un TiddlyWiki avec Dropbox -modified: 20150616132729523 +modified: 20220222195202852 tags: Learning title: Sharing a TiddlyWiki on Dropbox type: text/vnd.tiddlywiki @@ -9,10 +9,18 @@ Vous pouvez travailler sur un fichier TiddlyWiki dans Dropbox et publier un lien # Mettez votre fichier TiddlyWiki dans un répertoire Dropbox # Choisir l'option "Partager lien" de Dropbox pour avoir un lien d'accès publique au fichier -#* Dans l'interface web de Dropbox, c'est possible en cliquant sur l'icone du lien qui apparait au survol du fichier. Dropbox ajoute aussi un élément "Lien Partagé" du menu contextuel du Finder sur OS X et de l'Explorer de Windows +#* Dans l'interface web de Dropbox, c'est possible en cliquant sur l'icone du lien qui apparait au survol du fichier. Dropbox ajoute aussi un élément "Lien Partagé" au menu contextuel du Finder sur OS X et de l'Explorateur Windows # L'URL générée par Dropbox aura cette forme<<:>> #> `https://www.dropbox.com/s//mywiki.html` -# Modifier l'URL ainsi, en préservant soigneusement le gobbledegook: +# Modifier l'URL ainsi, en préservant soigneusement le //gobbledegook//<<:>> #> `https://dl.dropboxusercontent.com/s//mywiki.html` -Le résultat est une URL "secrète" URL que vous pouvez envoyer à d'autres personnes qui auront alors la capacité de découvrir le wiki. +Le résultat est une URL "secrète" que vous pouvez envoyer à d'autres personnes qui auront alors la capacité de découvrir le wiki. + +---- + +Entrez une URL générée par Dropbox ci-dessous et vous pourrez copier-coller l'URL secrète correspondante, ou l'ouvrir en cliquant sur <><<:>> + +<$edit-text tiddler="$:/temp/dropboxurl" default="https://www.dropbox.com/s//mywiki.html" tag="input" type="text" size="60"/> + +<$macrocall $name="dropbox-url" url={{$:/temp/dropboxurl}}/> diff --git a/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid b/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid new file mode 100644 index 000000000..a891d1f60 --- /dev/null +++ b/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid @@ -0,0 +1,18 @@ +created: 20140908163900000 +fr-title: Partager vos tiddlers avec d'autres +modified: 20220221004623008 +tags: Learning +title: Sharing your tiddlers with others +type: text/vnd.tiddlywiki + +Il existe plusieurs façons de partager des [[tiddlers|Tiddlers]] ou votre <> complet<<:>> + +*Vous pouvez joindre un <> à un courriel +*Vous pouvez publier votre <> en ligne, et envoyer le lien dans un message<<:>> +**un lien vers l'URL du fichier lui-même +**un [[permalien|PermaLinks]] (<<.icon $:/core/images/permalink-button>>) vers un tiddler spécifique +**Un lien [[permaview|PermaView]] (<<.icon $:/core/images/permaview-button>>) de tous les tiddlers ouverts +* Vous pouvez [[partager un lien Dropbox vers votre TiddlyWiki|Sharing a TiddlyWiki on Dropbox]] +* Vous pouvez [[exporter des tiddlers|How to export tiddlers]] (<<.icon $:/core/images/export-button>>) dans plusieurs formats de fichiers tels que texte (.TID), HTML statique, JSON et CSV (valeurs séparées par des virgules, compatibles avec les tableurs) +* Vous pouvez aussi partager des tiddlers simplement en rendant votre <> accessible aux autres, par exemple en le publiant en ligne, ce qui leur permettra [[d'importer des tiddlers|Importing Tiddlers]] qu'il contient +* Il y a un [[plugin de partage|Share Plugin]] expérimental que vous pouvez utiliser pour partager des tiddlers grâce à une URL spécialement conçue à cet effet. diff --git a/editions/fr-FR/tiddlers/Sharing_your_tiddlers_with_others.tid b/editions/fr-FR/tiddlers/Sharing_your_tiddlers_with_others.tid deleted file mode 100644 index 2a6dbbc9d..000000000 --- a/editions/fr-FR/tiddlers/Sharing_your_tiddlers_with_others.tid +++ /dev/null @@ -1,16 +0,0 @@ -created: 20140908163900000 -fr-title: Partager vos tiddlers avec d'autres -modified: 20150614075725437 -tags: Learning -title: Sharing your tiddlers with others -type: text/vnd.tiddlywiki - -Il y a plusieurs façon d'être la source ou la destination d'un partage de tiddlers <<:>> - -*Vous pouvez joindre un ~TiddlyWiki à un courriel -*Vous pouvez publier votre ~TiddlyWiki en ligne, et envoyer le lien dans un message<<:>> -**un lien vers l'URL du fichier lui-même -**un permalien vers un tiddler spécifique (see [[Permaliens|PermaLinks]]) -**Un lien permaview de tous les tiddlers courant ouverts (see [[PermaView]]) -*Vous pouvez récupérer des tiddlers de ~TiddlyWikis publiés en ligne par d'autres en cliquant sur un lien vers le tiddler dans leur fichiers, et par un copier-coller du lien dans votre propre fichier. Un tiddler d'import apparaitra, et vous pourrez cliquer pour importer le ou les tiddler/s dans votre fichier. -* Vous pouvez [[partager un lien Dropbox vers votre TiddlyWiki|Sharing a TiddlyWiki on Dropbox]] diff --git a/editions/fr-FR/tiddlers/TaskManagementExample.tid b/editions/fr-FR/tiddlers/TaskManagementExample.tid index ef5b77f74..19e4442e6 100644 --- a/editions/fr-FR/tiddlers/TaskManagementExample.tid +++ b/editions/fr-FR/tiddlers/TaskManagementExample.tid @@ -1,12 +1,14 @@ created: 20130825213300000 fr-title: Exemple de gestion de tâches -modified: 20160523100238122 +modified: 20220226174224424 tags: Learning title: TaskManagementExample type: text/vnd.tiddlywiki TiddlyWiki5 peut servir de système de gestion de tâches simple sans personnalisation supplémentaires. L'idée est que les tâches soient taguées avec `task`, celles étant terminées portant également le tag `done`. De cette manière, il est très simple de générer des listes de tâches. +<<.tip """Il y a [[une version améliorée de cet exemple|TaskManagementExample (Draggable)]] qui ajoute la possibilité de réordonner les tâches par glisser-déposer.""">> + ! Tâches à effectuer <$list filter="[!has[draft.of]tag[task]!tag[done]sort[created]]"> diff --git a/editions/fr-FR/tiddlers/_TiddlyWiki for Scholars_ by Alberto Molina.tid b/editions/fr-FR/tiddlers/_TiddlyWiki for Scholars_ by Alberto Molina.tid index eaa2f7889..d4b938aa1 100644 --- a/editions/fr-FR/tiddlers/_TiddlyWiki for Scholars_ by Alberto Molina.tid +++ b/editions/fr-FR/tiddlers/_TiddlyWiki for Scholars_ by Alberto Molina.tid @@ -1,12 +1,12 @@ created: 20140720085406905 fr-title: "TiddlyWiki for Scholars" par Alberto Molina -modified: 20150531183002115 +modified: 20220226175137835 tags: Resources title: "TiddlyWiki for Scholars" by Alberto Molina type: text/vnd.tiddlywiki url: http://tw5.scholars.tiddlyspot.com/ -Une version préliminaire d'une //édition// de TiddlyWiki adaptée à la prise de notes universitaire. +Une version préliminaire d'une //édition// de TiddlyWiki adaptée à une rigoureuse prise de notes universitaire. {{!!url}} diff --git a/languages/fr-FR/GettingStarted.tid b/languages/fr-FR/GettingStarted.tid index b9e327d8f..8aa68609b 100644 --- a/languages/fr-FR/GettingStarted.tid +++ b/languages/fr-FR/GettingStarted.tid @@ -1,35 +1,18 @@ -created: 20131129090249275 -fr-title: La mise en route -modified: 20220217175123712 -tags: [[Working with TiddlyWiki]] title: GettingStarted -type: text/vnd.tiddlywiki +\define lingo-base() $:/language/ControlPanel/Basics/ +Bienvenue sur ~TiddlyWiki et parmi la communauté ~TiddlyWiki. -Téléchargez un <> vide en cliquant sur ce bouton<<:>> {{$:/editions/fr-FR/snippets/download-empty-button}} +Avant de confier à TiddlyWiki des informations importantes, commencez par vérifier que vos modifications peuvent être sauvegardées +correctement — reportez-vous aux [[instructions détaillées|https://tiddlywiki.com/languages/fr-FR/index.html#Saving]] sur https://tiddlywiki.com/. -L'étape suivante consiste à choisir une solution d'enregistrement des modifications. De nombreuses méthodes sont disponibles, chacune avec ses atouts et ses limites. Cliquez sur la fiche d'une méthode pour voir plus d'informations la concernant. Vous pouvez aussi cocher une case de plateformes et de navigateur pour afficher les solutions qui fonctionnent pour cette combinaison. +!! Personnalisez ce ~TiddlyWiki -<<.warning "N'utilisez pas le menu ''Fichier''/''Enregistrer'' du navigateur internet pour enregistrer vos modifications (ça ne marche pas)<>">>

+
-{{Saving}} - - - -Autres informations<<:>> - -* [[Protéger le contenu avec un mot de passe|Encryption]] grâce au système de chiffrement intégré à <><<;>> -* [[Enregistrer avec Tiddlyspot|Saving on TiddlySpot]], un service gratuit qui vous permet d'utiliser <> en ligne<<;>> -* Sauvegarde avec TiddlyDesktop, une application de bureautique dédiée au travail avec <><<;>> -* Vous pouvez aussi télécharger ce <> complet, avec toute sa documentation<<:>>
- -<<< -{{$:/snippets/download-wiki-button}} - -Si le bouton ne fonctionne pas, sauvegardez ce lien<<:>> - -~https://tiddlywiki.com/languages/fr-FR/index.html - -Votre navigateur vous demandera sans doute confirmation avant de démarrer le téléchargement. -<<< +|<$link to="$:/SiteTitle"><> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | +|<$link to="$:/SiteSubtitle"><> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | +|<$link to="$:/DefaultTiddlers"><> |<>
<$edit-text tag="textarea" tiddler="$:/DefaultTiddlers"/>
//<>// |
+ +Rendez-vous dans le [[panneau de contrôle|$:/ControlPanel]] pour plus d'options. From 29aef731a329ea51f7b0e791b0d53ce9ae9aafca Mon Sep 17 00:00:00 2001 From: tw-FRed <95534072+tw-FRed@users.noreply.github.com> Date: Sat, 5 Mar 2022 10:19:22 +0100 Subject: [PATCH 16/91] [fr] New batch of documentation translations (#6508) --- editions/fr-FR/tiddlers/$__deprecated.tid | 9 ++ .../$__editions_tw5.com_doc-macros.tid | 30 ++-- .../$__editions_tw5.com_version-macros.tid | 15 ++ .../$__editions_tw5.com_wikitext-macros.tid | 4 +- editions/fr-FR/tiddlers/CamelCase.tid | 9 +- .../Deprecated - What does it mean.tid | 17 +++ .../tiddlers/Glossaire en-GB -_ fr-FR.tid | 4 +- editions/fr-FR/tiddlers/ImageWidget.tid | 33 +++++ .../fr-FR/tiddlers/Images in WikiText.tid | 69 +++++++++ .../fr-FR/tiddlers/Images_in_WikiText.tid | 48 ------ .../fr-FR/tiddlers/Linking in WikiText.tid | 137 +++++++++++++++--- .../Styles and Classes in WikiText.tid | 21 +-- 12 files changed, 293 insertions(+), 103 deletions(-) create mode 100644 editions/fr-FR/tiddlers/$__deprecated.tid create mode 100644 editions/fr-FR/tiddlers/$__editions_tw5.com_version-macros.tid create mode 100644 editions/fr-FR/tiddlers/Deprecated - What does it mean.tid create mode 100644 editions/fr-FR/tiddlers/ImageWidget.tid create mode 100644 editions/fr-FR/tiddlers/Images in WikiText.tid delete mode 100644 editions/fr-FR/tiddlers/Images_in_WikiText.tid diff --git a/editions/fr-FR/tiddlers/$__deprecated.tid b/editions/fr-FR/tiddlers/$__deprecated.tid new file mode 100644 index 000000000..8f72c4cad --- /dev/null +++ b/editions/fr-FR/tiddlers/$__deprecated.tid @@ -0,0 +1,9 @@ +created: 20170126143833588 +fr-title: obsolète +modified: 20220303000909524 +title: $:/deprecated +type: text/vnd.tiddlywiki + +<<< +L'obsolescence est, dans le domaine du développement logiciel, la situation où une ancienne fonctionnalité est considérée comme dépassée au regard d'un nouveau standard, et où, bien qu'elle soit conservée dans les versions plus récentes (par souci de rétro-compatibilité, et pour donner aux développeurs le temps de mettre leur code source en conformité), elle pourrait disparaître à l'avenir, si bien qu'il est recommandé d'en abandonner l'usage. +<<< [[wikipedia|https://fr.wikipedia.org/wiki/Obsolescence_(informatique)]] diff --git a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid index 226d0e4d7..de6376218 100644 --- a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid +++ b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid @@ -1,5 +1,5 @@ created: 20150117152607000 -modified: 20220220000852855 +modified: 20220304140636794 tags: $:/tags/Macro title: $:/editions/tw5.com/doc-macros type: text/vnd.tiddlywiki @@ -30,9 +30,9 @@ type: text/vnd.tiddlywiki \define .attr(_) $_$ \define .param(_) $_$ -\define .mtitle(_) $_$ Macro -\define .otitle(_) $_$ Operator -\define .vtitle(_) $_$ Variable +\define .mtitle(_) Macro $_$ +\define .otitle(_) Opérateur $_$ +\define .vtitle(_) Variable $_$ \define .link(_,to) <$link to="$to$">$_$ \define .clink(_,to) <<.link """$_$""" "$to$">> @@ -117,7 +117,7 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- - +
Warning:
Don't do it this way!
Attention :
Ne faites pas comme ça !
$eg$ @@ -132,17 +132,17 @@ $eg$ \end -\define .link-badge-added(link,colour:#ffe246) <<.link-badge "added" """$link$""" """$colour$""">> +\define .link-badge-added(link,colour:#ffe246) <<.link-badge "ajouté" """$link$""" """$colour$""">> \define .link-badge-addendum(link,colour:#fcc84a) <<.link-badge "addendum" """$link$""" """$colour$""">> -\define .link-badge-extended(link,colour:#f9a344) <<.link-badge "extended" """$link$""" """$colour$""">> -\define .link-badge-fixed(link,colour:#ffa86d) <<.link-badge "fixed" """$link$""" """$colour$""">> -\define .link-badge-here(link,colour:#d88e63) <<.link-badge "here" """$link$""" """$colour$""">> -\define .link-badge-hide(link,colour:#9d959f) <<.link-badge "hide" """$link$""" """$colour$""">> -\define .link-badge-improved(link,colour:#7593c7) <<.link-badge "improved" """$link$""" """$colour$""">> -\define .link-badge-modified(link,colour:#7f99c9) <<.link-badge "modified" """$link$""" """$colour$""">> -\define .link-badge-removed(link,colour:#a9aabc) <<.link-badge "removed" """$link$""" """$colour$""">> -\define .link-badge-renamed(link,colour:#b4b995) <<.link-badge "renamed" """$link$""" """$colour$""">> -\define .link-badge-updated(link,colour:#91ba66) <<.link-badge "updated" """$link$""" """$colour$""">> +\define .link-badge-extended(link,colour:#f9a344) <<.link-badge "étendu" """$link$""" """$colour$""">> +\define .link-badge-fixed(link,colour:#ffa86d) <<.link-badge "corrigé" """$link$""" """$colour$""">> +\define .link-badge-here(link,colour:#d88e63) <<.link-badge "ici" """$link$""" """$colour$""">> +\define .link-badge-hide(link,colour:#9d959f) <<.link-badge "cacher" """$link$""" """$colour$""">> +\define .link-badge-improved(link,colour:#7593c7) <<.link-badge "amélioré" """$link$""" """$colour$""">> +\define .link-badge-modified(link,colour:#7f99c9) <<.link-badge "modifié" """$link$""" """$colour$""">> +\define .link-badge-removed(link,colour:#a9aabc) <<.link-badge "retiré" """$link$""" """$colour$""">> +\define .link-badge-renamed(link,colour:#b4b995) <<.link-badge "renommé" """$link$""" """$colour$""">> +\define .link-badge-updated(link,colour:#91ba66) <<.link-badge "mis à jour" """$link$""" """$colour$""">> \define .tiddler-fields(tiddler) <$tiddler tiddler=<<__tiddler__>>> diff --git a/editions/fr-FR/tiddlers/$__editions_tw5.com_version-macros.tid b/editions/fr-FR/tiddlers/$__editions_tw5.com_version-macros.tid new file mode 100644 index 000000000..873ad42ed --- /dev/null +++ b/editions/fr-FR/tiddlers/$__editions_tw5.com_version-macros.tid @@ -0,0 +1,15 @@ +created: 20161008085627406 +modified: 20220303000119560 +tags: $:/tags/Macro +title: $:/editions/tw5.com/version-macros +type: text/vnd.tiddlywiki + +\define .from-version(version) +{{$:/core/images/warning}} Depuis<<:>> $version$ +\end + +\define .deprecated-since(version, superseded:"TODO-Link") +<$button to="Deprecated - What does it mean" class="doc-deprecated-version tc-btn-invisible">{{$:/core/images/warning}} Obsolète depuis<<:>> $version$ . Utilisez [[$superseded$]] à la place +\end + +
<$view field="text"/>
\ No newline at end of file diff --git a/editions/fr-FR/tiddlers/$__editions_tw5.com_wikitext-macros.tid b/editions/fr-FR/tiddlers/$__editions_tw5.com_wikitext-macros.tid index 313d466ba..c1ae06340 100644 --- a/editions/fr-FR/tiddlers/$__editions_tw5.com_wikitext-macros.tid +++ b/editions/fr-FR/tiddlers/$__editions_tw5.com_wikitext-macros.tid @@ -1,5 +1,5 @@ created: 20150531155638729 -modified: 20150601094935758 +modified: 20220304175111424 tags: $:/tags/Macro title: $:/editions/tw5.com/wikitext-macros type: text/vnd.tiddlywiki @@ -15,7 +15,7 @@ Affichera ceci : $src$ -... Génération du HTML : +Code HTML correspondant : $$$text/vnd.tiddlywiki>text/html $src$ diff --git a/editions/fr-FR/tiddlers/CamelCase.tid b/editions/fr-FR/tiddlers/CamelCase.tid index a3c0860e4..0d4d953d1 100644 --- a/editions/fr-FR/tiddlers/CamelCase.tid +++ b/editions/fr-FR/tiddlers/CamelCase.tid @@ -1,11 +1,14 @@ caption: CamelCase created: 20130828185300000 -modified: 20150623062412435 +fr-title: Notation chameau +modified: 20220304015529727 tags: Definitions title: CamelCase type: text/vnd.tiddlywiki -La convention de casse Camel est formée à partir d'une phrase, dont on met en capital la première lettre de chaque mot et dont on supprime les espaces entre eux, formant ainsi un seul et unique mot. De nombreux wiki utilisent CamelCase pour marquer les phrases qui génèrent un lien de façon automatique. +La <> (en anglais <>) est une convention de casse formée en passant en majuscule l'initiale de chaque mot d'une phrase et en supprimant les espaces entre les mots, ce qui forme un long mot composé. De nombreux wikis utilisent la <> pour marquer les phrases qui produisent automatiquement un lien. Exemple : -ExempleDeCamelCaseQuiGénèreUnLienVersUnNouveauTiddlerPortantCeNom \ No newline at end of file +ExempleDeNotationChameauQuiProduitUnLienVersUnNouveauTiddlerPortantCeNom + +NDT<<:>> Visuellement, l'alternance des lettres en majuscules et en minuscules dans les phrases en notation chameau produit une sorte d'ondulation, comme les bosses d'un chameau. \ No newline at end of file diff --git a/editions/fr-FR/tiddlers/Deprecated - What does it mean.tid b/editions/fr-FR/tiddlers/Deprecated - What does it mean.tid new file mode 100644 index 000000000..3d597efd6 --- /dev/null +++ b/editions/fr-FR/tiddlers/Deprecated - What does it mean.tid @@ -0,0 +1,17 @@ +created: 20170126142116898 +fr-title: Obsolète - définition +modified: 20220303002330037 +title: Deprecated - What does it mean +type: text/vnd.tiddlywiki + +Avant tout<<:>> ''Restez calme<>'' + +{{$:/deprecated}} + +Pour <>, cela signifie que vous ne devriez plus utiliser ce mécanisme pour du nouveau contenu, ''et que vous devriez mettre à jour votre contenu existant''<> + +Les fonctionnalités obsolètes sont identifiées avec un style particulier. Voir<<:>> <> + +''Tiddlers étiquetés `$:/deprecated`'' : + +><> \ No newline at end of file diff --git a/editions/fr-FR/tiddlers/Glossaire en-GB -_ fr-FR.tid b/editions/fr-FR/tiddlers/Glossaire en-GB -_ fr-FR.tid index 95793230b..1b0083b75 100644 --- a/editions/fr-FR/tiddlers/Glossaire en-GB -_ fr-FR.tid +++ b/editions/fr-FR/tiddlers/Glossaire en-GB -_ fr-FR.tid @@ -1,5 +1,5 @@ created: 20141217193625476 -modified: 20150624092403261 +modified: 20220304170551125 title: Glossaire en-GB -> fr-FR type: text/vnd.tiddlywiki @@ -8,9 +8,11 @@ type: text/vnd.tiddlywiki |background|arrière plan|| |bug|bogue|| |core |noyau || +|dominant append|ajout prépondérant|//ajouté par prépondérance//| |draft|ébauche|| |empty édition |édition basique || |encryption|cryptage|| +|filter run|séquence de filtre|| |fixed|corrigé|| |flexible|souple|maléable | |improved|amélioré|| diff --git a/editions/fr-FR/tiddlers/ImageWidget.tid b/editions/fr-FR/tiddlers/ImageWidget.tid new file mode 100644 index 000000000..ee5397673 --- /dev/null +++ b/editions/fr-FR/tiddlers/ImageWidget.tid @@ -0,0 +1,33 @@ +caption: image +created: 20140416160234142 +fr-title: Widget Image +modified: 20220303235644269 +tags: Widgets +title: ImageWidget + +! Introduction + +Le widget image affiche des images qui peuvent être désignées par une URL distante ou le titre d'un tiddler local qui contient l'image. + +! Contenu et attributs + +Le contenu du widget `<$image>` est ignoré. + +|!Attribut |!Description | +|source |L'URL de l'image, ou le titre d'un tiddler image | +|width |La largeur de l'image | +|height |La hauteur de l'image | +|tooltip |L'info-bulle à afficher au survol de l'image | +|alt |Le texte alternatif associé à l'image | +|class |Les classes CSS à assigner à l'élément `` | + +La valeur de la largeur et de la hauteur peut être attribuée en pixels (c-à-d "23" ou "23px") ou en pourcentages (c-à-d "23%"). Ces deux attributs sont optionnels et s'ils sont absents le navigateur utilisera des règles CSS pour retailler l'image. + +! Images externes et champ ''_canonical_uri'' + +Lorsqu'il est utilisé pour afficher des images contenues dans des tiddlers, le widget opère dans deux modes distincts<<:>> + +* Si le champ ''_canonical_uri'' est présent, il est utilisé en tant qu'attribut ''src'' de la balise `` générée et le champ ''text'' est ignoré. +* En l'absence du champ ''_canonical_uri'', le widget image génère une balise `` qui encode les données de l'image directement dans une URI de type `data:`. + +Plus de détails ici<<:>> <>. diff --git a/editions/fr-FR/tiddlers/Images in WikiText.tid b/editions/fr-FR/tiddlers/Images in WikiText.tid new file mode 100644 index 000000000..da490c20b --- /dev/null +++ b/editions/fr-FR/tiddlers/Images in WikiText.tid @@ -0,0 +1,69 @@ +caption: Images +created: 20131205160221762 +fr-title: Images en WikiTexte +modified: 20220304132738271 +tags: WikiText [[Working with TiddlyWiki]] +title: Images in WikiText +type: text/vnd.tiddlywiki + +! Intégration d'image + +Les images peuvent être affichées avec la syntaxe <> suivante, selon que l'image soit déjà incluse dans un tiddler ou pointe vers une source externe : + +``` +[img[Motovun Jack.jpg]] +ou [img[https://tiddlywiki.com/favicon.ico]] +``` + +Il est également possible d'insérer des tiddlers d'images grâce à la barre d'outils d'édition. Cliquez sur ''Image'' (<<.icon $:/core/images/picture>>) et choisissez une image. + +Si la source de l'image correspond au titre d'un tiddler, alors le tiddler est affiché directement. Autrement elle est interprétée comme une URL et la balise HTML `` est générée avec l'URL dans l'attribut `src`. + +Une info-bulle, visible au survol par la souris, peut être ajoutée<<:>> + +``` +[img[Et voilà l'info-bulle|Motovun Jack.jpg]] +``` + +Les attributs `width` (largeur) et `height` (hauteur) ainsi que `class` pour les classes CSS sont disponibles<<:>> + +``` +[img width=32 [Motovun Jack.jpg]] +[img width=32 class="tc-image" [Motovun Jack.jpg]] +``` + +Notez que les attributs peuvent être spécifiés par des transclusions ou des références à des variables<<:>> + +``` +[img width={{!!ma_largeur}} class=<> [Motovun Jack.jpg]] +``` + +La syntaxe d'image est un raccourci d'appel au <>. + +! Affichage des images par transclusion + +Vous pouvez aussi afficher l'image incluse dans un tiddler en transcluant ce tiddler. L'inconvénient de cette méthode est qu'il n'y a alors pas de moyen direct pour contrôler la taille de l'image. + +``` +{{Motovun Jack.jpg}} +``` + +Affichera<<:>> + +{{Motovun Jack.jpg}} + +! Images en lien +``` +<$link to="HelloThere" tooltip="Info-bulle personnalisée">{{$:/core/icon}} +``` + +Affichera<<:>> + +<$link to="HelloThere" tooltip="Info-bulle personnalisée">{{$:/core/icon}} + +! Import d'images + +Utilisez le bouton <<.button import>> (dans l'onglet <<.sidebar-tab Outils>> de la barre latérale), ou directement un glisser-déposer pour importer une image. +Voir les détails ici<<:>> <> + +<<.from-version "5.2.0">> Vous pouvez aussi importer des images par copier-coller ou glisser-déposer dans l'éditeur de tiddler. diff --git a/editions/fr-FR/tiddlers/Images_in_WikiText.tid b/editions/fr-FR/tiddlers/Images_in_WikiText.tid deleted file mode 100644 index 23a119035..000000000 --- a/editions/fr-FR/tiddlers/Images_in_WikiText.tid +++ /dev/null @@ -1,48 +0,0 @@ -caption: Images -created: 20131205160221762 -fr-title: Les images dans WikiText -modified: 20150601074111435 -tags: WikiText [[Working with TiddlyWiki]] -title: Images in WikiText -type: text/vnd.tiddlywiki - -! Intégration d'image - -Les images peuvent être affichées avec WikiText avec la syntaxe suivante, selon que l'image soit déjà incluse dans un tiddler ou pointe vers une source externe : - -``` -[img[Sainte Anastasie.png]] -ou [img[https://tiddlywiki.com/favicon.ico]] -``` - -[img[Sainte Anastasie.png]] -ou [img[https://tiddlywiki.com/favicon.ico]] - -Si la source de l'image correspond au titre d'un tiddler, alors le tiddler est affiché directement. Autrement elle est interprétée comme une URL et la balise HTML `` est générée muni de l'attribut `src` contenant l'URL. - -Une info-bulle, visible au survol par la souris, peut être spécifiée, ainsi que les attributs `width` (largeur), `height` (hauteur) et la `class`  : - -``` -[img width=80 class="tc-image" [Sculpture époque médiévale - France - Gard - Sainte Anastasie|Sainte Anastasie.png]] -``` -[img width=80 class="tc-image" [Sculpture époque médiévale - France - Gard - Sainte Anastasie|Sainte Anastasie.png]] - -Noter aussi que les attributs peuvent être spécifiés par des transclusions ou des références à des variables: - -``` -[img width={{!!mywidth}} class=<> [Sainte Anastasie.png]] -``` - -> La syntaxe d'image est un raccourci d'appel à la fonctionnalité ImageWidget. - -! Affichage des images par transclusion - -Vous pouvez aussi afficher l'image incluse dans un tiddler en transcluant ce tiddler. L'inconvénient de cette méthode est qu'il n'y a alors pas de moyen directe pour contrôler la taille de l'image. - -``` -{{Sainte Anastasie.png}} -``` - -Affichera : - -{{Sainte Anastasie.png}} \ No newline at end of file diff --git a/editions/fr-FR/tiddlers/Linking in WikiText.tid b/editions/fr-FR/tiddlers/Linking in WikiText.tid index 3e826bd58..b5fad80c4 100644 --- a/editions/fr-FR/tiddlers/Linking in WikiText.tid +++ b/editions/fr-FR/tiddlers/Linking in WikiText.tid @@ -1,39 +1,128 @@ caption: Liens created: 20131205155230596 -fr-title: Liens avec WikiText -modified: 20150601094319226 +fr-title: Liens en WikiTexte +modified: 20220304013852623 +mon_texte: Ceci est le contenu du champ `mon_texte` tags: WikiText title: Linking in WikiText type: text/vnd.tiddlywiki -L'une des aptitudes-clé de WikiText est sa capacité à créer des liens vers d'autres mémos (appelés tiddlers) ou vers des sites externes. Il existe plusieurs moyens de les mettre en oeuvre : +L'une des aptitudes clés du <> est sa capacité à créer des liens vers d'autres mémos (appelés tiddlers) ou vers des sites externes. Il existe plusieurs moyens de les mettre en œuvre. -* Lien vers un tiddler via le titre : `[[Titre du Tiddler]]` -* Lien vers un tiddler avec libellé : `[[Texte à afficher|Titre du Tiddler]]` -* Pour les tiddlers conformes aux règles CamelCase, saisir leur titre génère automatiquement la création du lien -* Pour un lien vers un site externe, saisir l'URL complète du site : `https://tiddlywiki.com/` ou `[[TW5|https://tiddlywiki.com/]]` +! Liens manuels -Vous pouvez annuler la prise en compte du lien en le préfixant du signe `~`. - -Par exemple : - -<> - -Pour que cette syntaxe fonctionne, l'adresse URL doit être reconnue comme une URL, donc débuter par un protocole comme `http://` ou `file://`. Mais, vous pouvez forcer le lien externe sans cela en utilisant cette syntaxe : +Lien vers un tiddler par son titre<<:>> ``` -[ext[tiddlywiki.com]] - -[ext[libellé à afficher|tiddlywiki.com]] - -[ext[Faire un Don|bitcoin:1aabbdd....?amount=0.001]] +[[Titre de Tiddler]] ``` -! Personnaliser les Liens des Tiddlers +Pour changer le texte affiché par le lien<<:>> -Voir le LinkWidget pour plus de détail sur le widget sous-jacent utilisé pour implémenter les liens des tiddlers, et notamment les macros qui peuvent être utilisées pour personnaliser leur comportements. +``` +[[Texte à afficher|Titre du Tiddler]] +``` -! Personnaliser les Liens des Tiddlers +Les liens peuvent aussi être créés à l'aide de la barre d'outils d'édition. Cliquez sur le bouton <<.icon $:/core/images/link>> ''lien'', puis recherchez et sélectionnez un tiddler. -Voir le LinkWidget pour plus de détail sur le widget sous-jacent utilisé pour implémenter les liens des tiddlers, et notamment les macros qui peuvent être utilisées pour personnaliser leur comportements. +! Lien en <> + +Pour les tiddlers dont le titre respecte les règles de la [[notation chameau|CamelCase]], saisir leur titre sans l'encadrer entre doubles crochets suffit à créer automatiquement un lien. + +Il est possible de neutraliser un lien en le préfixant avec le symbole `~`. Par exemple<<:>> + +<> + +! Liens externes + +Pour inclure un lien vers une [[ressource Web externe|https://fr.wikipedia.org/wiki/Ressource_du_World_Wide_Web]] comme un site ou un fichier, il est nécessaire de saisir son [[URL|https://fr.wikipedia.org/wiki/Uniform_Resource_Locator]] //complète//, en incluant son [[sigle URI|https://fr.wikipedia.org/wiki/Uniform_Resource_Identifier]], par exemple un protocole comme `http://`, `file://` ou `mailto:`<<:>> + +``` +https://tiddlywiki.com/ + +[[TW5|https://tiddlywiki.com/languages/fr-FR/index.html]] + +[[Envoyez-moi un courriel|mailto:moi@ici.net]] + +[[Ouvrez le fichier|file:///c:/users/moi/index.html]] +``` + +Pour que cette syntaxe fonctionne, l'URL doit être reconnaissable en tant qu'URL. Dans le cas contraire elle est interprétée comme un titre de tiddler. Par conséquent, pour créer un lien vers une ressource localisée avec un chemin relatif, il faut utiliser la syntaxe étendue<<:>> + +``` +[ext[Ouvrir le fichier|index.html]] + +[ext[Ouvrir le fichier|./index.html]] + +[ext[Ouvrir le fichier|../README.md]] + +[ext[Ouvrir le fichier|c:\users\moi\index.html]] +``` + +La syntaxe étendue fonctionne aussi avec les URL complètes, même si dans ce cas elle n'est pas nécessaire<<:>> + +``` +[ext[https://tiddlywiki.com/]] + +[ext[TW5|https://tiddlywiki.com/languages/fr-FR/index.html]] + +[ext[Envoyez-moi un courriel|mailto:moi@ici.net]] + +[ext[Ouvrez le fichier|file:///c:/users/moi/index.html]] +``` + +Vous pouvez aussi utiliser la syntaxe étendue pour forcer l'interprétation en tant que lien externe<<:>> + +``` +[ext[Donnez|bitcoin:1aabbdd....?amount=0.001]] +``` + +! Personnalisation des liens + +Voir le <> pour plus de détails sur le widget sous-jacent utilisé pour implémenter les liens des tiddlers, et notamment les macros qui peuvent être utilisées pour personnaliser son comportement. + +! Génération de liens dynamiques + +Les <> ne se prêtent pas bien à la création de liens dynamiques. C'est parce que ce lien <><<:>> + + +``` +[[lien vers moi-même|Linking in WikiText]] +``` +est un raccourci qui utilise le <> et le <> ainsi<<:>> + +``` +<$link to="Linking in WikiText"> + <$text text="lien vers moi-même"/> + +``` +Comme le titre du lien ("lien vers moi-même") et la cible du lien ("Linking in WikiText") sont utilisés en tant qu'attributs de widgets, aucune expansion de <> ne peut avoir lieu. + +Par exemple, une tentative d'utilisation d'une [[référence|TextReference]] et d'une [[variable|Variables]] pour générer un lien dynamique comme ceci<<:>> + +<<.bad-example "`[[{{!!mon_texte}}|<>]]`">> + +revient à essayer d'utiliser les widgets Lien et Texte ainsi<<:>> + +<<.bad-example """``` +<$link to="<>"> + <$text text="{{!!mon_texte}}"/> + +```""">> + +ce qui ne fonctionnera pas comme espéré. Le contenu des attributs est placé entre guillemets et donc [[traité comme une valeur littérale|HTML in WikiText]] protégée contre l'expansion <>. Il sera donc affiché ainsi<<:>> + +>[[{{!!mon_texte}}|<>]] + +Afin d'obtenir l'effet désiré, le <> peut être utilisé explicitement ainsi<<:>> + +<>>{{!!mon_texte}}">> + +Autre exemple de [[construction dynamique de liens|Concatenating text and variables using macro substitution]]. + +! Liens internes aux tiddlers - <> + +Dans <> les liens ancrés peuvent cibler des points particuliers et des sections distinctes à l'intérieur même de tiddlers, qui aident le lecteur à naviguer dans le contenu des tiddlers les plus longs. + +Voir <> pour plus d'informations. diff --git a/editions/fr-FR/tiddlers/Styles and Classes in WikiText.tid b/editions/fr-FR/tiddlers/Styles and Classes in WikiText.tid index edd8db40b..37e289700 100644 --- a/editions/fr-FR/tiddlers/Styles and Classes in WikiText.tid +++ b/editions/fr-FR/tiddlers/Styles and Classes in WikiText.tid @@ -1,30 +1,31 @@ caption: Styles et Classes created: 20131205160532119 -modified: 20141116085003914 +fr-title: Styles et Classes en WikiTexte +modified: 20220304133607415 tags: WikiText title: Styles and Classes in WikiText type: text/vnd.tiddlywiki -You can use this construction to cause the wrapped content to be assigned specified CSS classes or styles: +Vous pouvez utiliser cette structure pour affecter un style ou des classes CSS au contenu encadré<<:>> -<> -Similar syntax is used to assign styles. For example: +Une syntaxe similaire permet d'affecter des styles. Par exemple<<:>> <> -Multiple styles and classes can be mixed. For example: +Plusieurs styles et classes peuvent être affectés en même temps<<:>> <> From f694f5ead731fbf323a3c1e97ac5337637108e70 Mon Sep 17 00:00:00 2001 From: FSpark Date: Wed, 9 Mar 2022 01:02:34 +0800 Subject: [PATCH 17/91] Signing the CLA (#6518) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 2944940e9..88b7d893b 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -479,3 +479,5 @@ Fred, @tw-FRed, 2021/12/04 @davout1806, 2021/12/17 @pmario, @TiddlyVee, 2022/02/26 + +@FSpark, 2022/03/08 \ No newline at end of file From 84ad7588296331452c571de81a9dbe219e364ca9 Mon Sep 17 00:00:00 2001 From: Mario Pietsch Date: Fri, 11 Mar 2022 17:33:58 +0100 Subject: [PATCH 18/91] Prepare tabs macro tests for future readability improvements (#6504) * prepare tabs macro test for future improvements * update tests for tabs-macro to check all possible parameters --- .../expected-html-tabs-horizontal-all.tid | 33 +++++++ .../expected-html-tabs-horizontal.tid | 43 ++++++++++ .../expected-html-tabs-vertical.tid | 43 ++++++++++ .../tests/test-wikitext-tabs-macro.js | 86 +++++++++++++++++++ 4 files changed, 205 insertions(+) create mode 100644 editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal-all.tid create mode 100644 editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal.tid create mode 100644 editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-vertical.tid create mode 100644 editions/test/tiddlers/tests/test-wikitext-tabs-macro.js diff --git a/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal-all.tid b/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal-all.tid new file mode 100644 index 000000000..6cd40a30a --- /dev/null +++ b/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal-all.tid @@ -0,0 +1,33 @@ +title: expected-html-tabs-horizontal-all +type: text/html +description: Horizontal tabs with all parameters active. This is the expected HTML output from a test in test-wikitext-tabs-macro.js + +

+ +

+
+ +
+
+
+

TabTwo

Text tab 2

+
+
+ +

\ No newline at end of file diff --git a/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal.tid b/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal.tid new file mode 100644 index 000000000..b64ce9941 --- /dev/null +++ b/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal.tid @@ -0,0 +1,43 @@ +title: expected-html-tabs-horizontal +type: text/html +description: Horizontal tabs test - This is the expected HTML output from a test in test-wikitext-tabs-macro.js + +

+ +

+
+ +
+
+
+

Text tab 2

+
+
+ +

\ No newline at end of file diff --git a/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-vertical.tid b/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-vertical.tid new file mode 100644 index 000000000..e352f4ef0 --- /dev/null +++ b/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-vertical.tid @@ -0,0 +1,43 @@ +title: expected-html-tabs-vertical +type: text/html +description: Vertical tabs test -- This is the expected HTML output from the test in test-wikitext-tabs-macro.js + +

+ +

+
+ +
+
+
+

Text tab 2

+
+
+ +

\ No newline at end of file diff --git a/editions/test/tiddlers/tests/test-wikitext-tabs-macro.js b/editions/test/tiddlers/tests/test-wikitext-tabs-macro.js new file mode 100644 index 000000000..9c015cf17 --- /dev/null +++ b/editions/test/tiddlers/tests/test-wikitext-tabs-macro.js @@ -0,0 +1,86 @@ +/*\ +title: test-wikitext-tabs-macro.js +type: application/javascript +tags: [[$:/tags/test-spec]] + +Tests the core tabs macro by comparing the HTML output with a stored template. +Intended to permit future readability improvements. + +Adding new functionality will probably change the "expected" html structure. + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +describe("Tabs-macro HTML tests", function() { + + var expected = $tw.wiki.getTiddler("expected-html-tabs-horizontal"), + expectedAll = $tw.wiki.getTiddler("expected-html-tabs-horizontal-all"), + expectedVert = $tw.wiki.getTiddler("expected-html-tabs-vertical"), + coreTabsTiddler = $tw.wiki.getTiddler("$:/core/macros/tabs"); + + // Create a wiki + var wiki = new $tw.Wiki(); + + // Add a couple of tiddlers + wiki.addTiddler({title: "TabOne", text: "Text tab 1", caption:"t 1"}); + wiki.addTiddler({title: "TabTwo", text: "Text tab 2", caption:"t 2"}); + // TabThree shows description used in button-template instead of caption + wiki.addTiddler({title: "TabThree", text: "Text tab 3", caption:"t 3", description:"desc"}); + // Tab Four has no caption field, so title will be used + wiki.addTiddler({title: "TabFour", text: "Text tab 4"}); + + // Template tiddlers + wiki.addTiddler({ title: "body-template", + text: '!! <>\n\n<$transclude tiddler=<> mode="block"/>'}); + wiki.addTiddler({ title: "button-template", + text: '<$transclude tiddler=<> field="description"><$transclude tiddler=<> field="caption"><$macrocall $name="currentTab" $type="text/plain" $output="text/plain"/>'}); + // tabs macro cloned, to be used with \\import + wiki.addTiddler({title: "tabs-macro-definition", text: coreTabsTiddler.fields.text}); + + // horizontal tabs test uses `tabsList`, `default` and `state` -- unnamed params + wiki.addTiddler({title: "test-tabs-macro-horizontal", text: '\\import [[tabs-macro-definition]]\n<>'}); + + // horizontal tabs test adds `template`, `buttonTemplate` and `explicitState` as named params + wiki.addTiddler({title: "test-tabs-macro-horizontal-all", text: '\\import [[tabs-macro-definition]]\n<>'}); + + // vertical tabs test. Same params as test 1 + wiki.addTiddler({title: "test-tabs-macro-vertical", text: '\\import [[tabs-macro-definition]]\n<>'}); + + /* ----------------- + / Run the tests + --------------------*/ + // horizontal + it("should render horizontal tabs v5.2.1", function() { + expect(wiki.renderTiddler("text/html","test-tabs-macro-horizontal")).toBe(expected.fields.text); + }); + + it("should render horizontal tabs macro with all parameters modified V5.2.1", function() { + expect(wiki.renderTiddler("text/html","test-tabs-macro-horizontal-all")).toBe(expectedAll.fields.text); + }); + + // vertical + it("should render tabs vertical tabs v5.2.1", function() { + expect(wiki.renderTiddler("text/html","test-tabs-macro-vertical")).toBe(expectedVert.fields.text); + }); + + // Future tests + // horizontal + xit("should render 'horizontal' tabs from v5.2.2 and up with whitespace trim", function() { + expect(wiki.renderTiddler("text/html","test-tabs-macro-horizontal")).toBe(expected.fields.text.replace(/\n/g,"")); + }); + + xit("should render 'horizontal' tabs from v5.2.2 and up with whitespace trim", function() { + expect(wiki.renderTiddler("text/html","test-tabs-macro-horizontal-all")).toBe(expectedAll.fields.text.replace(/\n/g,"")); + }); + + // vertical + xit("should render 'vertical' tabs from v5.2.2 and up with whitespace trim", function() { + expect(wiki.renderTiddler("text/html","test-tabs-macro-vertical")).toBe(expectedVert.fields.text.replace(/\n/g,"")); + }); +}); + +})(); From 2a38b15a29857ef593c889373fa3e36615137b18 Mon Sep 17 00:00:00 2001 From: Marxsal Date: Fri, 11 Mar 2022 11:15:28 -0800 Subject: [PATCH 19/91] Add files via upload (#6524) See GG discussion. There are, of course, many tiddlers that need this treatment. --- .../tiddlers/community/plugins/TiddlyClip by buggyjay.tid | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/community/plugins/TiddlyClip by buggyjay.tid b/editions/tw5.com/tiddlers/community/plugins/TiddlyClip by buggyjay.tid index 22bed3a4b..a9a8ca4f9 100644 --- a/editions/tw5.com/tiddlers/community/plugins/TiddlyClip by buggyjay.tid +++ b/editions/tw5.com/tiddlers/community/plugins/TiddlyClip by buggyjay.tid @@ -1,14 +1,14 @@ created: 20140910102845245 -modified: 20210106151027576 +modified: 20220311184412211 tags: [[Community Plugins]] title: TiddlyClip by buggyjay type: text/vnd.tiddlywiki url: http://tiddlyclip.tiddlyspot.com -BuggyJay's TiddlyClip browser extension for [[Firefox]] permits clipping of text and graphics from web pages: +~BuggyJay's ~TiddlyClip browser extension for Firefox permits clipping of text and graphics from web pages: {{!!url}} <<< -TiddlyClip allows parts of webpages to be clipped into a TiddlyWiki, and consists of two parts, the browser addon and the TiddlyWiki plugin. The addon is completely memoryless, any configuration is determined by the current TiddlyWiki that the user has select to work with (we say that the addon is docked to the TiddlyWiki). TiddlyClip is designed to work (in a basic mode) without configuration. Once the addon and plugin are installed, all the user has to do is select which TW to dock to. +~TiddlyClip allows parts of webpages to be clipped into a ~TiddlyWiki, and consists of two parts, the browser addon and the ~TiddlyWiki plugin. The addon is completely memoryless, any configuration is determined by the current ~TiddlyWiki that the user has select to work with (we say that the addon is docked to the ~TiddlyWiki). ~TiddlyClip is designed to work (in a basic mode) without configuration. Once the addon and plugin are installed, all the user has to do is select which TW to dock to. <<< From 347355128b8c7b0434df3bc621860c5745e4e82d Mon Sep 17 00:00:00 2001 From: Guang Li Date: Sun, 13 Mar 2022 01:09:22 +0800 Subject: [PATCH 20/91] Update cla-individual.md (#6526) --- licenses/cla-individual.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 88b7d893b..c87cd4ae6 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -480,4 +480,6 @@ Fred, @tw-FRed, 2021/12/04 @pmario, @TiddlyVee, 2022/02/26 -@FSpark, 2022/03/08 \ No newline at end of file +@FSpark, 2022/03/08 + +Guang Li, @oflg, 2022/03/12 From 3f0fb7163534290c490583016441f9fd004fab47 Mon Sep 17 00:00:00 2001 From: Guang Li Date: Sun, 13 Mar 2022 01:09:47 +0800 Subject: [PATCH 21/91] use Cascade to set dynannotate ViewTemplate (#6520) --- plugins/tiddlywiki/dynannotate/examples/viewtemplate.tid | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/tiddlywiki/dynannotate/examples/viewtemplate.tid b/plugins/tiddlywiki/dynannotate/examples/viewtemplate.tid index 5922fd8d3..a0b99eb79 100644 --- a/plugins/tiddlywiki/dynannotate/examples/viewtemplate.tid +++ b/plugins/tiddlywiki/dynannotate/examples/viewtemplate.tid @@ -16,14 +16,13 @@ Once enabled, this example demonstrates several features: <$button> -<$action-setfield $tiddler="$:/core/ui/ViewTemplate/body" $field="text" $value={{$:/plugins/tiddlywiki/dynannotate/examples/viewtemplate/text}}/> -<$action-setfield $tiddler="$:/core/ui/ViewTemplate/body" $field="tags" $value="$:/tags/ViewTemplate"/> +<$action-setfield $tiddler="$:/config/ViewTemplateTitleFilters/dynannotate" tags="$:/tags/ViewTemplateTitleFilter" text="[[$:/plugins/tiddlywiki/dynannotate/examples/viewtemplate/text]]" list-before="$:/config/ViewTemplateBodyFilters/default"/> Click here to use the custom view template <$button> -<$action-deletetiddler $tiddler="$:/core/ui/ViewTemplate/body"/> +<$action-deletetiddler $tiddler="$:/config/ViewTemplateTitleFilters/dynannotate"/> Click here to revert to the core view template -<$codeblock code={{$:/plugins/tiddlywiki/dynannotate/examples/viewtemplate/text}}/> +<$codeblock code={{$:/plugins/tiddlywiki/dynannotate/examples/viewtemplate/text}}/> \ No newline at end of file From 1d8c538e452b6f5b8302032add19a2aca9dd567f Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Mon, 14 Mar 2022 09:56:23 +0000 Subject: [PATCH 22/91] Eventcatcher widget: add "matchSelector" attribute (#6523) * Initial Commit * Allow matchSelector to be used even if selector attribute isn't used --- core/modules/widgets/eventcatcher.js | 70 ++++++++++--------- .../tiddlers/widgets/EventCatcherWidget.tid | 12 ++-- 2 files changed, 44 insertions(+), 38 deletions(-) diff --git a/core/modules/widgets/eventcatcher.js b/core/modules/widgets/eventcatcher.js index 7a905d51e..2087cef59 100644 --- a/core/modules/widgets/eventcatcher.js +++ b/core/modules/widgets/eventcatcher.js @@ -46,6 +46,7 @@ EventWidget.prototype.render = function(parent,nextSibling) { $tw.utils.each(this.types,function(type) { domNode.addEventListener(type,function(event) { var selector = self.getAttribute("selector"), + matchSelector = self.getAttribute("matchSelector"), actions = self.getAttribute("$"+type) || self.getAttribute("actions-"+type), stopPropagation = self.getAttribute("stopPropagation","onaction"), selectedNode = event.target, @@ -56,46 +57,49 @@ EventWidget.prototype.render = function(parent,nextSibling) { if(selectedNode.nodeType === 3) { selectedNode = selectedNode.parentNode; } + // Check that the selected node matches any matchSelector + if(matchSelector && !$tw.utils.domMatchesSelector(selectedNode,matchSelector)) { + return false; + } if(selector) { // Search ancestors for a node that matches the selector while(!$tw.utils.domMatchesSelector(selectedNode,selector) && selectedNode !== domNode) { selectedNode = selectedNode.parentNode; } - // If we found one, copy the attributes as variables, otherwise exit - if($tw.utils.domMatchesSelector(selectedNode,selector)) { - // Only set up variables if we have actions to invoke - if(actions) { - $tw.utils.each(selectedNode.attributes,function(attribute) { - variables["dom-" + attribute.name] = attribute.value.toString(); - }); - //Add a variable with a popup coordinate string for the selected node - variables["tv-popup-coords"] = "(" + selectedNode.offsetLeft + "," + selectedNode.offsetTop +"," + selectedNode.offsetWidth + "," + selectedNode.offsetHeight + ")"; - - //Add variables for offset of selected node - variables["tv-selectednode-posx"] = selectedNode.offsetLeft.toString(); - variables["tv-selectednode-posy"] = selectedNode.offsetTop.toString(); - variables["tv-selectednode-width"] = selectedNode.offsetWidth.toString(); - variables["tv-selectednode-height"] = selectedNode.offsetHeight.toString(); - - if(event.clientX && event.clientY) { - //Add variables for event X and Y position relative to selected node - selectedNodeRect = selectedNode.getBoundingClientRect(); - variables["event-fromselected-posx"] = (event.clientX - selectedNodeRect.left).toString(); - variables["event-fromselected-posy"] = (event.clientY - selectedNodeRect.top).toString(); - - //Add variables for event X and Y position relative to event catcher node - catcherNodeRect = self.domNode.getBoundingClientRect(); - variables["event-fromcatcher-posx"] = (event.clientX - catcherNodeRect.left).toString(); - variables["event-fromcatcher-posy"] = (event.clientY - catcherNodeRect.top).toString(); - - //Add variables for event X and Y position relative to the viewport - variables["event-fromviewport-posx"] = event.clientX.toString(); - variables["event-fromviewport-posy"] = event.clientY.toString(); - } - } - } else { + // Exit if we didn't find one + if(selectedNode === domNode) { return false; } + // Only set up variables if we have actions to invoke + if(actions) { + $tw.utils.each(selectedNode.attributes,function(attribute) { + variables["dom-" + attribute.name] = attribute.value.toString(); + }); + //Add a variable with a popup coordinate string for the selected node + variables["tv-popup-coords"] = "(" + selectedNode.offsetLeft + "," + selectedNode.offsetTop +"," + selectedNode.offsetWidth + "," + selectedNode.offsetHeight + ")"; + + //Add variables for offset of selected node + variables["tv-selectednode-posx"] = selectedNode.offsetLeft.toString(); + variables["tv-selectednode-posy"] = selectedNode.offsetTop.toString(); + variables["tv-selectednode-width"] = selectedNode.offsetWidth.toString(); + variables["tv-selectednode-height"] = selectedNode.offsetHeight.toString(); + + if(event.clientX && event.clientY) { + //Add variables for event X and Y position relative to selected node + selectedNodeRect = selectedNode.getBoundingClientRect(); + variables["event-fromselected-posx"] = (event.clientX - selectedNodeRect.left).toString(); + variables["event-fromselected-posy"] = (event.clientY - selectedNodeRect.top).toString(); + + //Add variables for event X and Y position relative to event catcher node + catcherNodeRect = self.domNode.getBoundingClientRect(); + variables["event-fromcatcher-posx"] = (event.clientX - catcherNodeRect.left).toString(); + variables["event-fromcatcher-posy"] = (event.clientY - catcherNodeRect.top).toString(); + + //Add variables for event X and Y position relative to the viewport + variables["event-fromviewport-posx"] = event.clientX.toString(); + variables["event-fromviewport-posy"] = event.clientY.toString(); + } + } } // Execute our actions with the variables if(actions) { diff --git a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid index 7f5e9a4d7..48738bc02 100644 --- a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid @@ -1,5 +1,5 @@ created: 20201123113532200 -modified: 20211031180336257 +modified: 20220311154749139 tags: Widgets TriggeringWidgets title: EventCatcherWidget type: text/vnd.tiddlywiki @@ -12,11 +12,12 @@ type: text/vnd.tiddlywiki The event catcher widget traps DOM-initiated Javascript events dispatched within its child content, and allows invoking a series of ActionWidgets in response to those events. -In order for the events to be trapped they must: +In order for the events to be trapped: -* be of one of the events specified in the event catcher widget's `events` attribute -* arise within a DOM node specified by the widget's `selector` attribute -* support event bubbling +* The event must be of one of the events specified in the event catcher widget's `events` attribute +* The event must target a DOM node with an ancestor that matches the widget's `selector` attribute +* <<.from-version "5.2.2">> Optionally, the DOM node targetted by the event must also match the widgets `matchSelector` attribute +* The event must support event bubbling Use of the event catcher widget is beneficial when using large numbers of other trigger widgets such as the ButtonWidget is causing performance problems. The workflow it enables is akin to what is referred to as "event delegation" in JavaScript parlance. @@ -26,6 +27,7 @@ The content of the `<$eventcatcher>` widget is displayed normally. |!Attribute |!Description | |selector |A CSS selector. Only events originating inside a DOM node with this selector will be trapped | +|matchSelector |<<.from-version "5.2.2">> An optional CSS selector. Only events targetting DOM nodes matching this selector will be trapped | |//{any attributes starting with $}// |<<.from-version "5.2.0">> Each attribute name (excluding the $) specifies the name of an event, and the value specifies the action string to be invoked. For example: `$click=<>` | |tag |Optional. The HTML element the widget creates to capture the events, defaults to:
» `span` when parsed in inline-mode
» `div` when parsed in block-mode | |class |Optional. A CSS class name (or names) to be assigned to the widget HTML element | From 28a91aafa74da04842dbff4b8d0eb7a8dad5dbaa Mon Sep 17 00:00:00 2001 From: Mario Pietsch Date: Tue, 15 Mar 2022 13:35:58 +0100 Subject: [PATCH 23/91] Button Widget: ensure changes to "default" attribute trigger a refresh --- core/modules/widgets/button.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/widgets/button.js b/core/modules/widgets/button.js index 4b96e6b2b..ad9de9c92 100644 --- a/core/modules/widgets/button.js +++ b/core/modules/widgets/button.js @@ -247,7 +247,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of */ ButtonWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); - if(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled) { + if(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled || changedAttributes.defaultSetValue) { this.refreshSelf(); return true; } else if(changedAttributes["class"]) { From c741978e959c2608fa01dcd881d47194ccdf79b8 Mon Sep 17 00:00:00 2001 From: Mario Pietsch Date: Wed, 16 Mar 2022 12:57:56 +0100 Subject: [PATCH 24/91] Fix the button default fix (#6531) --- core/modules/widgets/button.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/widgets/button.js b/core/modules/widgets/button.js index ad9de9c92..107977ac0 100644 --- a/core/modules/widgets/button.js +++ b/core/modules/widgets/button.js @@ -247,7 +247,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of */ ButtonWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); - if(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled || changedAttributes.defaultSetValue) { + if(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled || changedAttributes["default"]) { this.refreshSelf(); return true; } else if(changedAttributes["class"]) { From 22fd1ca630c21e606c8016f369d6b8bd9f733604 Mon Sep 17 00:00:00 2001 From: Mario Pietsch Date: Wed, 16 Mar 2022 13:38:49 +0100 Subject: [PATCH 25/91] Improve Filters doc and add "Learn more about how to use Filters" link to every operator reference tiddler (#6533) --- .../tw5.com/tiddlers/concepts/Filters.tid | 24 +++++++++++-------- .../tiddlers/system/operator-template.tid | 9 ++++--- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/editions/tw5.com/tiddlers/concepts/Filters.tid b/editions/tw5.com/tiddlers/concepts/Filters.tid index 83449d5b6..1105cf1fe 100644 --- a/editions/tw5.com/tiddlers/concepts/Filters.tid +++ b/editions/tw5.com/tiddlers/concepts/Filters.tid @@ -1,23 +1,27 @@ created: 20130827080000000 -modified: 20150221225414000 +list: [[Introduction to filter notation]] [[Filter Syntax]] +modified: 20220316120141494 tags: Reference Concepts title: Filters type: text/vnd.tiddlywiki -list: [[Introduction to filter notation]] [[Filter Syntax]] + +\define openAdvancedSearch() +<$action-setfield $tiddler="$:/state/tab--1498284803" text="$:/core/ui/AdvancedSearch/Filter"/> +<$action-setfield $tiddler="$:/temp/advancedsearch/input" text="[tag[Filters]]"/> +\end You can think of TiddlyWiki as a database in which the records are tiddlers. A database typically provides a way of discovering which records match a given pattern, and in ~TiddlyWiki this is done with filters. A <<.def filter>> is a concise notation for selecting a particular [[set of tiddlers|Title Selection]], known as its <<.def "output">>. Whenever ~TiddlyWiki encounters a filter, it calculates the output. Further work can then be done with just those tiddlers, such as [[counting|CountWidget]] or [[listing|ListWidget]] them. -The following example passes a filter to the <<.mlink list-links>> macro to display a list of all tiddlers whose titles start with the letter H: +The following example passes a filter to the <<.mlink list-links>> macro to display a list of all tiddlers whose titles are <<.olink2 tagged tag>> with the word <<.word Filters>>: -> `<>` +<>""" >> -A filter's output can change as tiddlers are added and deleted in the wiki. ~TiddlyWiki recalculates on the fly, automatically updating any filter-based counts or lists as well. +A filter output can change as tiddlers are added and deleted in the wiki. ~TiddlyWiki recalculates on the fly, automatically updating any filter-based counts or lists as well. -[[Advanced Search|$:/AdvancedSearch]] has a <<.advancedsearch-tab Filter>> tab that makes it easy to experiment with filters. +''Find out more:'' -;Find out more: -* [[Introduction to filter notation]] -- a step-by-step walkthrough -* [[Filter Syntax]] -- the detailed technical rules -* [[Filter Operators]] -- the available methods of filtering +* <$linkcatcher message="tm-navigate" actions=<> >[[Advanced Search|$:/AdvancedSearch]] -- has a <<.advancedsearch-tab Filter>> tab that makes it easy to experiment with filters. + +* [[Filtered Transclusions|Transclusion in WikiText]] -- If you want to use filter results in your text diff --git a/editions/tw5.com/tiddlers/system/operator-template.tid b/editions/tw5.com/tiddlers/system/operator-template.tid index fa9c9fe04..7d7ba9311 100644 --- a/editions/tw5.com/tiddlers/system/operator-template.tid +++ b/editions/tw5.com/tiddlers/system/operator-template.tid @@ -1,8 +1,8 @@ created: 20150203173506000 -modified: 20150203181725000 -title: $:/editions/tw5.com/operator-template -tags: $:/tags/ViewTemplate list-before: $:/core/ui/ViewTemplate/body +modified: 20220316121232243 +tags: $:/tags/ViewTemplate +title: $:/editions/tw5.com/operator-template \define .op-place() <$macrocall $name=".if" @@ -71,6 +71,9 @@ list-before: $:/core/ui/ViewTemplate/body
+ +[[Learn more about how to use Filters|Filters]] + <$list filter="[all[current]has[from-version]]" variable="listItem"> <$macrocall $name=".from-version" version={{!!from-version}}/> From b5edaae1f44f8bf7add1b444dee9f65f148e76e2 Mon Sep 17 00:00:00 2001 From: Mario Pietsch Date: Wed, 16 Mar 2022 16:30:06 +0100 Subject: [PATCH 26/91] Fix the Advanced search link. ... (#6534) --- editions/tw5.com/tiddlers/concepts/Filters.tid | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/concepts/Filters.tid b/editions/tw5.com/tiddlers/concepts/Filters.tid index 1105cf1fe..b9fec39fc 100644 --- a/editions/tw5.com/tiddlers/concepts/Filters.tid +++ b/editions/tw5.com/tiddlers/concepts/Filters.tid @@ -1,6 +1,6 @@ created: 20130827080000000 list: [[Introduction to filter notation]] [[Filter Syntax]] -modified: 20220316120141494 +modified: 20220316145511797 tags: Reference Concepts title: Filters type: text/vnd.tiddlywiki @@ -8,6 +8,7 @@ type: text/vnd.tiddlywiki \define openAdvancedSearch() <$action-setfield $tiddler="$:/state/tab--1498284803" text="$:/core/ui/AdvancedSearch/Filter"/> <$action-setfield $tiddler="$:/temp/advancedsearch/input" text="[tag[Filters]]"/> +<$action-setfield $tiddler="$:/temp/advancedsearch" text="[tag[Filters]]"/> \end You can think of TiddlyWiki as a database in which the records are tiddlers. A database typically provides a way of discovering which records match a given pattern, and in ~TiddlyWiki this is done with filters. From b529e69289ae9027ba032d5782cd752757cd4bbf Mon Sep 17 00:00:00 2001 From: FlashSystems Date: Thu, 17 Mar 2022 18:06:24 +0100 Subject: [PATCH 27/91] Add a cascade for rendering fields within the Edit Template (#6511) * Allow the rendering of fields to be extended This commit extends the `$:/core/ui/EditTemplate/fields` tiddler to use a new cascade (Field Editor Cascade) to allow customizing the rendering of the field editor. It provides a default element for the cascade that displays the standard EditTextWidget as a fallback. That way, the implementation is completely backwards compatible. The `currentTiddler` and `currentField` variables are available in the transcluded tiddler. This has the additional benefit, that not only the `EditTextWidget` can be used. The user can use a dropdown-list or even something completely crazy. As long as it can be put into a tiddler that updates the field, it will be fine. * Make `select` Tags in Fields look like the rest This patch updates the CSS to make `tc-edit-texteditor` usable on `select`-tags as well. I'm not sure what `-webkit-appearance: none;` is for, but it hides the DropDown-arrow in Chrome and makes the select-tag hard to discover. I've changed the css to only apply it to the input tag. Maybe it can be removed altogether. * Add documentation for the Field Editor Cascade --- core/language/en-GB/ControlPanel.multids | 4 ++- core/ui/ControlPanel/Cascades/FieldEditor.tid | 9 ++++++ core/ui/EditTemplate/fieldEditor-default.tid | 3 ++ core/ui/EditTemplate/fields.tid | 10 +++--- core/wiki/config/FieldEditorFilters.multids | 4 +++ .../tw5.com/tiddlers/concepts/Cascades.tid | 1 + ...stomizing EditTemplate Field Rendering.tid | 31 +++++++++++++++++++ .../concepts/Field Editor Cascade.tid | 17 ++++++++++ themes/tiddlywiki/snowwhite/base.tid | 3 +- themes/tiddlywiki/vanilla/base.tid | 11 +++++-- 10 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 core/ui/ControlPanel/Cascades/FieldEditor.tid create mode 100644 core/ui/EditTemplate/fieldEditor-default.tid create mode 100644 core/wiki/config/FieldEditorFilters.multids create mode 100644 editions/tw5.com/tiddlers/concepts/Customizing EditTemplate Field Rendering.tid create mode 100644 editions/tw5.com/tiddlers/concepts/Field Editor Cascade.tid diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids index f81ca0bbd..dec7c12df 100644 --- a/core/language/en-GB/ControlPanel.multids +++ b/core/language/en-GB/ControlPanel.multids @@ -36,6 +36,8 @@ EditorTypes/Hint: These tiddlers determine which editor is used to edit specific EditorTypes/Type/Caption: Type EditTemplateBody/Caption: Edit Template Body EditTemplateBody/Hint: This rule cascade is used by the default edit template to dynamically choose the template for editing the body of a tiddler. +FieldEditor/Caption: Field Editor +FieldEditor/Hint: This rules cascade is used to dynamically choose the template for rendering a tiddler field based on its name. It is used within the Edit Template. Info/Caption: Info Info/Hint: Information about this TiddlyWiki KeyboardShortcuts/Add/Prompt: Type shortcut here @@ -226,4 +228,4 @@ Tools/Download/Full/Caption: Download full wiki ViewTemplateBody/Caption: View Template Body ViewTemplateBody/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the body of a tiddler. ViewTemplateTitle/Caption: View Template Title -ViewTemplateTitle/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the title of a tiddler. \ No newline at end of file +ViewTemplateTitle/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the title of a tiddler. diff --git a/core/ui/ControlPanel/Cascades/FieldEditor.tid b/core/ui/ControlPanel/Cascades/FieldEditor.tid new file mode 100644 index 000000000..46d3ecdf5 --- /dev/null +++ b/core/ui/ControlPanel/Cascades/FieldEditor.tid @@ -0,0 +1,9 @@ +title: $:/core/ui/ControlPanel/FieldEditor +tags: $:/tags/ControlPanel/Cascades +caption: {{$:/language/ControlPanel/FieldEditor/Caption}} + +\define lingo-base() $:/language/ControlPanel/FieldEditor/ + +<> + +{{$:/tags/FieldEditorFilter||$:/snippets/ListTaggedCascade}} diff --git a/core/ui/EditTemplate/fieldEditor-default.tid b/core/ui/EditTemplate/fieldEditor-default.tid new file mode 100644 index 000000000..8e27cdecf --- /dev/null +++ b/core/ui/EditTemplate/fieldEditor-default.tid @@ -0,0 +1,3 @@ +title: $:/core/ui/EditTemplate/fieldEditor/default + +<$edit-text tiddler=<> field=<> default="" class="tc-edit-texteditor" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"/> \ No newline at end of file diff --git a/core/ui/EditTemplate/fields.tid b/core/ui/EditTemplate/fields.tid index 91578a99a..5a1aca083 100644 --- a/core/ui/EditTemplate/fields.tid +++ b/core/ui/EditTemplate/fields.tid @@ -15,7 +15,7 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$ \end \define new-field-actions() -<$action-sendmessage $message="tm-add-field" $name={{{ [get[text]] }}} $value={{{ [get[text]] }}}/> +<$action-sendmessage $message="tm-add-field" $name={{{ [get[text]] }}} $value={{{ [get[text]] :map[get] }}}/> <$action-deletetiddler $filter="[] [] [] []"/> <$action-sendmessage $message="tm-focus-selector" $param=<>/> \end @@ -42,7 +42,7 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$ <$button tooltip=<>> <$action-sendmessage $message="tm-add-field" $name=<> -$value={{{ [get[text]] }}}/> +$value={{{ [get] }}}/> <$action-deletetiddler $filter="[] [] [] []"/> <> @@ -66,7 +66,7 @@ $value={{{ [get[text]] }}}/> <$text text=<>/>: <$keyboard key="((delete-field))" actions="""<$action-deletefield $field=<>/><$set name="currentTiddlerCSSescaped" value={{{ [escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<>/>"""> -<$edit-text tiddler=<> field=<> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"/> +<$transclude tiddler={{{ [] :cascade[all[shadows+tiddlers]tag[$:/tags/FieldEditorFilter]!is[draft]get[text]] :and[!is[blank]else{$:/core/ui/EditTemplate/fieldEditor/default}] }}} /> @@ -126,16 +126,18 @@ $value={{{ [get[text]] }}}/>
+<$let currentTiddler=<> currentField={{{ [get[text]] }}}> <$set name="currentTiddlerCSSescaped" value={{{ [escapecss[]] }}}> <$keyboard key="((add-field))" actions=<>> -<$edit-text tiddler=<> tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class="tc-edit-texteditor" tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"/> +<$transclude tiddler={{{ [] :cascade[all[shadows+tiddlers]tag[$:/tags/FieldEditorFilter]!is[draft]get[text]] :and[!is[blank]else{$:/core/ui/EditTemplate/fieldEditor/default}] }}} /> <$macrocall $name="new-field"/> +
diff --git a/core/wiki/config/FieldEditorFilters.multids b/core/wiki/config/FieldEditorFilters.multids new file mode 100644 index 000000000..f454e0bcc --- /dev/null +++ b/core/wiki/config/FieldEditorFilters.multids @@ -0,0 +1,4 @@ +title: $:/config/FieldEditorFilters/ +tags: $:/tags/FieldEditorFilter + +default: [[$:/core/ui/EditTemplate/fieldEditor/default]] diff --git a/editions/tw5.com/tiddlers/concepts/Cascades.tid b/editions/tw5.com/tiddlers/concepts/Cascades.tid index a3b49dcd2..bfc1fa41d 100644 --- a/editions/tw5.com/tiddlers/concepts/Cascades.tid +++ b/editions/tw5.com/tiddlers/concepts/Cascades.tid @@ -39,6 +39,7 @@ The TiddlyWiki core uses cascades to choose the following elements: |[[View Template Title Cascade]] |The template used to display the title of a particular tiddler (used by the default view template to display the tiddler title) | |[[View Template Body Cascade]] |The template used to display the view mode body of a particular tiddler (used by the default view template to display the tiddler body) | |[[Edit Template Body Cascade]] |The template used to display the edit mode body of a particular tiddler (used by the default edit template to display the tiddler body editor) | +|[[Field Editor Cascade]] |The template used to display the edit mode of a tiddler field (used by the default edit template to display the field editor) | You can see the current settings for each cascade in $:/ControlPanel under the ''Info'' -> ''Advanced'' -> ''Cascades'' tab. diff --git a/editions/tw5.com/tiddlers/concepts/Customizing EditTemplate Field Rendering.tid b/editions/tw5.com/tiddlers/concepts/Customizing EditTemplate Field Rendering.tid new file mode 100644 index 000000000..bc6a31f1f --- /dev/null +++ b/editions/tw5.com/tiddlers/concepts/Customizing EditTemplate Field Rendering.tid @@ -0,0 +1,31 @@ +created: 20220305183700000 +modified: 20220305183700000 +tags: Concepts +title: Customizing EditTemplate field rendering +type: text/vnd.tiddlywiki + +When editing a tiddler the [[EditTemplate|$:/core/ui/EditTemplate/fields]] normally renders fields as simple input boxes. To modify this behaviour, the [[cascade mechanism|Cascades]] can be used. Via the [[Field Editor Cascade|Field Editor Cascade]] the name of the tiddler used for rendering the field editor can be specified. The content of this tiddler is transcluded to represent the content of the field. + +To modify the appearance of all fields whose name ends with `-date` create a new tiddler and add the `$:/tags/FieldEditorFilter` tag to it. Add a `list-before` field and assign the value `$:/config/FieldEditorFilters/default`. Now you have to put the filter for the cascade into the tiddler's text field: `[regexp[-date$]then[$:/config/EditTemplateFields/Templates/dates]]`. This will transclude the tiddler named `$:/config/EditTemplateFields/Templates/dates` to render the input elements for all fields with names matching the regular expression. + +The variables `currentTiddler` and `currentField` are set to pass information about the tiddler and field that are edited to the transcluded tiddler. + +For example, a tiddler containing the following WikiText would render the field as an HTML input element of the type `date`. This will show a date picker for the fields on all modern browsers: + +``` +<$edit-text tiddler=<> field=<> type="date" class="tc-edit-texteditor" placeholder="Set your date" tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"/> +``` + +The `tabindex` and `cancelPopups` attributes make sure the HTML input element behaves exactly the default elements provided by TiddlyWiki. + +Not only the `EditTextWidget` can be used. A tiddler containing the following WikiText will render the field as a drop-down-list that allows the user to select the name of a tiddler. The name of the selected tiddler will be stored in the field. + +``` +<$select tiddler=<> field=<> class="tc-edit-texteditor" cancelPopups="yes"> + <$list filter='[all[tiddlers]sort[title]]'> + + + +``` + +The class `tc-edit-texteditor` should be used to style the `input` and `select` elements to match the theme of the TiddlyWiki installation. \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/concepts/Field Editor Cascade.tid b/editions/tw5.com/tiddlers/concepts/Field Editor Cascade.tid new file mode 100644 index 000000000..2211786e8 --- /dev/null +++ b/editions/tw5.com/tiddlers/concepts/Field Editor Cascade.tid @@ -0,0 +1,17 @@ +created: 20220305173931551 +modified: 20220305173931551 +tags: Cascades +title: Field Editor Cascade +type: text/vnd.tiddlywiki + +The field editor cascade is a [[cascade|Cascades]] used to choose a template for rendering the field editor within the [[EditTemplate|$:/core/ui/EditTemplate/fields]]. + +The default field editor cascade only contains one element: + +# Use the tiddler $:/core/ui/EditTemplate/fieldEditor/default to render the field + +See [[Customizing EditTemplate field rendering]] for more details. + +You can see the current settings for the field editor cascade in $:/ControlPanel under the ''Info'' -> ''Advanced'' -> ''Cascades'' -> ''Field Editor'' tab. + +<> \ No newline at end of file diff --git a/themes/tiddlywiki/snowwhite/base.tid b/themes/tiddlywiki/snowwhite/base.tid index 025aef8f5..3ffd2c3f8 100644 --- a/themes/tiddlywiki/snowwhite/base.tid +++ b/themes/tiddlywiki/snowwhite/base.tid @@ -36,7 +36,8 @@ tags: [[$:/tags/Stylesheet]] <> } -.tc-tiddler-frame input.tc-edit-texteditor { +.tc-tiddler-frame input.tc-edit-texteditor, +.tc-tiddler-frame select.tc-edit-texteditor { <> } diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 83798d8df..3bf8c3d4b 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -1197,15 +1197,22 @@ button.tc-btn-invisible.tc-remove-tag-button { .tc-tiddler-frame input.tc-edit-texteditor, .tc-tiddler-frame textarea.tc-edit-texteditor, -.tc-tiddler-frame iframe.tc-edit-texteditor { +.tc-tiddler-frame iframe.tc-edit-texteditor, +.tc-tiddler-frame select.tc-edit-texteditor { padding: 3px 3px 3px 3px; border: 1px solid <>; line-height: 1.3em; - -webkit-appearance: none; font-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}}; } .tc-tiddler-frame input.tc-edit-texteditor, +.tc-tiddler-frame textarea.tc-edit-texteditor, +.tc-tiddler-frame iframe.tc-edit-texteditor { + -webkit-appearance: none; +} + +.tc-tiddler-frame input.tc-edit-texteditor, +.tc-tiddler-frame select.tc-edit-texteditor, .tc-tiddler-frame textarea.tc-edit-texteditor { background-color: <>; } From 977ea24e96f0203958c95134fd6c7d012636c70a Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Thu, 17 Mar 2022 22:19:49 +0100 Subject: [PATCH 28/91] Fix: only refresh styles if the CSS has changed (#6537) --- core/modules/startup/render.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/core/modules/startup/render.js b/core/modules/startup/render.js index 682291365..e50512463 100644 --- a/core/modules/startup/render.js +++ b/core/modules/startup/render.js @@ -42,12 +42,17 @@ exports.startup = function() { $tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument}); $tw.styleContainer = $tw.fakeDocument.createElement("style"); $tw.styleWidgetNode.render($tw.styleContainer,null); + $tw.styleWidgetNode.assignedStyles = $tw.styleContainer.textContent; $tw.styleElement = document.createElement("style"); - $tw.styleElement.innerHTML = $tw.styleContainer.textContent; + $tw.styleElement.innerHTML = $tw.styleWidgetNode.assignedStyles; document.head.insertBefore($tw.styleElement,document.head.firstChild); $tw.wiki.addEventListener("change",$tw.perf.report("styleRefresh",function(changes) { if($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) { - $tw.styleElement.innerHTML = $tw.styleContainer.textContent; + var newStyles = $tw.styleContainer.textContent; + if(newStyles !== $tw.styleWidgetNode.assignedStyles) { + $tw.styleWidgetNode.assignedStyles = newStyles; + $tw.styleElement.innerHTML = $tw.styleWidgetNode.assignedStyles; + } } })); // Display the $:/core/ui/PageTemplate tiddler to kick off the display From c1f123499c2f9b9b67897302456bf9406ee1ae54 Mon Sep 17 00:00:00 2001 From: Bram Chen Date: Fri, 18 Mar 2022 16:26:00 +0800 Subject: [PATCH 29/91] Update chinese language files (#6539) * Add chinese translations for `FieldEditor/*` in ControlPanel.multids. --- languages/zh-Hans/ControlPanel.multids | 2 ++ languages/zh-Hant/ControlPanel.multids | 2 ++ 2 files changed, 4 insertions(+) diff --git a/languages/zh-Hans/ControlPanel.multids b/languages/zh-Hans/ControlPanel.multids index 64f25e841..767ff52d5 100644 --- a/languages/zh-Hans/ControlPanel.multids +++ b/languages/zh-Hans/ControlPanel.multids @@ -36,6 +36,8 @@ EditorTypes/Hint: 这些条目决定使用哪个编辑器来编辑特定条目 EditorTypes/Type/Caption: 类型 EditTemplateBody/Caption: 编辑模板主体 EditTemplateBody/Hint: 默认的编辑模板使用此规则级联,动态选择模板来编辑条目的主体。 +FieldEditor/Caption: 字段编辑器 +FieldEditor/Hint: 此规则级联用于根据名称,动态选择用于呈现一个条目字段的模板。其用于编辑模板中。 Info/Caption: 信息 Info/Hint: 有关此 TiddlyWiki 的信息 KeyboardShortcuts/Add/Prompt: 在此输入快捷键 diff --git a/languages/zh-Hant/ControlPanel.multids b/languages/zh-Hant/ControlPanel.multids index cdb57fe13..025c149b4 100644 --- a/languages/zh-Hant/ControlPanel.multids +++ b/languages/zh-Hant/ControlPanel.multids @@ -36,6 +36,8 @@ EditorTypes/Hint: 這些條目決定使用哪個編輯器來編輯特定條目 EditorTypes/Type/Caption: 類型 EditTemplateBody/Caption: 編輯範本主體 EditTemplateBody/Hint: 預設的編輯範本使用此規則級聯,動態選擇範本來編輯條目的主體。 +FieldEditor/Caption: 欄位編輯器 +FieldEditor/Hint: 此規則級聯用於根據名稱,動態選擇用於呈現一個條目欄位的範本。其用於編輯範本中。 Info/Caption: 資訊 Info/Hint: 有關此 TiddlyWiki 的資訊 KeyboardShortcuts/Add/Prompt: 在此輸入快捷鍵 From b0c4886d23e762c03be1e46868c2f4a1e6b1e2fc Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Fri, 18 Mar 2022 10:10:43 +0000 Subject: [PATCH 30/91] Fix action-listops unsafe use of $tw.utils.stringifyList() (#6540) Fixes #6535 --- core/modules/widgets/action-listops.js | 6 +- .../tiddlers/tests/test-action-widgets.js | 55 +++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 editions/test/tiddlers/tests/test-action-widgets.js diff --git a/core/modules/widgets/action-listops.js b/core/modules/widgets/action-listops.js index 802fcaa76..d8e274644 100644 --- a/core/modules/widgets/action-listops.js +++ b/core/modules/widgets/action-listops.js @@ -1,3 +1,5 @@ +const { makeTiddlerIterator } = require("../wiki"); + /*\ title: $:/core/modules/widgets/action-listops.js type: application/javascript @@ -71,8 +73,8 @@ ActionListopsWidget.prototype.invokeAction = function(triggeringWidget, } if(this.subfilter) { var inputList = this.wiki.getTiddlerList(this.target,field,index), - subfilter = $tw.utils.stringifyList(inputList) + " " + this.subfilter; - this.wiki.setText(this.target, field, index, $tw.utils.stringifyList(this.wiki.filterTiddlers(subfilter,this))); + subfilter = "[all[]] " + this.subfilter; + this.wiki.setText(this.target, field, index, $tw.utils.stringifyList(this.wiki.filterTiddlers(subfilter,this,this.wiki.makeTiddlerIterator(inputList)))); } if(this.filtertags) { var tiddler = this.wiki.getTiddler(this.target), diff --git a/editions/test/tiddlers/tests/test-action-widgets.js b/editions/test/tiddlers/tests/test-action-widgets.js new file mode 100644 index 000000000..12311521b --- /dev/null +++ b/editions/test/tiddlers/tests/test-action-widgets.js @@ -0,0 +1,55 @@ +/*\ +title: test-action-widgets.js +type: application/javascript +tags: [[$:/tags/test-spec]] + +Tests the action widgets. + +\*/ +(function(){ + +/* jslint node: true, browser: true */ +/* eslint-env node, browser, jasmine */ +/* eslint no-mixed-spaces-and-tabs: ["error", "smart-tabs"]*/ +/* global $tw, require */ +"use strict"; + +describe("Action widget tests", function() { + +function setupWiki(wikiOptions) { + wikiOptions = wikiOptions || {}; + // Create a wiki + var wiki = new $tw.Wiki(wikiOptions); + var tiddlers = [{ + title: "Root", + text: "Some dummy content" + }]; + wiki.addTiddlers(tiddlers); + wiki.addIndexersToWiki(); + var widgetNode = wiki.makeTranscludeWidget("Root",{document: $tw.fakeDocument, parseAsInline: true}); + var container = $tw.fakeDocument.createElement("div"); + widgetNode.render(container,null); + return { + wiki: wiki, + widgetNode: widgetNode, + contaienr: container + }; +} + +it("should handle the action-listops widget", function() { + var info = setupWiki(); + var invokeActions = function(actions) { + info.widgetNode.invokeActionString(actions,info.widgetNode,null,{}); + }; + invokeActions("<$action-setfield $tiddler='Output' $field='text' $value='Elephants!'/>"); + expect(info.wiki.getTiddlerText("Output")).toBe("Elephants!"); + invokeActions("<$action-listops $tiddler='Output' $field='text' $subfilter='+[toggle[-3]]'/>"); + expect(info.wiki.getTiddlerText("Output")).toBe("Elephants! -3"); + invokeActions("<$action-listops $tiddler='Output' $field='text' $subfilter='+[toggle[-3]]'/>"); + expect(info.wiki.getTiddlerText("Output")).toBe("Elephants!"); +}); + +}); + +})(); + From 681f22b66d1e37c1f4bbaf900ed41b3036e8ae81 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 18 Mar 2022 12:40:12 +0000 Subject: [PATCH 31/91] Remove erroneously included code See https://github.com/Jermolene/TiddlyWiki5/pull/6540#pullrequestreview-914281218 --- core/modules/widgets/action-listops.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/modules/widgets/action-listops.js b/core/modules/widgets/action-listops.js index d8e274644..b3d93a657 100644 --- a/core/modules/widgets/action-listops.js +++ b/core/modules/widgets/action-listops.js @@ -1,5 +1,3 @@ -const { makeTiddlerIterator } = require("../wiki"); - /*\ title: $:/core/modules/widgets/action-listops.js type: application/javascript From 7cc100b82d0d051a8240ce3fa874bb5afa97b940 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 20 Mar 2022 13:36:08 +0000 Subject: [PATCH 32/91] Introduce a tiddlywiki.org edition Using its own build script so that we can push it to https://github.com/TiddlyWiki/tiddlywiki.org-gh-pages --- .github/workflows/ci.yml | 1 + bin/build-tw-org.sh | 97 ++++++++++ .../tw.org/tiddlers/$__DefaultTiddlers.tid | 6 + editions/tw.org/tiddlers/$__SiteSubtitle.tid | 6 + editions/tw.org/tiddlers/$__SiteTitle.tid | 6 + editions/tw.org/tiddlers/$__StoryList.tid | 3 + editions/tw.org/tiddlers/$__favicon.ico.png | Bin 0 -> 6307 bytes .../tw.org/tiddlers/$__favicon.ico.png.meta | 4 + editions/tw.org/tiddlers/$__palette.tid | 6 + .../tw.org/tiddlers/$__palettes_BlueFlavour | 165 ++++++++++++++++++ .../tiddlers/$__palettes_BlueFlavour.meta | 8 + .../tw.org/tiddlers/$__palettes_FlowingSun | 165 ++++++++++++++++++ .../tiddlers/$__palettes_FlowingSun.meta | 8 + ...iddlywiki_vanilla_metrics_bodyfontsize.tid | 6 + ...dlywiki_vanilla_metrics_bodylineheight.tid | 6 + ...iddlywiki_vanilla_metrics_sidebarwidth.tid | 6 + ...ddlywiki_vanilla_options_sidebarlayout.tid | 6 + editions/tw.org/tiddlers/HelloThere.tid | 14 ++ .../tw.org/tiddlers/Table of Contents.tid | 11 ++ editions/tw.org/tiddlers/TiddlyWiki.tid | 8 + editions/tw.org/tiddlywiki.info | 31 ++++ 21 files changed, 563 insertions(+) create mode 100755 bin/build-tw-org.sh create mode 100644 editions/tw.org/tiddlers/$__DefaultTiddlers.tid create mode 100644 editions/tw.org/tiddlers/$__SiteSubtitle.tid create mode 100644 editions/tw.org/tiddlers/$__SiteTitle.tid create mode 100644 editions/tw.org/tiddlers/$__StoryList.tid create mode 100644 editions/tw.org/tiddlers/$__favicon.ico.png create mode 100644 editions/tw.org/tiddlers/$__favicon.ico.png.meta create mode 100644 editions/tw.org/tiddlers/$__palette.tid create mode 100644 editions/tw.org/tiddlers/$__palettes_BlueFlavour create mode 100644 editions/tw.org/tiddlers/$__palettes_BlueFlavour.meta create mode 100644 editions/tw.org/tiddlers/$__palettes_FlowingSun create mode 100644 editions/tw.org/tiddlers/$__palettes_FlowingSun.meta create mode 100644 editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodyfontsize.tid create mode 100644 editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodylineheight.tid create mode 100644 editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid create mode 100644 editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid create mode 100644 editions/tw.org/tiddlers/HelloThere.tid create mode 100644 editions/tw.org/tiddlers/Table of Contents.tid create mode 100644 editions/tw.org/tiddlers/TiddlyWiki.tid create mode 100644 editions/tw.org/tiddlywiki.info diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f377b3921..acce1b846 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,5 +70,6 @@ jobs: echo "TW5_BUILD_DETAILS=Built from branch '$TW5_BUILD_BRANCH' at commit $(git rev-parse HEAD) of $(git remote get-url origin) at $(date +'%F %T %Z')" >> $GITHUB_ENV - run: "./bin/build-site.sh" - run: "./bin/ci-push.sh" + - run: "./bin/build-tw-org.sh" env: GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }} diff --git a/bin/build-tw-org.sh b/bin/build-tw-org.sh new file mode 100755 index 000000000..7cebb3bc6 --- /dev/null +++ b/bin/build-tw-org.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +# Build tiddlywiki.org assets + +# Default to the version of TiddlyWiki installed in this repo + +if [ -z "$TWORG_BUILD_TIDDLYWIKI" ]; then + TWORG_BUILD_TIDDLYWIKI=./tiddlywiki.js +fi + +echo "Using TWORG_BUILD_TIDDLYWIKI as [$TWORG_BUILD_TIDDLYWIKI]" + +# Set up the build details + +if [ -z "$TWORG_BUILD_DETAILS" ]; then + TWORG_BUILD_DETAILS="$(git symbolic-ref --short HEAD)-$(git rev-parse HEAD) from $(git remote get-url origin)" +fi + +echo "Using TWORG_BUILD_DETAILS as [$TWORG_BUILD_DETAILS]" + +if [ -z "$TWORG_BUILD_COMMIT" ]; then + TWORG_BUILD_COMMIT="$(git rev-parse HEAD)" +fi + +echo "Using TWORG_BUILD_COMMIT as [$TWORG_BUILD_COMMIT]" + +# Set up the build output directory + +if [ -z "$TWORG_BUILD_OUTPUT" ]; then + TWORG_BUILD_OUTPUT=$(mktemp -d) +fi + +mkdir -p $TWORG_BUILD_OUTPUT + +if [ ! -d "$TWORG_BUILD_OUTPUT" ]; then + echo 'A valid TWORG_BUILD_OUTPUT environment variable must be set' + exit 1 +fi + +echo "Using TWORG_BUILD_OUTPUT as [$TWORG_BUILD_OUTPUT]" + +# Pull existing GitHub pages content + +git clone --depth=1 --branch=master "https://github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" output + +# Make the CNAME file that GitHub Pages requires + +echo "tiddlywiki.org" > $TWORG_BUILD_OUTPUT/CNAME + +# Delete any existing static content + +mkdir -p $TWORG_BUILD_OUTPUT/static +rm $TWORG_BUILD_OUTPUT/static/* + +# Put the build details into a .tid file so that it can be included in each build (deleted at the end of this script) + +echo -e -n "title: $:/build\ncommit: $TWORG_BUILD_COMMIT\n\n$TWORG_BUILD_DETAILS\n" > $TWORG_BUILD_OUTPUT/build.tid + +###################################################### +# +# tiddlywiki.org distribution +# +###################################################### + +# /index.html Main site +# /favicon.ico Favicon for main site +# /static.html Static rendering of default tiddlers +# /alltiddlers.html Static rendering of all tiddlers +# /static/* Static single tiddlers +# /static/static.css Static stylesheet +# /static/favicon.ico Favicon for static pages +node $TWORG_BUILD_TIDDLYWIKI \ + editions/tw.org \ + --verbose \ + --version \ + --load $TWORG_BUILD_OUTPUT/build.tid \ + --output $TWORG_BUILD_OUTPUT \ + --build favicon static index \ + || exit 1 + +# Delete the temporary build tiddler + +rm $TWORG_BUILD_OUTPUT/build.tid || exit 1 + +# Push output back to GitHub + +# Exit script immediately if any command fails +set -e + +cd output +git config --global user.email "actions@github.com" +git config --global user.name "GitHub Actions" +git add -A . +git commit --message "GitHub build: $GITHUB_RUN_NUMBER of $TW5_BUILD_BRANCH ($(date +'%F %T %Z'))" +git remote add deploy "https://$GH_TOKEN@github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" &>/dev/null +git push deploy master &>/dev/null +cd .. diff --git a/editions/tw.org/tiddlers/$__DefaultTiddlers.tid b/editions/tw.org/tiddlers/$__DefaultTiddlers.tid new file mode 100644 index 000000000..6b87b6bfa --- /dev/null +++ b/editions/tw.org/tiddlers/$__DefaultTiddlers.tid @@ -0,0 +1,6 @@ +created: 20220318102404333 +modified: 20220318102424312 +title: $:/DefaultTiddlers +type: text/vnd.tiddlywiki + +HelloThere \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__SiteSubtitle.tid b/editions/tw.org/tiddlers/$__SiteSubtitle.tid new file mode 100644 index 000000000..bc6aa7d9a --- /dev/null +++ b/editions/tw.org/tiddlers/$__SiteSubtitle.tid @@ -0,0 +1,6 @@ +created: 20220318102354724 +modified: 20220318102400979 +title: $:/SiteSubtitle +type: text/vnd.tiddlywiki + +community matters for ~TiddlyWiki \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__SiteTitle.tid b/editions/tw.org/tiddlers/$__SiteTitle.tid new file mode 100644 index 000000000..397f0ca40 --- /dev/null +++ b/editions/tw.org/tiddlers/$__SiteTitle.tid @@ -0,0 +1,6 @@ +created: 20220318102331011 +modified: 20220318104654044 +title: $:/SiteTitle +type: text/vnd.tiddlywiki + +[[tiddlywiki.org|HelloThere]] \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__StoryList.tid b/editions/tw.org/tiddlers/$__StoryList.tid new file mode 100644 index 000000000..55e7524f2 --- /dev/null +++ b/editions/tw.org/tiddlers/$__StoryList.tid @@ -0,0 +1,3 @@ +list: HelloThere +title: $:/StoryList +type: text/vnd.tiddlywiki \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__favicon.ico.png b/editions/tw.org/tiddlers/$__favicon.ico.png new file mode 100644 index 0000000000000000000000000000000000000000..c6b279307e6e01953987b393fe7b601fe719d4cb GIT binary patch literal 6307 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�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 L^>bP0l+XkKt3>sq literal 0 HcmV?d00001 diff --git a/editions/tw.org/tiddlers/$__favicon.ico.png.meta b/editions/tw.org/tiddlers/$__favicon.ico.png.meta new file mode 100644 index 000000000..70e5c86db --- /dev/null +++ b/editions/tw.org/tiddlers/$__favicon.ico.png.meta @@ -0,0 +1,4 @@ +created: 20220318165448102 +modified: 20220318165455332 +title: $:/favicon.ico +type: image/png \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__palette.tid b/editions/tw.org/tiddlers/$__palette.tid new file mode 100644 index 000000000..3f24b6c20 --- /dev/null +++ b/editions/tw.org/tiddlers/$__palette.tid @@ -0,0 +1,6 @@ +created: 20220318102711329 +modified: 20220318103746799 +title: $:/palette +type: text/vnd.tiddlywiki + +$:/palettes/FlowingSun \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__palettes_BlueFlavour b/editions/tw.org/tiddlers/$__palettes_BlueFlavour new file mode 100644 index 000000000..cb0f7ecb3 --- /dev/null +++ b/editions/tw.org/tiddlers/$__palettes_BlueFlavour @@ -0,0 +1,165 @@ +: Background Tones + +base03: #362b00 +base02: #423607 + +: Content Tones + +base01: #756e58 +base00: #837b65 +base0: #969483 +base1: #a1a193 + +: Background Tones + +base2: #d5e8ee +base3: #e3f6fd + +: Accent Colors + +yellow: #b58900 +orange: #cb4b16 +red: #dc322f +magenta: #d33682 +violet: #6c71c4 +blue: #268bd2 +cyan: #2aa198 +green: #859900 + +: Additional Tones (RA) + +base10: #bbc0c4 +violet-muted: #7c81b0 +blue-muted: #4e7baa + +yellow-hot: #ffcc44 +orange-hot: #eb6d20 +red-hot: #ff2222 +blue-hot: #2298ee +green-hot: #98ee22 + +: Palette + +: Do not use colour macro for background and foreground +background: #e3f6fd + download-foreground: <> + dragger-foreground: <> + dropdown-background: <> + modal-background: <> + sidebar-foreground-shadow: <> + tiddler-background: <> + tiddler-border: <> + tiddler-link-background: <> + tab-background-selected: <> + dropdown-tab-background-selected: <> +foreground: #837b65 + dragger-background: <> + tab-foreground: <> + tab-foreground-selected: <> + sidebar-tab-foreground-selected: <> + sidebar-tab-foreground: <> + sidebar-button-foreground: <> + sidebar-controls-foreground: <> + sidebar-foreground: <> +: base03 +: base02 +: base01 + alert-muted-foreground: <> +: base00 + code-foreground: <> + message-foreground: <> + tag-foreground: <> +: base0 + sidebar-tiddler-link-foreground: <> +: base1 + muted-foreground: <> + blockquote-bar: <> + dropdown-border: <> + sidebar-muted-foreground: <> + tiddler-title-foreground: <> + site-title-foreground: <> +: base2 + modal-footer-background: <> + page-background: <> + modal-backdrop: <> + notification-background: <> + code-background: <> + code-border: <> + pre-background: <> + pre-border: <> + sidebar-tab-background-selected: <> + table-header-background: <> + tag-background: <> + tiddler-editor-background: <> + tiddler-info-background: <> + tiddler-info-tab-background: <> + tab-background: <> + dropdown-tab-background: <> +: base3 + alert-background: <> + message-background: <> +: yellow +: orange +: red +: magenta + alert-highlight: <> +: violet + external-link-foreground: <> +: blue +: cyan +: green +: base10 + tiddler-controls-foreground: <> +: violet-muted + external-link-foreground-visited: <> +: blue-muted + primary: <> + download-background: <> + tiddler-link-foreground: <> + +alert-border: #b99e2f +dirty-indicator: #ff0000 +dropzone-background: rgba(0,200,0,0.7) +external-link-background-hover: inherit +external-link-background-visited: inherit +external-link-background: inherit +external-link-foreground-hover: inherit +message-border: #cfd6e6 +modal-border: #999999 +select-tag-background: +select-tag-foreground: +sidebar-controls-foreground-hover: +sidebar-muted-foreground-hover: +sidebar-tab-background: #c5d8de +sidebar-tiddler-link-foreground-hover: +static-alert-foreground: #aaaaaa +tab-border: #cccccc + modal-footer-border: <> + modal-header-border: <> + notification-border: <> + sidebar-tab-border: <> + tab-border-selected: <> + sidebar-tab-border-selected: <> +tab-divider: #d8d8d8 + sidebar-tab-divider: <> +table-border: #dddddd +table-footer-background: #a8a8a8 +tiddler-controls-foreground-hover: #888888 +tiddler-controls-foreground-selected: #444444 +tiddler-editor-border-image: #ffffff +tiddler-editor-border: #cccccc +tiddler-editor-fields-even: #e0e8e0 +tiddler-editor-fields-odd: #f0f4f0 +tiddler-info-border: #dddddd +tiddler-subtitle-foreground: #c0c0c0 +toolbar-new-button: +toolbar-options-button: +toolbar-save-button: +toolbar-info-button: +toolbar-edit-button: +toolbar-close-button: +toolbar-delete-button: +toolbar-cancel-button: +toolbar-done-button: +untagged-background: #999999 +very-muted-foreground: #888888 diff --git a/editions/tw.org/tiddlers/$__palettes_BlueFlavour.meta b/editions/tw.org/tiddlers/$__palettes_BlueFlavour.meta new file mode 100644 index 000000000..fd9464ec2 --- /dev/null +++ b/editions/tw.org/tiddlers/$__palettes_BlueFlavour.meta @@ -0,0 +1,8 @@ +color-scheme: light +created: 20220318103222838 +description: Simple colours +modified: 20220318103723059 +name: Blue Flavour +tags: $:/tags/Palette +title: $:/palettes/BlueFlavour +type: application/x-tiddler-dictionary \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__palettes_FlowingSun b/editions/tw.org/tiddlers/$__palettes_FlowingSun new file mode 100644 index 000000000..7eb0b71ce --- /dev/null +++ b/editions/tw.org/tiddlers/$__palettes_FlowingSun @@ -0,0 +1,165 @@ +: Background Tones + +base03: #36002b +base02: #420736 + +: Content Tones + +base01: #75586e +base00: #83657b +base0: #968394 +base1: #a193a1 + +: Background Tones + +base2: #d5eee8 +base3: #e3fdf6 + +: Accent Colors + +yellow: #b58900 +orange: #cb4b16 +red: #dc322f +magenta: #d33682 +violet: #6c71c4 +blue: #268bd2 +cyan: #2aa198 +green: #859900 + +: Additional Tones (RA) + +base10: #bbc0c4 +violet-muted: #7c81b0 +blue-muted: #4e7baa + +yellow-hot: #ffcc44 +orange-hot: #eb6d20 +red-hot: #ff2222 +blue-hot: #2298ee +green-hot: #98ee22 + +: Palette + +: Do not use colour macro for background and foreground +background: #e3fdf6 + download-foreground: <> + dragger-foreground: <> + dropdown-background: <> + modal-background: <> + sidebar-foreground-shadow: <> + tiddler-background: <> + tiddler-border: <> + tiddler-link-background: <> + tab-background-selected: <> + dropdown-tab-background-selected: <> +foreground: #83657b + dragger-background: <> + tab-foreground: <> + tab-foreground-selected: <> + sidebar-tab-foreground-selected: <> + sidebar-tab-foreground: <> + sidebar-button-foreground: <> + sidebar-controls-foreground: <> + sidebar-foreground: <> +: base03 +: base02 +: base01 + alert-muted-foreground: <> +: base00 + code-foreground: <> + message-foreground: <> + tag-foreground: <> +: base0 + sidebar-tiddler-link-foreground: <> +: base1 + muted-foreground: <> + blockquote-bar: <> + dropdown-border: <> + sidebar-muted-foreground: <> + tiddler-title-foreground: <> + site-title-foreground: <> +: base2 + modal-footer-background: <> + page-background: <> + modal-backdrop: <> + notification-background: <> + code-background: <> + code-border: <> + pre-background: <> + pre-border: <> + sidebar-tab-background-selected: <> + table-header-background: <> + tag-background: <> + tiddler-editor-background: <> + tiddler-info-background: <> + tiddler-info-tab-background: <> + tab-background: <> + dropdown-tab-background: <> +: base3 + alert-background: <> + message-background: <> +: yellow +: orange +: red +: magenta + alert-highlight: <> +: violet + external-link-foreground: <> +: blue +: cyan +: green +: base10 + tiddler-controls-foreground: <> +: violet-muted + external-link-foreground-visited: <> +: blue-muted + primary: <> + download-background: <> + tiddler-link-foreground: <> + +alert-border: #b99e2f +dirty-indicator: #ff0000 +dropzone-background: rgba(0,200,0,0.7) +external-link-background-hover: inherit +external-link-background-visited: inherit +external-link-background: inherit +external-link-foreground-hover: inherit +message-border: #cfd6e6 +modal-border: #999999 +select-tag-background: +select-tag-foreground: +sidebar-controls-foreground-hover: +sidebar-muted-foreground-hover: +sidebar-tab-background: #c5ded8 +sidebar-tiddler-link-foreground-hover: +static-alert-foreground: #aaaaaa +tab-border: #cccccc + modal-footer-border: <> + modal-header-border: <> + notification-border: <> + sidebar-tab-border: <> + tab-border-selected: <> + sidebar-tab-border-selected: <> +tab-divider: #d8d8d8 + sidebar-tab-divider: <> +table-border: #dddddd +table-footer-background: #a8a8a8 +tiddler-controls-foreground-hover: #888888 +tiddler-controls-foreground-selected: #444444 +tiddler-editor-border-image: #ffffff +tiddler-editor-border: #cccccc +tiddler-editor-fields-even: #e0e8e0 +tiddler-editor-fields-odd: #f0f4f0 +tiddler-info-border: #dddddd +tiddler-subtitle-foreground: #c0c0c0 +toolbar-new-button: +toolbar-options-button: +toolbar-save-button: +toolbar-info-button: +toolbar-edit-button: +toolbar-close-button: +toolbar-delete-button: +toolbar-cancel-button: +toolbar-done-button: +untagged-background: #999999 +very-muted-foreground: #888888 diff --git a/editions/tw.org/tiddlers/$__palettes_FlowingSun.meta b/editions/tw.org/tiddlers/$__palettes_FlowingSun.meta new file mode 100644 index 000000000..44227d545 --- /dev/null +++ b/editions/tw.org/tiddlers/$__palettes_FlowingSun.meta @@ -0,0 +1,8 @@ +color-scheme: light +created: 20220318102714713 +description: Easy colours +modified: 20220318103305299 +name: Flowing Sun +tags: $:/tags/Palette +title: $:/palettes/FlowingSun +type: application/x-tiddler-dictionary \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodyfontsize.tid b/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodyfontsize.tid new file mode 100644 index 000000000..7ca54d393 --- /dev/null +++ b/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodyfontsize.tid @@ -0,0 +1,6 @@ +created: 20220318165540214 +modified: 20220318165540353 +title: $:/themes/tiddlywiki/vanilla/metrics/bodyfontsize +type: text/vnd.tiddlywiki + +17px \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodylineheight.tid b/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodylineheight.tid new file mode 100644 index 000000000..05b08e5d7 --- /dev/null +++ b/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodylineheight.tid @@ -0,0 +1,6 @@ +created: 20220318165545749 +modified: 20220318165545749 +title: $:/themes/tiddlywiki/vanilla/metrics/bodylineheight +type: text/vnd.tiddlywiki + +24px \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid b/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid new file mode 100644 index 000000000..13f316466 --- /dev/null +++ b/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid @@ -0,0 +1,6 @@ +created: 20220318165613356 +modified: 20220318165613356 +title: $:/themes/tiddlywiki/vanilla/metrics/sidebarwidth +type: text/vnd.tiddlywiki + +450px \ No newline at end of file diff --git a/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid b/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid new file mode 100644 index 000000000..1dd7585b7 --- /dev/null +++ b/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid @@ -0,0 +1,6 @@ +created: 20220318165602424 +modified: 20220318165602424 +title: $:/themes/tiddlywiki/vanilla/options/sidebarlayout +type: text/vnd.tiddlywiki + +fluid-fixed \ No newline at end of file diff --git a/editions/tw.org/tiddlers/HelloThere.tid b/editions/tw.org/tiddlers/HelloThere.tid new file mode 100644 index 000000000..e1968ca4b --- /dev/null +++ b/editions/tw.org/tiddlers/HelloThere.tid @@ -0,0 +1,14 @@ +created: 20220318104000046 +modified: 20220319080838250 +title: HelloThere +type: text/vnd.tiddlywiki + +This is the official hub for the TiddlyWiki community. + +Other official TiddlyWiki sites include: + +* [[tiddlywiki.com|https://tiddlywiki.com]] – user documentation +* [[talk.tiddlywiki.org|https://talk.tiddlywiki.org]] – user discussion forum +* [[links.tiddlywiki.org|https://links.tiddlywiki.org]] – collection of links collaboratively curated by the community +* [[tiddlywiki.com/dev|https://tiddlywiki.com/dev]] – internal JavaScript documentation + diff --git a/editions/tw.org/tiddlers/Table of Contents.tid b/editions/tw.org/tiddlers/Table of Contents.tid new file mode 100644 index 000000000..b708d2092 --- /dev/null +++ b/editions/tw.org/tiddlers/Table of Contents.tid @@ -0,0 +1,11 @@ +created: 20211230214957666 +modified: 20211230215118758 +tags: $:/tags/SideBar +title: Table of Contents +type: text/vnd.tiddlywiki + +
+ +<> + +
diff --git a/editions/tw.org/tiddlers/TiddlyWiki.tid b/editions/tw.org/tiddlers/TiddlyWiki.tid new file mode 100644 index 000000000..76b8a7c9a --- /dev/null +++ b/editions/tw.org/tiddlers/TiddlyWiki.tid @@ -0,0 +1,8 @@ +created: 20220318170042624 +modified: 20220318170209825 +title: TiddlyWiki +type: text/vnd.tiddlywiki + +TiddlyWiki is a rich, interactive tool for manipulating complex data with structure that doesn't easily fit into conventional tools like spreadsheets or wordprocessors. + +See [[tiddlywiki.com|https://tiddlywiki.com]] for more details \ No newline at end of file diff --git a/editions/tw.org/tiddlywiki.info b/editions/tw.org/tiddlywiki.info new file mode 100644 index 000000000..19b9b0947 --- /dev/null +++ b/editions/tw.org/tiddlywiki.info @@ -0,0 +1,31 @@ +{ + "description": "Content for https://tiddlywiki.org", + "plugins": [ + "tiddlywiki/internals", + "tiddlywiki/menubar" + ], + "themes": [ + "tiddlywiki/vanilla", + "tiddlywiki/snowwhite" + ], + "languages": [ + ], + "build": { + "index": [ + "--savetiddlers","[tag[external-image]]","images", + "--setfield","[tag[external-image]]","_canonical_uri","$:/core/templates/canonical-uri-external-image","text/plain", + "--setfield","[tag[external-image]]","text","","text/plain", + "--rendertiddler","$:/core/save/all","index.html","text/plain"], + "favicon": [ + "--savetiddler","$:/favicon.ico","favicon.ico", + "--savetiddler","$:/green_favicon.ico","static/favicon.ico"], + "static": [ + "--rendertiddler","$:/core/templates/static.template.html","static.html","text/plain", + "--rendertiddler","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain", + "--rendertiddlers","[!is[system]]","$:/core/templates/static.tiddler.html","static","text/plain", + "--rendertiddler","$:/core/templates/static.template.css","static/static.css","text/plain"] + }, + "config": { + "retain-original-tiddler-path": true + } +} From a8331f89094769c8e2266d682b02c9c988102bfa Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 20 Mar 2022 14:00:31 +0000 Subject: [PATCH 33/91] Triggering a build for testing purposes --- bin/build-tw-org.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-tw-org.sh b/bin/build-tw-org.sh index 7cebb3bc6..a25e771db 100755 --- a/bin/build-tw-org.sh +++ b/bin/build-tw-org.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Build tiddlywiki.org assets +# Build tiddlywiki.org assets. # Default to the version of TiddlyWiki installed in this repo From 1cb1e77785e009dc1bf89ee6072038935dff90e2 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 20 Mar 2022 14:13:01 +0000 Subject: [PATCH 34/91] Fix bug in 7cc100b82d0d051a8240ce3fa874bb5afa97b940 I HATE YAML! --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index acce1b846..566eb8a38 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,6 +70,6 @@ jobs: echo "TW5_BUILD_DETAILS=Built from branch '$TW5_BUILD_BRANCH' at commit $(git rev-parse HEAD) of $(git remote get-url origin) at $(date +'%F %T %Z')" >> $GITHUB_ENV - run: "./bin/build-site.sh" - run: "./bin/ci-push.sh" - - run: "./bin/build-tw-org.sh" env: GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }} + - run: "./bin/build-tw-org.sh" From 938419ba2c2e3a68aaf0df1f1acaba51d45664ab Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 20 Mar 2022 15:46:09 +0000 Subject: [PATCH 35/91] tw.org CI fixes --- editions/tw.org/tiddlywiki.info | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/editions/tw.org/tiddlywiki.info b/editions/tw.org/tiddlywiki.info index 19b9b0947..8df5a0fb3 100644 --- a/editions/tw.org/tiddlywiki.info +++ b/editions/tw.org/tiddlywiki.info @@ -17,8 +17,7 @@ "--setfield","[tag[external-image]]","text","","text/plain", "--rendertiddler","$:/core/save/all","index.html","text/plain"], "favicon": [ - "--savetiddler","$:/favicon.ico","favicon.ico", - "--savetiddler","$:/green_favicon.ico","static/favicon.ico"], + "--savetiddler","$:/favicon.ico","favicon.ico"], "static": [ "--rendertiddler","$:/core/templates/static.template.html","static.html","text/plain", "--rendertiddler","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain", From ecde2606ad7e715a8bf12f9fa8cc7b3703492938 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 20 Mar 2022 15:56:02 +0000 Subject: [PATCH 36/91] tw.org more CI fixes --- bin/build-tw-org.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/build-tw-org.sh b/bin/build-tw-org.sh index a25e771db..a2e7c02a4 100755 --- a/bin/build-tw-org.sh +++ b/bin/build-tw-org.sh @@ -41,7 +41,7 @@ echo "Using TWORG_BUILD_OUTPUT as [$TWORG_BUILD_OUTPUT]" # Pull existing GitHub pages content -git clone --depth=1 --branch=master "https://github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" output +git clone --depth=1 --branch=master "https://github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" $TWORG_BUILD_OUTPUT # Make the CNAME file that GitHub Pages requires @@ -87,11 +87,11 @@ rm $TWORG_BUILD_OUTPUT/build.tid || exit 1 # Exit script immediately if any command fails set -e -cd output +pushd $TWORG_BUILD_OUTPUT git config --global user.email "actions@github.com" git config --global user.name "GitHub Actions" git add -A . git commit --message "GitHub build: $GITHUB_RUN_NUMBER of $TW5_BUILD_BRANCH ($(date +'%F %T %Z'))" git remote add deploy "https://$GH_TOKEN@github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" &>/dev/null git push deploy master &>/dev/null -cd .. +popd From 97901d756e954d697a191075191f1ea52d285400 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 20 Mar 2022 17:01:05 +0000 Subject: [PATCH 37/91] tw.org more fixes --- bin/build-tw-org.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-tw-org.sh b/bin/build-tw-org.sh index a2e7c02a4..979f1e8a2 100755 --- a/bin/build-tw-org.sh +++ b/bin/build-tw-org.sh @@ -41,7 +41,7 @@ echo "Using TWORG_BUILD_OUTPUT as [$TWORG_BUILD_OUTPUT]" # Pull existing GitHub pages content -git clone --depth=1 --branch=master "https://github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" $TWORG_BUILD_OUTPUT +git clone --depth=1 --branch=main "https://github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" $TWORG_BUILD_OUTPUT # Make the CNAME file that GitHub Pages requires From 9df88bfda96cb54641f0b94c99921a3e1638cc01 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 20 Mar 2022 17:10:05 +0000 Subject: [PATCH 38/91] tw.org more CI fixes --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 566eb8a38..aff25fe55 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,3 +73,4 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }} - run: "./bin/build-tw-org.sh" + GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }} From 02f8713012fe1956ef3d3673db3fe32a60241339 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 20 Mar 2022 17:11:40 +0000 Subject: [PATCH 39/91] tw.org yet more CI fixes --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aff25fe55..8daf2f468 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,4 +73,5 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }} - run: "./bin/build-tw-org.sh" + env: GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }} From bc81195b5a4d8d89af85feebf03c3e668fb2cd9c Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 20 Mar 2022 17:31:07 +0000 Subject: [PATCH 40/91] tw.org just one more CI fix --- bin/build-tw-org.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-tw-org.sh b/bin/build-tw-org.sh index 979f1e8a2..eb76baa85 100755 --- a/bin/build-tw-org.sh +++ b/bin/build-tw-org.sh @@ -93,5 +93,5 @@ git config --global user.name "GitHub Actions" git add -A . git commit --message "GitHub build: $GITHUB_RUN_NUMBER of $TW5_BUILD_BRANCH ($(date +'%F %T %Z'))" git remote add deploy "https://$GH_TOKEN@github.com/TiddlyWiki/tiddlywiki.org-gh-pages.git" &>/dev/null -git push deploy master &>/dev/null +git push deploy main &>/dev/null popd From 075b2ab14989c07ad006bc5df559721ae88fe1fe Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Wed, 23 Mar 2022 09:36:10 +0000 Subject: [PATCH 41/91] Release note update --- editions/prerelease/tiddlers/Release 5.2.2.tid | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.2.tid b/editions/prerelease/tiddlers/Release 5.2.2.tid index 4764da5d8..61ff79557 100644 --- a/editions/prerelease/tiddlers/Release 5.2.2.tid +++ b/editions/prerelease/tiddlers/Release 5.2.2.tid @@ -13,6 +13,10 @@ type: text/vnd.tiddlywiki ! Highlights +!! <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6498">> support for secondary windows + +The [[WidgetMessage: tm-open-window]] now supports an optional `windowID` parameter so that opened windows can be closed with the new [[WidgetMessage: tm-close-window]] message. There is also a new [[WidgetMessage: tm-close-all-windows]] message which closes all secondary windows. + !! <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6421">> support for line breaks within filtered transcluded attributes To improve readability, it is now possible to use newlines as whitespace within filtered transcluded attributes of HTML elements and widgets. For example: @@ -47,6 +51,7 @@ This is a major upgrade to the latest version of highlight.js. The new version h * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6428">> issue with ~LaTeX content within Markdown tiddlers * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6457">> incorrect handling of dropdown classes in the menu bar plugin +* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6520">> the Dynannotate plugin to use the new [[View Template Body Cascade]] to avoid modifying the default view template. ! Translation improvements @@ -82,12 +87,14 @@ This is a major upgrade to the latest version of highlight.js. The new version h ! Hackability Improvements +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6511">> [[Field Editor Cascade]] for customising how fields are displayed in the edit template * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6388">> support for directly specifying style properties on [[HTML elements|HTML in WikiText]] (for example, `
`) * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/commit/54cfda76ee353190f1cf0210b9071894fb1a5690">> support for ''code-body'' field set to ''yes'' to trigger display of a tiddler in the code view * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6410">> support to [[WidgetMessage: tm-scroll]] for scrolling without animating * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/commit/1d16206188ebd5ca7481a7f565bf5fc4c08239fd">> support for [[WidgetMessage: tm-relink-tiddler]] * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6470">> [[WidgetMessage: tm-open-window]] to support 'top' and 'left' parameters - +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6523">> new ''matchSelector'' attribute to the EventCatcherWidget + ! Developer Improvements * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6409">> support for ''renderEnd()'' method for storyviews @@ -100,6 +107,7 @@ This is a major upgrade to the latest version of highlight.js. The new version h ! Performance Improvements * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6327">> support for caching the [[listed Operator]] +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6537">> stylesheet handling to avoid unnecessary refreshes ! Bug Fixes @@ -108,6 +116,8 @@ This is a major upgrade to the latest version of highlight.js. The new version h * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6395">> processing of $:/tags/RawMarkupWikified/TopHead tiddlers * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6398">> issue whereby renaming tags could result in duplicate tags * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6440">> search results obscured on narrow screens +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6540">> ActionListOpsWidget bug with input list items starting with `-`, `+`, `~`, `:` or other character with a special meaning in filters +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/28a91aafa74da04842dbff4b8d0eb7a8dad5dbaa">> (and [[here|https://github.com/Jermolene/TiddlyWiki5/pull/6531]]) refreshing of the ButtonWidget when the `default` attribute changes ! Acknowledgements @@ -116,16 +126,20 @@ This is a major upgrade to the latest version of highlight.js. The new version h * <> * <> * <> +* <> * <> * <> * <> +* <> * <> +* <> * <> * <> * <> * <> * <> * <> +* <> * <> * <> * <> From 5db5d711d32085feb3224650966ea43eda661933 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Wed, 23 Mar 2022 10:15:54 +0000 Subject: [PATCH 42/91] Fix release note typo --- editions/prerelease/tiddlers/Release 5.2.2.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.2.tid b/editions/prerelease/tiddlers/Release 5.2.2.tid index 61ff79557..60dc214d9 100644 --- a/editions/prerelease/tiddlers/Release 5.2.2.tid +++ b/editions/prerelease/tiddlers/Release 5.2.2.tid @@ -116,7 +116,7 @@ This is a major upgrade to the latest version of highlight.js. The new version h * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6395">> processing of $:/tags/RawMarkupWikified/TopHead tiddlers * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6398">> issue whereby renaming tags could result in duplicate tags * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6440">> search results obscured on narrow screens -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6540">> ActionListOpsWidget bug with input list items starting with `-`, `+`, `~`, `:` or other character with a special meaning in filters +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6540">> ActionListopsWidget bug with input list items starting with `-`, `+`, `~`, `:` or other character with a special meaning in filters * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/28a91aafa74da04842dbff4b8d0eb7a8dad5dbaa">> (and [[here|https://github.com/Jermolene/TiddlyWiki5/pull/6531]]) refreshing of the ButtonWidget when the `default` attribute changes ! Acknowledgements From 25b2e708c99c811b0537c8da5770f73e0d3651a5 Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Wed, 23 Mar 2022 14:06:08 +0100 Subject: [PATCH 43/91] Fix typo in CSS for drafts list (#6552) Fixed typo in CSS for drafts list --- themes/tiddlywiki/vanilla/base.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 3bf8c3d4b..d79b9d788 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -2346,7 +2346,7 @@ html body.tc-body.tc-single-tiddler-window { border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid <>; - border-bottom-none; + border-bottom: none; background: <>; color: <>; fill: <>; From fe581a83b30b1aa94997269de9a77c9e8bef048c Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Wed, 23 Mar 2022 14:30:49 +0100 Subject: [PATCH 44/91] Fix nesting of block elements inside inline elements in the edit template (#6553) * Fix nesting of block elements inside inline elements in the edit template * Fix typo in previous commit --- core/ui/EditTemplate.tid | 4 ++-- core/ui/EditTemplate/body/default.tid | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/ui/EditTemplate.tid b/core/ui/EditTemplate.tid index bf99cd70c..32dde8587 100644 --- a/core/ui/EditTemplate.tid +++ b/core/ui/EditTemplate.tid @@ -14,8 +14,8 @@ title: $:/core/ui/EditTemplate
> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [is[tiddler]then[tc-tiddler-exists]] [is[missing]!is[shadow]then[tc-tiddler-missing]] [is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [is[system]then[tc-tiddler-system]] [{!!class}] [tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}> <$fieldmangler> <$vars storyTiddler=<> newTagNameTiddler=<> newFieldNameTiddler=<> newFieldValueTiddler=<> newFieldNameInputTiddler=<> newFieldNameSelectionTiddler=<> newTagNameInputTiddler=<> newTagNameSelectionTiddler=<> typeInputTiddler=<> typeSelectionTiddler=<>> -<$keyboard key="((cancel-edit-tiddler))" actions=<>> -<$keyboard key="((save-tiddler))" actions=<>> +<$keyboard key="((cancel-edit-tiddler))" actions=<> tag="div"> +<$keyboard key="((save-tiddler))" actions=<> tag="div"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]" variable="listItem"> <$set name="tv-config-toolbar-class" filter="[] [encodeuricomponent[]addprefix[tc-btn-]]"> <$transclude tiddler=<>/> diff --git a/core/ui/EditTemplate/body/default.tid b/core/ui/EditTemplate/body/default.tid index c9dadc6c4..f182c69bf 100644 --- a/core/ui/EditTemplate/body/default.tid +++ b/core/ui/EditTemplate/body/default.tid @@ -10,7 +10,7 @@ $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$ <$set name="edit-preview-state" value={{{ [{$:/config/ShowEditPreview/PerTiddler}!match[yes]then[$:/state/showeditpreview]] :else[] }}}> <$vars importTitle=<> importState=<> > -<$dropzone importTitle=<> autoOpenOnImport="no" contentTypesFilter={{$:/config/Editor/ImportContentTypesFilter}} class="tc-dropzone-editor" enable={{{ [{$:/config/DragAndDrop/Enable}match[no]] :else[subfilter{$:/config/Editor/EnableImportFilter}then[yes]else[no]] }}} filesOnly="yes" actions=<> ><$reveal stateTitle=<> type="match" text="yes"> +<$dropzone importTitle=<> autoOpenOnImport="no" contentTypesFilter={{$:/config/Editor/ImportContentTypesFilter}} class="tc-dropzone-editor" enable={{{ [{$:/config/DragAndDrop/Enable}match[no]] :else[subfilter{$:/config/Editor/EnableImportFilter}then[yes]else[no]] }}} filesOnly="yes" actions=<> ><$reveal stateTitle=<> type="match" text="yes" tag="div">
<$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/> @@ -28,7 +28,7 @@ $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
-<$reveal stateTitle=<> type="nomatch" text="yes"> +<$reveal stateTitle=<> type="nomatch" text="yes" tag="div"> <$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/> From a4dcd92f1b6ad4078784564c643a92ebd454f11e Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Wed, 23 Mar 2022 14:07:29 +0000 Subject: [PATCH 45/91] Update release note to include span -> div change --- editions/prerelease/tiddlers/Release 5.2.2.tid | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/editions/prerelease/tiddlers/Release 5.2.2.tid b/editions/prerelease/tiddlers/Release 5.2.2.tid index 60dc214d9..ac436e9e5 100644 --- a/editions/prerelease/tiddlers/Release 5.2.2.tid +++ b/editions/prerelease/tiddlers/Release 5.2.2.tid @@ -13,6 +13,12 @@ type: text/vnd.tiddlywiki ! Highlights +!! <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6553">> incorrectly nested `` and `
` elements + +Until now, TiddlyWiki's core page layout included several instances of inline `` elements containing block `
` elements, something that is technically invalid HTML. In practice, browsers have always handled these cases leniently to make the page work but it has also been unhelpful for developers to encountering invalid HTML constructions in their first interactions with TiddlyWiki. + +The immediate prompt for fixing the issue now is that Chrome v100 [[includes a change|https://chromium.googlesource.com/chromium/src/+/4a76c96d2a4021257e691058c1fe1fb60d9d8327]] that causes these misnested elements to be rendered correctly visually but to be unclickable in some situations. This change is [[reverted|https://chromium.googlesource.com/chromium/src/+/abadd1181ca70cf3d1ac7e7878d46b1d3173a2e0]] in Chrome v102. + !! <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6498">> support for secondary windows The [[WidgetMessage: tm-open-window]] now supports an optional `windowID` parameter so that opened windows can be closed with the new [[WidgetMessage: tm-close-window]] message. There is also a new [[WidgetMessage: tm-close-all-windows]] message which closes all secondary windows. From 7e85ec35d3aea7906754175f3a5e0015a3b63986 Mon Sep 17 00:00:00 2001 From: damscal <55465033+damscal@users.noreply.github.com> Date: Thu, 24 Mar 2022 08:02:33 +0100 Subject: [PATCH 46/91] Signing the CLA (#6555) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index c87cd4ae6..70a5868e1 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -483,3 +483,5 @@ Fred, @tw-FRed, 2021/12/04 @FSpark, 2022/03/08 Guang Li, @oflg, 2022/03/12 + +Dam S., @damscal, 2022/03/24 From 258f4acb105b324608b7f1c45f2c89d45fd36ccc Mon Sep 17 00:00:00 2001 From: damscal <55465033+damscal@users.noreply.github.com> Date: Thu, 24 Mar 2022 08:03:19 +0100 Subject: [PATCH 47/91] Docs typo (#6556) At the end of file, filerrunprefix --> filterrunprefix --- .../tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid b/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid index 443d5f893..72a4bec8d 100644 --- a/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid +++ b/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid @@ -7,4 +7,4 @@ title: Named Filter Run Prefix <$railroad text=<>/> -A named filter run prefix can precede any [[run|Filter Run]] of a [[filter expression|Filter Expression]] in place of a single-character prefix (`+`, `-` and so on). To create a new filter run prefix, create a [[Javascript module|Modules]] with a [[module-type|ModuleType]] of `filerrunprefix`. \ No newline at end of file +A named filter run prefix can precede any [[run|Filter Run]] of a [[filter expression|Filter Expression]] in place of a single-character prefix (`+`, `-` and so on). To create a new filter run prefix, create a [[Javascript module|Modules]] with a [[module-type|ModuleType]] of `filterrunprefix`. From bfa588217592a55c836ca7986812a02a2243b2bb Mon Sep 17 00:00:00 2001 From: Mario Pietsch Date: Thu, 24 Mar 2022 11:47:24 +0100 Subject: [PATCH 48/91] German translation adjustments (#6554) --- languages/de-DE/ControlPanel.multids | 17 +++++++++++++++++ languages/de-DE/Fields.multids | 11 ++++++----- languages/de-DE/SideBar.multids | 1 + 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/languages/de-DE/ControlPanel.multids b/languages/de-DE/ControlPanel.multids index ed5ef024d..5682ecabb 100644 --- a/languages/de-DE/ControlPanel.multids +++ b/languages/de-DE/ControlPanel.multids @@ -27,10 +27,17 @@ Basics/Tiddlers/Prompt: Anzahl Tiddler Basics/Title/Prompt: Titel dieses ~TiddlyWikis Basics/Username/Prompt: Benutzersignatur zum Editieren Basics/Version/Prompt: ~TiddlyWiki Version +Cascades/Caption: Kaskaden +Cascades/Hint: Diese Regeln werden dynamisch auf verschiedene Templates angewendet. Das Ergebnis einer Filter-Kaskade wird von der Filter Sequenz bestimmt, die als Erste ein Resultat zurück gibt. +Cascades/TagPrompt: Filter Tags: <$macrocall $name="tag" tag=<>/> EditorTypes/Caption: Editor Typen EditorTypes/Editor/Caption: Editor EditorTypes/Hint: Diese Tiddler definieren, welcher Editor für bestimmte Tiddler Typen (MIME-Type) verwendet werden soll. EditorTypes/Type/Caption: MIME-Type +EditTemplateBody/Caption: Edit Template "Körper" +EditTemplateBody/Hint: Diese Filter-Kaskade wird vom Standard "Edit Template" verwendet. Es wählt die Vorlage für den Textbereich aus. +FieldEditor/Caption: Feld Editor +FieldEditor/Hint: Diese Filter-Kaskade wird vom "Edit Template" zur Bestimmung der Vorlage für die "Feld Namen" verwendet. Info/Caption: Info Info/Hint: Informationen über dieses TiddlyWiki KeyboardShortcuts/Add/Prompt: Tastenkürzel hier eingeben @@ -191,6 +198,8 @@ Settings/TitleLinks/Yes/Description: Tiddler Titel als Link anzeigen. Settings/MissingLinks/Caption: Wiki-Links Settings/MissingLinks/Hint: Aktiviere Links zu fehlenden Tiddlern. zB: FehlenderTiddler [[Einführung]] Settings/MissingLinks/Description: Aktiviere Links zu fehlenden Tiddlern. +StoryTiddler/Caption: Story Tiddler +StoryTiddler/Hint: Diese Filter-Kaskade wird verwendet, um die Vorlage für den Tiddler im "Story River" auszuwählen. StoryView/Caption: Anzeige StoryView/Prompt: Ausgewählte Anzeige: Stylesheets/Caption: Stylesheets @@ -201,6 +210,10 @@ Theme/Caption: Theme Theme/Prompt: Ausgewähltes Theme: TiddlerFields/Caption: Tiddler Felder TiddlerFields/Hint: Hier finden Sie alle [[Felder|TiddlerFields]], die in diesem Wiki verwendet werden. Inklusive der Felder aus System-, exklusive Schatten-Tiddler. +TiddlerColour/Caption: Tiddler Farbe +TiddlerColour/Hint: Diese Filter-Kaskade wird verwendet, um die Farbe für das "Icon" und den "Tag" auszuwählen. +TiddlerIcon/Caption: Tiddler Icon +TiddlerIcon/Hint: Diese Filter-Kaskade wird verwendet, um die das Tiddler "Icon" auszuwählen. Toolbars/Caption: Toolbar Toolbars/EditToolbar/Caption: Edit Toolbar Toolbars/EditToolbar/Hint: Auswählen, welche Buttons im "Edit Modus" angezeigt werden. Verwenden Sie "Drag and Drop", um die Reihenfolge zu ändern @@ -212,3 +225,7 @@ Toolbars/EditorToolbar/Hint: Auswählen, welche Editorbuttons angezeigt werden s Toolbars/ViewToolbar/Caption: View Toolbar Toolbars/ViewToolbar/Hint: Auswählen, welche Buttons im "View Modus" angezeigt werden. Verwenden Sie "Drag and Drop", um die Reihenfolge zu ändern Tools/Download/Full/Caption: Herunterladen des ''gesamten Wikis'' +ViewTemplateBody/Caption: View Template Text +ViewTemplateBody/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um die Vorlage für den Tiddler Textbereich auszuwählen. +ViewTemplateTitle/Caption: View Template Titel +ViewTemplateTitle/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um die Vorlage für den Tiddler Titel auszuwählen. diff --git a/languages/de-DE/Fields.multids b/languages/de-DE/Fields.multids index afce70fb2..f1ae8eb29 100755 --- a/languages/de-DE/Fields.multids +++ b/languages/de-DE/Fields.multids @@ -2,26 +2,27 @@ title: $:/language/Docs/Fields/ _canonical_uri: Die komplette URI eines externen Foto Tiddlers. URI = Uniform Resource Identifier, Identifikator für Ressourcen im Internet. bag: Der Name eines ~TiddlyWeb "bags" von dem der Tiddler kam. +code-body: Das "View Template" wird den Tiddler Text als "Code" anzeigen, wenn dieses Feld auf: ''"yes"'' gesetzt wird. caption: Der Text, der auf "Tab-Buttons" angezeigt wird. -color: Der CSS Farbwert, der mit einem Tiddler assoziiert wird. +color: Der CSS Farbwert, der mit einem Tiddler assoziiert wird. component: Der Name einer Komponente, die für eine [[Alarm Anzeige|AlertMechanism]] verantwortlich ist. -current-tiddler: Wird verwendet um den "obersten" Tiddler in der [[Tiddler Historie|HistoryMechanism]] zwischen zu speichern. +current-tiddler: Wird verwendet um den "obersten" Tiddler in der [[Tiddler Historie|HistoryMechanism]] zwischen zu speichern. created: Datum an dem der Tiddler erstellt wurde. creator: Name des Erstellers dieses Tiddlers. dependents: Listet die Abhängigkeiten bei "plugins" auf. description: Die Beschreibung für ein "plugin" oder einen "modalen" Dialog. draft.of: Entwurf von - enthält den Titel des Tiddlers, zu dem dieser Entwurf-Tiddler gehört. -draft.title: Entwurf Titel - enthält den neuen Titel, wenn der Entwurf-Tiddler gespeichert wird. +draft.title: Entwurf Titel - enthält den neuen Titel, wenn der Entwurf-Tiddler gespeichert wird. footer: Der Fußnoten Text bei einem "~Wizard-Dialog" hide-body: Der Textbereich eines Tiddlers wird verborgen, wenn dieses Feld auf ''"yes"'' gesetzt wird icon: Der Titel eines ~Icon-Tiddlers, der mit diesem Tiddler verbunden ist. library: Wenn dieses Feld="yes" ist, dann soll der Tiddler als JavaScript Bibliothek gespeichert werden. list: Eine geordnete Tiddler Liste, die mit diesem Tiddler verbunden ist. list-before: Dient zum Einfügen von Tiddler Titeln in das "list" Feld. Wenn gesetzt, wird der neue Tiddler ''vor'' dem hier definierten Tiddler in die Liste eingefügt. Wenn vorhanden, aber leer, dann wird der neue Tiddler an den Anfang der Liste gesetzt. -list-after: Dient zum Einfügen von Tiddler Titeln in das "list" Feld. Wenn gesetzt, wird der neue Tiddler ''nach'' dem hier definierten Tiddler in die Liste eingefügt. +list-after: Dient zum Einfügen von Tiddler Titeln in das "list" Feld. Wenn gesetzt, wird der neue Tiddler ''nach'' dem hier definierten Tiddler in die Liste eingefügt. modified: Datum, an dem der Tiddler zuletzt verändert wurde. modifier: Name der Person, die den Tiddler zuletzt verändert hat. -name: Ein Menschen lesbarer Name für einen "plugin" Tiddler. +name: Ein Menschen lesbarer Name für einen "plugin" Tiddler. plugin-priority: Ein numerischer Wert, der die Priorität eines "plugins" festlegt. plugin-type: Der Typ eines "plugins". revision: Die Revisionsnummer eines Tiddlers. Wird von einem Server vergeben. diff --git a/languages/de-DE/SideBar.multids b/languages/de-DE/SideBar.multids index fe9fc2fa0..c698fab45 100644 --- a/languages/de-DE/SideBar.multids +++ b/languages/de-DE/SideBar.multids @@ -3,6 +3,7 @@ title: $:/language/SideBar/ All/Caption: Alle Contents/Caption: Inhalt Drafts/Caption: Entwurf +Explorer/Caption: Explorer Missing/Caption: Fehlend More/Caption: Mehr Open/Caption: Offen From ffd35993696568070bc2b6fee352077ba46d57e4 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 25 Mar 2022 13:00:14 +0000 Subject: [PATCH 49/91] New Release Banner for v5.2.2 Thanks to Elise Springer: https://groups.google.com/g/tiddlywiki/c/y6OMgyQx2-k/m/laL5MszxAQAJ --- .../tiddlers/images/New Release Banner.png | Bin 147662 -> 43443 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/editions/tw5.com/tiddlers/images/New Release Banner.png b/editions/tw5.com/tiddlers/images/New Release Banner.png index 1119f0af3a39832c318b04e65a5e5adaa35529ba..65efe1a96c6fdc38b272bcc76a40178b565db3fc 100644 GIT binary patch delta 42687 zcmX@t$hrA4(*#K#HUBVo9P)Vo9p4l97QC zy3)x9n6pJ4)6z2YGD|8I0y6ST@)ZpA3=Q;5C)=}#3t%WuW69(=daALDfq}7U@^u!a z`r92dH1ssYy=Si$4CWR;HO);?LZDZR$BCiRmKY zAs4TH4AAiKt=@k$>DX(#&0%kg|3`f;iU~h(NyDao*@~#RiXe*}v%-Dv3B3ylx|sS< zIB~n0xX3=kuMson`}$4$c{xQ_=v(tv-y0LxJcEhkwH`{`gytvm?BMiIho9BP;b7eMv z?2kLHOles!U%cy+xNXhA%hv}}wf5kAGqcLPJpo5LivJrv{rPXBVOjJ_F@1<3hw7Q7 zWRkZ}^{d=h|7K_ZJoSWG$#GvcPIOy*F~elmhQ^LdGPS$@zua^D+`oR1e|Q62Kis_p zcIDzsd3}r5Ic1X=&RwY#>`8ZiJq@f&%J((LvCWgk4l&GP^_l);%gJ5my1^2&3fel_ zRLcEkvzTztFcvKX2VMQej6>3g7ql}pEDK%6-@%y6yVV)uG!r9}#`OYalQ%iP?EveS z>eVTmyvemVJQEZ}878wj8anbt7}jxZRfg)|icw|w!o5`-#{DA9Q^E!3ZZf#wDG=zh zLKYIrizl{rB)Qc8J`4)-#TPRUaqA{Pm@YC=2OwVTwAj)BQ7v4U!3YWysa~~57nmUK z@jbGTwFk_c)#1!70dbXJyO;sQekDHq2HtRb>)=qIV0WZtfA!7iu(ykWcqEynXUi)lCDybY=8x-bd*?k>&z}A5Xqnlh$2aVz z@EFeRc*i+OS}sk;=;oj87hkNqnRrF+-RrkG6>sm{-f;7n&}SYcDQO;ei428j_EnPq z7rK2mW@wOgJ|R%v_`)&XzMiG=v^Br;`5&hrr1F=|{UuVJZNL3Y{d)<)?l=FwD}J3+ z_(JM7cW)YV*_=Nt+GV;&ekp6~Myp?lx%N`)i|f<68&oHOaMMNQlWD)D z9j>zs4`_IbT(t0&{paLN1(sO}}A@MoxDrdU;Wp01}>N>gn`t~m+iLSpw zlxB%1=$CEiwC>&%9=_dl#R8khbwYp4nQk&a<1AL5as2GLb$K8A;sYjH%{if=TEC#b z>*mAQ<4K<${CD2I!~1-7&F#*w6@{1AZ+!kG&3+D>P>$!1xLYz`d|upt^jXyUU+47g zHm|QsHKrwe(zs*#!|;orOu@a!)qeR$_uJP>MfcT92<>0wb--Z5?vEjtKm6QYTVZo$ zUx^8qwo#nwp|x*$vcEp#V_jRPrt*udWIbm1rj$7f4%2;blt37*N*wb&oeud z*Ri$Z$X)+uM>lU?b*rYI`;_rJai-!azRcBqa%*KbWqfM8yq0ekYoLW$vZ&y?z^(F) zSKee;S#8tF_fC#(P77P|U)-gfIpqs+VF#kA;-?d zdi5{;++Q2&bG~@oc=P`ByCZiBUgqwo{*b&N%&dO)9^Q&?hui<|a;(pOVk~j*ZJXKg zGxtBR*xiVK^;xPhCFT2U!{i(56FR2t-?V2Ld-3)EEb?+uf-%Phat#gC{`+-LzmQP% zQ$5%A{DZabeeeFJWj|tN=;F@4vwU`6ZL_5N+V2J$fA;BqWMZg4|1@NMdV=Q$nN33a z4_AIWCS$$tS0x+YisZkSFPH_eU-_P3{Bjz7`^Ra5b zo^~9=0*&3j;(7jMJN!w!XJWm2SL|(9;cIm)m;cP}IlFHz+vC^G`>wC5U~G_37W>Zs zTlLMMg%93NkC|t(CiWu}Lwx<-M~ni8-m~oW&hht={pGUy5i0{v;$idkbux3`XgYp* z!xN~Q;NzIO@Y}-0M(Ivh*%)$bZ`$6y74~E2o*CPpsvKy%C&th5B(EwmOX2e)hTTcF zXLdj9S-&bP|Hh(|ADSXxE>~&ZDfdNw=EkGKSz!&8>%0DXG)vBY{v>4WB+2MG!S$aR z56q8x%WU|!_+5+X`xWPs&FYyR%y{~5j-Xr6a@M%@Klx`C?)Fn4d>7M?)ZbxiZ{hI54G!DFr;A_67!4tN3-}!in{l7Za zl&VFo&9GmjP_WzSW6X_~IR#-GUzXZGKE3DBnpwg;bqBNRZQd;lPd$F_Z0u&fGr8~L z1Xv_?mAwznJnS!1&s= zvNi4!PAW^*pEqc^^;OVs6;Jxnj}zM%9)%v0w~zZS$1I+j_mitJ?sNLTH=$SGM@k-d z^9eehDZb!~)VBVrb>4Gy1r6J3!pi6923Gbu97=Fd)N8l=@zWttHG${Bw}9Ul0ySgi z)hRRDMpgAWe5;<`zr&^emc-2I+w3*=Buv}iSn_cOj)k6CZo z$#s-S+=)*8v*@JsEDoLeBiH%j^!2}q4Ia}cJ+@w1^m8v z@r17I3x&q}TTRs*EsU1(3e_HspKmg&qjkZa$!B=7A2ms+o9_>Qx?MMI)s{oD3<*M} zT8}$>%i`@P@4ZnK^KZ(V%gJ7P3=BL$Yo`d*NuSrc{&yz-`ic8prZy-pI%g&r9TzZh zRfuHRW9wjV_wx7Y?>9-fyv*%i;;!(qUfino<^{b3pN+?Me^_$y9q;~pEnf@62lt*T z3x%i|cxZmu&g-4OJ@l1>*ktLr?MI~BzQ4G*H_J7mW9h#C_iy~v*DQ9I=1X{c(0ocv zhuFOvU-MTkURZTLbIl#;KTl4b&|Y>`uBGwFv0H~u^$4ZusZZW6@VKSjCx1okW~TMi z%kAdZZx72{|L)(@^c4oy%Tvn#;Pl_*(Al z$eA0N52XIPp?HXG<|ppwhZYzb?H91K+a#3#=8t*a%kTAH!;YI&N*jECEPwcLo~Zbu zwz9g_KBu(j`j-bkdHWZi6aI5y%L`!xhK>Y=A6kO7qQ_?TZ_@QLo6Xa_ zpVwhkfN;SwmfdGJM1Fc&CMITJX`yATNt zt}uVmUbQ)j9oY*N66&Az#P8j?LFsSH{zvy!vRQZ-41V}B`F_0I@u^%~F#Uwwah+R# z*kxAS=DaT2>ak`1|4VNzescc%c~XDl?ek$w6a9Ynv0B{PAYab&hi_8ydH&Qp;k$YD zbAOedh~jiv+HkQ&pXFCu?2Ub9o0V!sIc6VJVURo5vLz$)*@}xlxEVjW)_a{hpb*7; z;Q0?jHa}VWsMJUUgXS=SKh}I{NlOoO-MQ4rXW+K7W%8cA&+8+$u4iGk?swU~!~0>P zdD;A5YYuZyFJ5UE&}hnj|3JgJ!xxqJ$?w=X^Ksu~>Dim7IyH+K%v#{AV9jC9yyNE? zabF9ui`O!oPL-ZAmbj{LpOwdOeUwSP+~t>}H~cOS^O6g@)%Y@b$r7Q7pBBk& z=A7LZ%6MFdOSQ|%=UdY0kNnQtZeJ3*Sh#M{#SD{+EP?M|db?{M?H9O`_f0&>C_0L< zy6j#1ZOH&FhjKlhviAm}L9Gk|KNbF%2zHAZ1fE;iTUG45xYMQOY``u_^PiF@v~{>1 z)Z5C(J$&txv}Sr{Mx~w;_YA&PaQjubO~S>?{Bh;u)pqUuy&{qsHy&E%Wp1!%*x+f` zt<>h<Yr;(wC)+^_eFI zi6;A|EN-q?JjZcw(BbzSFMXEZ5ap@QQ4P=$4&s!MtTErg*>aZQTT@|I#~ucCrWa=x zXh&uDKG5$iTVFM0A-_QZ*O~cD7CtV^59ml-;e4RSBE{kqI@9NN6ycecE;lU*eM`t+kJ)yjn10MVrI4P4z1JCOI3P z*Nf^&$EsfbP(15hxyB+^b?~&m-0HaNVb_j+Np;>W zAyPfrz{Sp3t+lq%Hf?faQBvJj&j8oY6P;Fzge>`%e4)bekZXhR#UHf?_RQG(?93ug z)8FT6E7DSb+49WtZm8LAJAc}9D+7P6Q|t6>zkhsr`WVla+dcIRS6=CHH@=xWS) zu2rV(CWF!!`U)=|oxl2YZu`UPm99TxeG@%gdiokKvaqu8&B?R+mb>NR^nEu%i)Z+L zw)4K8dhhwyS(UDlp*yu6J#~6^_t(pnkKU|Gx7k`6&KQxhu)FTygR64idNfY0`t>b` z^<$ADC~&$rt=j+C)Kd0Lwr+``ia|yFVZZMi+b>*uuABYUJ16t{6YjYWwz@`!p5Okh zB=X)gH-4MT5^K$8CyIIP<^r|j8Pk^T)-}8;vODWl$}zvyKJpBU_8r;bd2QdzkD9wZ zU;fCrbjYqyVQcb>cZIdLbSCmM#3ofgkan(Hl4Pb5BXoUx=*OaIEY(8qWWL0z?&kb< zu6{@Mhh*KZ>BYx=_Et@s6ubHYliDfEX_o}p_O~)NJl{WK`_j8|T}Ip4&Y#_3L1-3;UdKb~AI(R0W0Z4v!+$$M|vj!1o~bz1*+W_v~T^0MP!y``EIV~v))jcNr|2@YpY zryMuhaHL69T(;geZ2IzBKZ2$``WRaO&1eq86sfb3ttX%HcWqiF7kED{fBw(l?dBq> zp}xkxpVh-|^NB6n{x5W9;pWY&!UNPs?NB!{fsrH3Z*K}>7>$h0;SkzQsk-uQN zZu*r9M>f6A_u9GjD-LCw?77W*DS53Ew}fv%LG|mW`9f;iq4)Pl=-vME?$vH_-+LFH z%%8h$=H#tamerL^#@E@3=5iYzwAVkk>R;}H>ze1*{hNC7nQ~*?@hl08t1|ml%;!}$ zKD870r~CV-a=`5Q^Ch0%QsdfPFMdW%c>NSPy>o)PE|-pb7)T%mO{e>z{?A0H%A`Ei?{z?Cww-#b-q9M)(2nBDx}zcPKry<(|qzx;`E>x=F# ztmxg+&{^cCZq{bQ*4CMI(aqp#>kPKvB|3*4n(JR4jqO&;w|INHCSFr2e(RaHhVtBB ztj^qsNjIy}zVJH6Cv6IqkI76~hhbWo2KrS~YX; z)r97s+Z-$Zma$_0nTV;2Wtmdr9$a6#>3DQ;Sm@g14~09YUU?LMjz#RT&{Ru4<+xOf zH-{FQ*j=csnpQ^~4!`s?d0oe~mG|F$>y*i5{d!MK>yLS#wZYnIO+ zErnN^u_UkMo;f}GZ{~vQ2EOw)DWt~+^shcA)bo0?klOExsUKOY&K|lN-?}7W{yv*r ziH=>{GkHxO-FvG1L|Om5&m>{SHA)FbT&?xK6(=R#N)hu(+EcH+bIPQKK>MW0I?6K3 zdfwC-zuWQ2`qXDX6S;$%-hN(sJeXyV*Dk&uwKoQLd{&hP&DfZ`{P&Ofe{uV?yx<0U%%<`-ZSf^T>7IoZoB@vHnMDu?}e6c#{>>~2pGO(2s?4h z^x##dCpq~slW!}>CbxCw?|ZS#Z3kyV$T2DAd{c3s9O28}UXdYZcG#`)vS*)g+A6j+ zbM2LsOzz3Pdp3L&U-6x#wAktaC>X8xlqFr|Uv~1@<5hFB&j&@=z4GGtonPNksQu!N zIdkpD|2&5e8f#ykUU}!9{JFES$+gG4stsnp`DUw};gdZ`y;kZpyb_FF za!GZY`aaW7l1C(79bN2gr+?_!;`i(aR$o}uKVi`vId&Vt@3)T>Y@T%f%%1*jANSWr zu3ljDc(zKCozjKe_^#=n6$KclWZ&q0)zr1+{qIeE_68RpJ=!yC?J41O$1^(q|0gr9 z%JAL8z);V)(Iw=;hTC>C11C;=JbiN_lOT`L5nHdxKHvUJbXIK4VaRfH%}Qr5KQ%Ly z`-$mmsoSCkT3_SOM7W=JcXeTYr!RZa{n)W(-&bE}$VlgIxRxa56S@CgtesM$qjJh| zcddwaE_#w=R(-me#TQ)Z1;| zy{JvW#%QzB+P6|q!VX$QY+3cn_i85V(@cA&i+AnTWF#-D7t!(Gd#rtDBCBBUtc^Og zE8hG#e{X#ydqc^t|E&haZ$Cc%{WMxwV4t4-lwB)R!b~qOlUU%k{ZwFh{py3eSf=?c zPs_5NJIh12;d;oOnO!dLBtI$hyu9>^Eo*hiTm9qqX8#Vo*SqqtN6cVWM_Xg>s-<7l zb>9f9=N$X|?{CrK`)602*|6v3lhzq6;UU|uFfQ0o^5v=%$9(T6!UEn-dnQC%8SE)? zuRUP!f%oRd^fHc`^-R78Hn~nN_nyiC9)D$9RH*eW^2my-&6(Q5oj*Stzr6O=I5o5C ze3{gmQ^ya^xU(!Ht7!Gx0~|s54e`DPj0ZJFz>y@YvRWqbd#ug_^==DAbP z+qx!F-{=101ddNzi;|A2tl01FWuBccZ4F9hGJV^Emv&~H*n8UD<7%R1(Vl%=Yq#D{ zm@{X3^xv6l;v0Tlj8d6+O<7u){Y=Qb?cW~Ep0WL5dZ2zBgKmO}VBbldxolhvpiaAB zlia4HT%}nB|34Y747-ul%eL9`<*zgyZ~1z!D|K1xcvN0YY?>6ZwJSc6P4MgNz(1-F4)D?Cbehna^=-m>L;%FD%3Br^7@XQdkyc8%Vpi%f397bSS} zmfks_H@E(=8q<}_tG?!@L@2dIHA&tUd$PuQh0$>VjSX3~Or?t@cAeI$UU*30({T?_ zHN|`E^{H-yy_WyC@h{anYnJ}jBUOIxem4Hu-)=ql7R_uP{AQKqnFHU%e0Tb0GAds+ zayTKcJoC=0TVBWASGi|Rbo#zy-wex7+fPl+y)IkDUVQC;{f@&O;-ECIa@az%y02bL zsATq1J%N2v2Oimne}s8JFLEUdItVC)n(O=jsN^H&|ceC z;X?S7(>K~BS-jpQ`{!+EdJ}o(*DfIgZ*~EL88^S2I)2XJ_ny^Dqqg+U)VFgB>ZtED z|fYo^v+!jk1)Z(=Un4cWYns zHz?Gacpj+UBwEky6}(7vllq5JI{0BE34=;o13ys3_@m>^q4P78c8PIChAy8a zbuH%00{4CYy1jbEohOvY@H}o(s?vQcvUO{i($rDgqG-HWGdr51enqsZWk-T8L+FR{! z7IS;-+@Ewt;O0SnOMAOx5A@5-Bx-hOiR#2yVkx0gRw zEdF92r1<{ROOGw;?YDXtEMoPU5-k6??~#N=eOT67FP^W5Q!V|Olw@Y?U9~ouxu}*= zxX!Unv~S|Gp7_6#JN`;&r~Qlg_G0k@rBaK=CECo}*&J8g-E&?)<2#>9@YKh?cb16d z_$*G{yyVq|EnGh~rB4ap*y^z5=>7=DIl6+|<32j9xXYmh3RQ`qw{~mAZt1^fRn`yr*C0n*gB+pD%X?;}M#8Y1$&%n@D_4TIy5ys-%Qwz?ww*L7jSg@>d znXO{xnlm?8EnjEN{CITZ#G6k-1r4s$Oj)+G;dQmY%Y2useZmvFL4|bdK`-+PwVlg) zPYHB7ED5@OVsTmRBwx*1g+<*r=e9be^l$Wjf5>2a{M7pECZem}8$~N6M3_$ae&;Ul z`aKPehbCSSpYiEy!ntp*Ngp0Q|8)J`gt^yiTGV9EUzsSNVvu=Z@xn6Yj10!boe?Y( zgEY&W9_+gI?Q7Y#JKLtWJo?J2#@o1f_3iZ~?XMoqnRWHdovboJ<85b8uKN{m?An>s zOi6{HeDym<;o>1nyx!Mun_DCwe>j2damvTvra}MwDpNy@7?r2kDo@?#ke>i8-qPkoEz|6TSZHl$^EuWI^O`FV8!}e(E zrd~(ckKd$g&wTQnzhy)J6+Z>x^(>n+wT|uoQP3jx(O`Aylzqt$oHuBOed=`qHR+}N zDi)h{gg0Ex`_Qwi!Q#-J6}Jqd*rYYNW;n#kv!2N75ICf^m)ki*oA21~O;aXD3NYnl z_N`tRbAj)w*4KE4IV)cY*B7YW)>d8FK4pj2xmA`2Tlf=Kfd-zocs!qLyM95*Z=0o- zv5%{gYxeJEeiHZt;_qeev>tP+gy#6%fHk&NM8c;P^O;HHLHZ;q3% z_A(ss$)6dweM>{8omKYst&Uqh9NcI0C;M`Kz{X@oKQp<&S=I~xi%MYZu#^N*_(Ff zsW4p>n7sa=PV4)8{rzX7pBmNIzSESQaik~Eu6mgOd-9>p1$p;&-MzFeG3Ir!{7R0L zw+GEX_V?~*XukMj?eR&u#Z#VH_gK`FKG@FmB(`D!tIw3nCm(j+voCX#U;0rkmurIZ zZ05wNXAE}QIXSG;pTc4EWb;G^@l@rRYTl{xsppz{50tO?p~fs&IEUqfBr{LfFlJ?zsZj zO)d2l{%*E%`g3}@`|7|iACtvR(@k!6hj07idQwaX#bq2Z_2)Q4Nsf<+T@j|mv}otieU-#|z(yCyU(p)l+$CxiCB ziiRB}^%tM;ikAlG3GyBJ7`XW*!`(9{r~lFyKfqNxamh?pM~4vc4Zr^!IsW7KuJ;F% zxBdATRsKUZ$8KBL$!87c4o|$Ne4Ok1A<#Mp!Cu|Cp1@fL{={e7KJcG^dSzVx+OugL zZ71FfnS`6O>TkZrS|>Sa>2qaXN1ghfluy%-drUejUF==YZpAS{$a9}V%j>n%DhNiKvDyjD8SsH_vAGw?vbw+y8h!?LS)|UUzAd}`@fGzIb^!}htS!F@J^Au~+4^;@x}aiSN@&R! z@AVZgOrpC+n~Cb=u?KMp?tZS8WASSJ z+-(YrI=zI`4w~$J#=kb=_Uo_p|4wjOKkP}+_~P~`eD8$QcC)q=WGFE#Ki_vUsW3E3 z=$h=`2~P1Un$?UJM%^KOCU1^*-R++8?1;q19kmaf89!;5fU1EEj+FklDd)py2G0rI zEUfT9@7$T!{j#h7*Vo;g(BP09Vx__CQ0RAdHN%yCcl8;<({jZ)= zJ&r-icjrxC*%+OxTc8)a`^f#S1E$yiFez<%vn(!PlGOQz)SJ#>T?=2HZYxW4cvt&M zVM^}o_NeckOD$L09!pNxbY8U%ln58iVX1z;qOXyW!Qfr!+@L92e?_v*`&_uUS#ERT zq7t>P`725S?7Y`*Pt=-m^^)kmhH%q&R`ov?izCu>*bRQa zU@}_MW%|&f(6;eS*bOEIrn?LWCcT%R-SOIh^-apk&vOoKdV5~`{Oppa$_m-{rcD41 z^S?2;v*ye7qb+ZmE?vAU!&BGq2EYm0r2DR>j2H zX8~RhH(h)syEeMv>&L+EH8-|$xWD?Yb@t_S6PD{=x&FLNGXS+9KMHi5@Z;C^pToL2 zqvmS)O_R?vZ?7{u?ZABC{EpXtOU|8MyG_L-Oibxjctw5et+%T_KfC|!;m5`9;psDT z><;y8OD>gQzj=gt^Zm6&`(|u+&5gIZq$p*OT)8XN+{0PrPTo^Lx9SZ6r;lXwD&0wH zom-rE_(zv$8HdR=F6)bJ?RP6mU*Dhl+;`6-MvI^VoahwvGeX- zpT5)e=GCRHk*n+3jV;90{?D8l&Jc0@%=^Zls%9S>jt5u2eDg8%{_OJC%f-#V1s_>{ zrOer8;Vy1whHkaP(Q`uo9$$R?+qaLip4IZqJAX!-aZU1v+iC$Rvu4yhiO9Xb=*`v5 z%ojtgg$!D14Dzcv8WUvY85ufS?wf!2i3%2fs>Q?%G(jPCr|3)}GyRH}*0dV2XcM&Y&hPveZuJw*Cs!Wjem^ zIiHqNJP6363xC;prLm+W7* z>g|!9_vPmI?raq(op<7H!BuO6SsR>9*`DdR?8pZV3$6Y;abZDaRM>*+0!;q?k+bB! zIPrmcoHGOGVL{A5-DS2T}xBzgACe@LnFejQ_*&wgkZmGh~_St$3wo zzY1R~W#;SMw{X$Sv&XL|+e#f+NB`fRULhE-vBKl5 zxrd11>FGV@ci;K#Tj$>LXQrrR|8J}KsfW70sCQg_0KQ;H$Lt5RlS@0w5M~yPpeY5)ME-tF_}xPpC4*CZ~s|cS7z3UGt*c!=bv7= zY;ne?Q|h;_Rxjz&pWp5i-SGMP2mL*H^>@qG+|dqQ_JUjJ?b`pEh7!ES$aRQQJG=*DY&pk%db8_xW&6F)hwHCc{#(e9;0M)7kYWe&{nucj!%>n||ZZ>gQ*V z*z3p4GrKDO&Mh>}Z;FC2!vu(S-TyBiWeTepMa0YN~42-yx!W>{k218+ApCzx-(ax_ip?j4#(7 zhg>#%`SEvlxyJfJMb-M~?ttgh#GOjtb}VZywO*RLvS%xoZi0zpqld?TqpeGxb0$V5 zrXHJfCbE$;WPapCyT}O z0v7rUpFCbEw8nlmDU% zMr%RlCJGWJt(sQ-{*xdl%cdvdij0@p`+e8Xh_c$XTl5=4!X+mOR?$pkc zsC?y~BXP}NVx*-s@F{SIaJGm|~qw)p+;9d1jn?AW{9{&@X! z^%`MM@lW68{ZD-Tv46?2x{?=f&F244sGm7yu3A3xHJO^&tTj_J7=@o6xp`)Tg_F`D z-d54f?c2=t<|WlJPU=_BtdBiaawAuo>-6Qnd>3>grdch^_WD)bbi_YOE8EZM&xXAc zU6Q9SuTO7Em6UgRq$s73^=`eyA zcj7dGbapY{>f8+>HCN6|nmE15P=5lSY_?5Dzp7Dr+&4vwZ#tpu(~{r6Jbzmzc~j?f zv%k00f3G#HuYWB3_SpIytEj8*)}8-0SvsJ2L2Y8tuD3hO`WG`biW$s$;ApacgU#Zr zi#wXSzOXAi*<2}d?X6#v*qJqFR_MjdD_j0*V^Cu1u~K7gW3frTAY`GAF(`h}UtPUR;9@~@PiX5@$@L;(X&SQoQ_s~mt=*vX_uHYap6|Ru z|5*c9yIZ=Pm>)UsU-z|n`fGgVD>(SCT2tTmR*!FYZK0!UR(D|Q%*_d}Cr$dt&#-de zjquN{??UE@EPAt;TXE5P(XeIbv)>w5Ogr>xi_PrBXrYcDlfr75dp90e*Uf*wV*_Yx zPDVOd^1|G0Y5z8Ue|K%yFRXFTIOTou%qbqe zlc%KSCw$o6eJuR1Z`mJEL-s~4r#sWj$y{gd9C4{Bgr{~{Ry_)25 z-cH~D)$V~thxqI>?bT^MtPd-yk_KI1`Mn5bXlrDE4-TJQ0U+DXhId1tS zVjE5Bd3?4TKCDyX%6hn~@#NwO#W&3jHBxzIopH;t{%9C?|EGRU)tXyEzdvqM@p%f!16L0NBrz66T6{u-zrM$c>X zSkgYZ@>i+L75#vJ878x?U1U-_Rd`$IkP^4&V$SjzJ6B%2Z4#f_XRu(-#w8as);NMS zGCC~yU$1i_vOJ)y=9$io4nxZcc9|x#u5o%y4eE7U+^HgQMsD)_u$jg`er?GShzwH+ zTzqlG!t#Vgb8h_l@S=6e#TL_^>GMvn%-egzm3x9fFw>J>x5X13KxSXwn0W8?+SUK< zr)q+h+@*gAXMQ@#ZE>bNXi2&@#b>D6Px5hq+Be~N|uSA^+ai}n{ua^fuP%8^^N8X6V@GhZRS(-Bm8dc;!cAfGZ(E{^?vSe4{-PQ z>Dm7u&;NQ_|D}{sqkPS^43le%SbaDQW^>GY%(h3Jry`rTBAa#3R;IMI4L4N|__AE~ zeW1oPzxQBn-VcH5$i+eNa^IJon=7k)>z&uCi!R(ec6WBXzTnTCYF{jt({$uKQ)>L; zizgPd`YW0^A4=}T#d>|GSH@A$h%HlU?T4?D--REZa=3Xt!{pP8+cR2c^tK$cEi-xB>G*h_ z#18)348}(y&nz>T_3hY#%=|Oc`#Ib8?q)Z%o&Dg& zAj2F%lfKil1a9vaG~9b5JqrZ~))yQLt*hv#M-Q{Z!l8`m>TUS%*Y=9um9 z_?*O*{65#iW$b5uWt?zP-@$+LpH89L1ktGTByPZfO{5+0G5e@c7tq-5)x@k|=mxvHglk6CSL z$YkC;G2pwWOqP9L^Ye(5eIaj}8!Yqd>K8lQ{Z(;gZGXG&(dHkkUr#jH5_kMe#vw7G zNAp{sO8#`cxq9_qL*vahk5}t_&?z~!#Z7pc%d=R^13UO{7W_I~aivy_+oeKV@$v`% z19Q5c&)`)LFFSPdyRe}B4n|Jp*8-RCCQq&GJtoC5ouOj?2BpWY2Kx)X{MZ-Tt@eK1 z^qEl+^>(kk#JbtG4SR(=!>V^4o>0)EIlMWfqpH?)fP6%Iw&}ykr@f zTIq|LYsLEZ{i^U3wi7tWP$1v&?)9am(|2#!^xZA#-oXcZT|%;r%sGUPJYZp%%gDo! zVZdm+CF5d-60>dsgGo;R!IM`x3*Pr<))y=hd{DllaC$v+?{1k5-wTvq-n!hecg@vp z#!|i>8Sf%Zgj|$YT6zbVEWa5zBb7JHM5+=Lh=vtG98^wh3;s40qVy zSbU1&N~$tde7Wm#!Iz8HMxgyKoHDXO2X^#JTKvpYH_5r|?izM^i#}U>{JW+br==&9 z9L~HEyk}vVXFX_BO`u1+kU^U8!;nxWzxBQRwXJs)5;>LywA?hy>2^KL$1db{Me*gW zs1Av_TbEqSFp+xw!hmVnJ7adgJ(oGta*wY%mBuWv$wqNSb-5>M+4Dn^#8HyDd3cxjyLF+?I(MZMRfG+jm?n zw%vRj-u{Oz-PF?3GBznG=~-hz_KMn#v)Xd|bhRG8HajL`c*td$*}H;-|9jr0|2tT* zcHO$XU$58iuT$9)mkF{?h;wrE?9wNGXJoTCe3YNCZr)8Po^>qFRnjdTMhq&^uUH;l zyYb@&&-Bx!;hvr+>!YXLx|U%g<$Fcgm#HmA?|Sl?KPrN*mrH-PX3k1^@Mp(-<@P?G zn)iFZFVULJ)NuJ_jAzrj?YGPw7l}8R$LL)@@9pJP$LiqzD+{!DscXfKi|J`;YHDh# z`#2Jk8n}aVlRpIBJjn8jd4W5_-%Rne*HN4-9E^v8{iYkAef_a+bN!k%Z&Fssg0^(| z{t*7iq;`91?M~Tmsw}&#E@W>!xp|sS#<+>tqZ zo_0^yKKc_B$jcrpI=yYMfAaL{-IVm|tqOt#9~W`jxRflN`*wA#-gVxE-&{cv{m}Qw zy8}=B&&*d*h+|3M->Uzxz9-Wy?5LfRSK_nlpJOV6y}Z5ti)PiE%OG`^y?zeIA zjNHQt1*!*_IbWQ0@MkJbduGAFCOGrV8^!={m#t?kSU%Jl*rhl2rc~MA+5SGD)YrH7 zo&KVYQ#wQp{FWE1HU8`3xb2vf##Z1}7^SZCDYE58&bAIA0|o~d!=|I%_2)Xzt@9Ss z|LMKr@5L1pXU?1{F<+#<`Je>rg{M5PypC)G|1Md1a`&n| zduqa0)N+gd{P|N;$HIHU53a_1rVNgKZ>l*P&i%}PFlW7La|aItA46=%1@Q%&|Fd&Q zSABhV^TnIF|MeL4%}q@9Mg<0LG|v#PU)C9=c0&wT^eorgoAsuz_V)DjblG=bmUsE(N>#!Ca~iEVMXJB~eRsY8e8Z$m&+jBK zI!F{8kt*2r$=>MTel1`-hHW#{%&K_vziv8u`Wo}6rRGhpE}Rm}PyhVS@#S#9Z$Y0K zH|O)tIMM#0>=%7tc+!vO)UbgaE{@G4Iy!k}E;K})6N>Z5({~nh-`~Tw0%Ujan zYa$A*uGq0Qy?OJ-`wic3e%3@OhxED-*7v=_E>k=m(vp_99IiaK=l}D}Pa;#NPruG~ zwpruI%aS;*88;O^iYo0BT=0)!pUA6{clPHl)Z}ku+#smPw;<2uMg6zRLiq)Y3B{?(_OLD;ijOz1~duPzg$*D{41NP1k<^PolkcvqIGq?vFxB9V=!l9x*oL z``s9m{*K?s*jV|Md+Cb8okqK#`k(o4zg+u2v%q^L#b<&K@9Ebc=`K|feqqKKHQ|P4 z;{MZ9{|D98{RTzcN?+joVO04Ahx604@ zENPw>6W)A;i6QX1>eP;1<*%kln1(JgHa4CdyY5f8V-laBYU{1}#fpnqW*gL9*3>L? zkBhsuBH*|1yC+Yd@)qryQ?G9zRK|VbeTRl}MD$meCkz*34=pgCv+hsnPvOt|1+^YZ zeq%cJw5Yb9cg;sO7x8CBd zKY9AJ^gT_@g;FjL@5!&*o>+XvVs54EC-&^>l(e*4G3)-sOPEFZw^TdteeGHAa(GsG z>b564KdG@-|J@*FP`Pf;Zizo7EB;<+;peHdIzP2Me8t}jb55EiB}A?G%VE({?ewk&_&!x>aaxKtydfTni)KYQjWsx4=R^^9BS~!J&m3w(r@VnSEYpgldE^slGt@FQy z`m^wq)YPwh*LEdpCltl*+|JPH^{UWd$u-%Kgh_c1r1UJ*pZ%TKu!5sX{ZPR4 z(?1&Tre73S64IZcn(=Tel4!zP?*`$Nc=Sa;V(tZTETsLC!_?J7Rv`=ei=5`1R=f z63cqerep25`0H0o7}mJlFaCdbcX&R#vG&zi4x^&cH_x?T&)B9p78G9~2{gb-l?~4o$#bYhE+7lkKp6A@kziCIz z&;5N*X2(SfbgqB4`%}G4mOYbiUf#OJ;qT|IZ_?13Br5Tv`|`}+^;;co@XeMGUVeF| zcy8+}At9khZanghFTeY{7Zn*zvQ`&v*v{a=&T3@r)+f;!xOm@;OQHu97^WJ1_PxC1 z-Q8Wu=jK=z?7nMJ_s3#a>FaOT;{X4;p539LP$OiS`ry}T^s6TxEHB^ z{bMt>+>rwUEPq;_!h`R=zVr6$9QP9Rf-NS9-&ZsL&7Mu0Hce)TWBst| z^wgWZmJbUB(xRq?dU-Hb{o_3#;{B$T({FmQ8Aq77lufFUzJS4W6SJ!OdF$_ol$Cu` zH8eC7R``*})Z4!G;NiW=GKSm?Pa;wco-nE1pIZOlKrprKRzJ6-S&l@WL^boeozJ97 z-u`kmezB0@QEKj+J3Bu=5M}4u zwk6vdpV}+;IXX2pHTv(y;Gj*93>w;tii_)$Z}e>MEU4T)dC7w6*mZB>r%#!Zzv)<9 zMxoVbIn_gd#b((g8QG^+ovA$A6x8+X?nH5hJrmxZ+GoRNXs`CDK0j(}w_D4bn(%*L zma2Ns-+W}As9TMyy?s3c=dYFyr(K5&rtR2a@xc z=h*M}`}JRk9Y}blX7+Q{Qt#dLL(qH@N6+7z8ynQQM;CS9Joe^SS~&4(nK<6|~eyfk04LDcKhr%#t!9N$OQ zZ*@M}^ZfPeSNreZ3!Jaxx4c+|Gmhaxf%Y3li=r(}fqBF-+{POn_1IQxjn z%3qAiep3=7B>edOMz1{v#??3HLlfxA(@b($~@qWo+kne@J*gZ?F3Gb+O%{tHT~XIeD#I zdHs$@Tz|g3yr1;v$Az>*lNY@H9Q*Uv^x6i6LmAp{HcY=Bk+|I1dC}9{K>36R4=+u+ z^fT;ccCKXq?bkWy(mru36_vaak-yk$2C6F^cU+6NKC>cOIMREXPJQJ;uKjvT)~s3c z@yp7~@$8>ZPm@sb*?P#wgXPSQ!pFOWUidGJ`0cdJZ)TTt{*H}DpPS|1>v{gnw!P^P z)0vtCwSB+uzW>+U!N+phzCM~W;%ZmI-(O#Ue9f=xt$x2-+`i%sd&SeK;RQcFJnTLu z+1ALu|F1$D|Msly7tJ}oEH8X~tUgjoe1RqNK_SNEU3cI0>uk83c=GI7U!|n%Iu@h< z$(biFrR#3I%9om&Dn0Y#I?-)2PHbwp5TL-K^JC%BJhPwQmU>U$_jv!>Ympn1T9^?x^eB#&ze;p8fi}T1CZi&&H1%_j9&~F>-Qpo;Yi3pWHk1<2UR4$Myez%WuoS zUoR(hT&HDbrw&hPQd-WfEu6E>au5BfKjR)1C8g#&t3|Q7y~fauqtQBVKeK%OpN*-n zS2?+Gg3M&p;q7_-;mNaSYKF-T`*p)+evGV^6r8n9(K49JU{<$}w%-4yHlA6*}zw^_lPf^pg-x~`2y&fNJCjFG*!)po4 z7uE(pfBrno!s)%O|IgC%OKTIh&;S43{&i<$#j}~|huro=h%yUv%#aKX4gGPDzpmkE zxA^?;G5`Plb$)!sl0zu?^XJd)t+)C!4y7H=(6%}v9C3XAk4}TclV<9T^?QtLzkWGuS(9H}T%49*>G$Jo#`mH&E%{O&_EW{#)AOY^L;m;s zLO<_rw0gnR#&VYP=q}xdrhCP0%YMJzzBvE>KHVNZ-iP;kZyE4BdGaLT&W^(8wt2HI z86IkMnXuqdfVH6S41sA!_A^}gs9)#g()@Sp!5&{#)usP89g?pX4OP`vc8(<5 z@4r?pOoueEo4P%fa>4sYW_K;#B`nW^B?@ndA4|Lg|xr!bz<@xxG71zBwVN z{PE5F`9~ky*UOmq>}BL@f871NMIcdEE$Wbo@BZ4dBUXA^X;+r}%ipQ}es_j-y57FO zYxCz{&*sedxs{jIrDX2qm-RB&|9SNCuw)xeurb)$@KJuh^+w~5^92_j>SxL3YMQ0; zD>_mAhQY>o>kO7XL1AHHlji!Yzx{g_Yuc_~(#s|8NJuzEu)Lf1^u@)+7L}i#xZZSk z;#jh5nUblgXm4+C#QwU!H@`gIzyI5p2e? zFeo!FVf3g^Jji|c)TvViS3|=SpPZQJAv?LtuJ+fK%=Fu4*+#0m56?XJlUI#wGSy`{ zqxRXEd(O)X28svImoK_kGFw0Daj(^xnhQ;rJp@)vW_`yZ+f;9zv8;1~=o=kv?b|PA z&Dekbe$%v#8#n%C{4wW~tO?`eqMb#K5>jjGzoz_rvH1V_do$b31M}+tRI5c_E@^x> zMYb!4)p1Jf$_9toEC;#uPAKV}n7Ud)K`DE6LqpSpZ^b*`-FvO)G+S&{!pA0#CWYOn zqOLh{w{CkmDdpVz{tI3&rlqQRE}Z}TCG*UE#rL+qRVjXE`@H7-`yGG3y(&IwBIVm^ z%4ShV`I!PDwT-bNK$wYAn7DRlbSZj4ahnjn$!;$Z#!_xw9o_sw~rz~C>s zbMhC4@75FvNlw)A7gH6 zYO)fp{5SKUT$tRID=01Z$HZ^jF#GI|f`?39-d&;$F|YD&uMXFLbAP}5B8{e*hGl1NEM#c2s;>L|?Ci%Y z!TyRWDl7{X7jkfOH#;f%)~|bfyx)0g(8F7C-q}IdLo9OtF>#hmzL@c5`m9;IE?&=G zxmutzR@HO1@N3pLOAc@u#&RBwDL5Lw&N= z7nXPm*Pp4mR#>jCug|}7<;qEC)J>JTyBWTG{A%?|?~=*~qwCuRCN%Y2>51oY`Be>eVb+yWJn9dD_erN~RqW>nsW5vcA{W`Cnzi>rBy}+Lte1)}Pv-a(&vtjCU_{ z=jJ?_C^qE{-D`;t*dOKHqr=Y9gbiMdPJLeQz%q|wQOfN1ld#-bC-q!lit7;489P5=%em7?) zpXxJ)4=2^gpU)XS3pK=Zyh?^tC;MaPp5{N(PJNLaqUw$?iMunnWt+;?V5 z?>HGh9&xH>Ggn=t5hJ?ah|iS4q25qp`HUY1hJ6fwW@}tZn|!iFz)p+zn_2etb+*f{ zziyw<;Imws$;fQUva}yM@;Ziw8#x*OPdPEC;^Cpzzd|=ZX|b|C^KW)4`OFzo?73Wd zn~~mck8Q4&ok5*00ycYhc2-tas@obWtWLhTI$S@u!sUmn(xoeQx4yq9vC@g$!*aHM zmT9rYzQV_DI??;i=+4gCD)lh&VaA0Gj84wZf>J_V6DA0-u(B#@XmD7~<-6se%e1wT z;{uz5^nzBm#f@G|o7@(!EG$2sv~j_jH9V=QsT!J^j-HvEUESS*IeKn^fr4FKT>%jx z9ZgM4G5bm+L7}?TdwRjgN3Jn@DlY17+*!}YEA?RMQvJ|ZH|EZp*SGy%-Racodu=nl zKNo$L%DcH~>5c2zE4@`zRZD|3TJO%gmFVUcl@)dA>hU%n$xBWPgLsrDG;(Y|eDrS1 zsp0~=j_VtG_t{i`%X!u(YyB#1(sJ$>Uw?gTYPz9v&s!HnX)^a|4SpWLjT^P^-J{>IWB2@FnYter?azDvB|4q!i-}Rjwq%nWiecc z2ujFVd}D@F?V5kN-YZj6)6$lCUo9`?oP4rGK~ZsGXhOk*48}vu4Bu5238bYdS@A#f zUDVOsHj)HHDnxW@wnGI#XAE!mM3o!9hWn6k3JmUthNJ(1Ga8%w?MQ zqM}PBdOQExl*KU^d@S?NJ+X^9StiSdWA`?XxrDj`jc|fNp)Nf zHq880I~T6zc=kTWY~HMS^Xl$&fBw~Tl(2vFpJaDsQ*J?4 zmfNzFZ#6DXPEHf_T)yu(AW`R<6wm$p{#z60KNpYvsh3hx?p0r3 zExlX6Db<_vkIwYd2_|b)4h7Gp3gKfk*YfuP^@0#1LNe<b2bb{72~VEK5%xpCcWD$})X3 z&!#Q0ncr0W{M^rs(0RqSG4t;weYkLNZRZK)lllLfomj(`Nw>YSZ=F8-*1d#))7NzG zsZVe(dOkIgJMgCTrTSZImRn7lG-=m_hVrGGj_Wv@XP@|T%-6>!M|bD;x61pX|H@ul zQ+TGDn~Tfo)1Q=<*4CdHq4yT1pPyGz)AZP_^=j79M@PF0pLpEu+b0nC_{fnX*S7Yr zapzpB!nx-ko1kE$oQV`~{g)RPA6pe)_`}?+n5o#PQXe58`F{Dbe*x-W>*HTZxg|Tb zIC-v4IDdL#(`B>SZ@D#jPChy?p-FDy;dSdP-v9l+A@j3Zd-BAI6KB}h+ii(j`ES`j z*WG1r4Qg+dw6pb{=?Rao7TsO9-%g4%KL7g47y<9a2VQR%c(iDd@}}S4-|Ktk&#QVP z!PC~M!g1a+clu2I&ApSCZj1I$t@`?^ekp5H5M!3&RNsk}g>G(bDtpsX3KLj3{!ci( zZhbU(?Z;8uz;MrRb^FS68y!E&KZI|4BqfM(&H8!V{B!ePxb7 z{B&!BzJL{a8Xp|~uA5_`B02e;D&wY>3W*t$=go^#zs-Kdu;oL?hyP6%f}Lj9&#|oy zGpavma8g!c@kI#_rlX#@*RMyc4bzF)B5-`OthPb^yBcFP|8IMCU5U@Qu|Y9tQm}xG z%$tHcDMk-x=kNb`an+MXmM&wd-hY}?-?&e3(PeqX5Y-y=qxQptgQl+vuLK)c?TuTn zFiCTJN4?3?S#i_v<=I|OGI$X#lsF^g+l-lObE=)Z>JvRJxACz(wDRrJ*3xqF^72Yu zxZC>I!$YmyQ-$hYOFeZe4GawAJH9>VW>fjSsVdJ;-4{sMAGd$<2{~0&RbCMmDb4`x zw13VbNBxbA_AI;az}CFb*qC4Ckw%(TSWwWXx4*u=F1}-0@ia{?^!0()EJ~MFUO9D_ zlateT^QKK+HGAvl?P`l#FYm#$kIf_WcgFREXQx{(wLeI|YI$9m&G}M|(2Mvt=0L5Ja@ag)P(7B;py1`=QFUwp0FzRKZBmgA&PFL$vBy0Wyt*i^H(Z&%yF z1P_JAFyX)knQt=e(kAx<9SuDG)rDSs#tGT_=rVJCnDhG^F8xEe5sPPC`edw zam9UCrg_SXJQy5XxYi0YHZUzvbX%+_ZS>Yhil=!uH`Cuk4(1GwOo0ccnr1KrHC~v{ zA^qjo5!Q9L#5^a&e(9LmJ>w&9#2l_|ylm6Anv09NN9b;AxMG^=bnvOu)Qra)jOrt9 zb(rm&?OLd3oZr0W?uwP|2Pc@g+x@;SUbXk1pTP2o&w2l?a!IMXyye)Jl``92|CDY% zXdtMfGyO)6uyY9jQM_p5? zuYzo!L;bv;mWLjFCi>ogtNFaiZ;oY~sC{D=iR5EnJy)KgA~I`L=B~}(c-ao82yHm@ zmh~EgaeP{W=fBoJ*Y5-#l{Lu-nBunhmpF59YL<7x<|&bnudR!%_F=nyowsUloIlgP zX}Ql^H$Ht)KXEbV?{9Bc2mkeYB~`WfpCHq{sWCZ|Duc3Cz4Z0WjdRR$U%Z^h?C&(+ z*=7&_^4}}BSQfO>p!!;lN%pNZvo`RpOdif3 zes<4W`$d93eyDox8uz3qPU6w=B1`>-Bj?(jmP+U?-Mj0+tE;OwR&9N3tD>R7@%j1r z@6`);$Jtgt+<08B*dlFf)W-T3M_nz--pt4sd&+!gXWrJRTy+Lt&Ls>1zvI*x%iP=3 z_$3S!_Ds9zw=hKO_@bIR_3I1_O%C$qudkh5sp38PfcOi8Bb?@u8KdlZWcvQ7H$_q}ku@dT$sh=Gx zqjI%0$p5MYPus~&Z}v3QYwgLIwl%eT2_KK)*9n*6Vju4Pe*f@)v%lxTUA{@r)x%$9 zyw%^5e_!tMGT+rIA=^J)oqA($^>+U7XSH{B=81B-%Cp_J-!ZrL_U&>fk*KxLBEz4r zz9e%|n4u{qj(I^}S67kQ%IUdg9~mp;zSRp!M$DT%`})lkqrWc}uGRAN_mAgYwp*d_ zd#ca}t(2UaXm&wROKF0F&eVNIe!Tg{-ZEL1rA`YAqF$@m+Sac26`5aX?Q+(RzgYXf8Wd#9apoCHnnmW{MoViLhN$CxgWkvSzfzk)v1=&Rz+1yR!2uizT?4{ zgEnSe)skO(YJ1Giyx1a*89y}+_ZG0;-0CJIEL^?2=3OWUlbXPTY1h~qU6d{^{a#lU z^{Z&Y50RJ~or(2n+B2p&o_4W%5TO?4sJR2MX>q0XJ#%w|Bggi%ZMlkMH;WUKey| z{q~DlTOBa%aS#&X=%?mJKt2Y7$0Y_V0|g)^tfZi zt%BZz2^r2UB?2kIk?D|5*InON>z0?X@k)s-y|yB#bH(l}+w%8*4Leg`@hp;sC1m#b zvkZqiG~!oTs@`r4)DSUG`FDEjlc!HXJ*(E%R=(ryywYvE-|xHazM5%@mui}=`RYlZ zH|5{A(}~{qrmZZF;rjaf+8ciszdPfqpmgZ(Ikii1-U$g01j^4bGZ-A;d3tfN``uS3 zc9xyJb$4aj-c7zRZ#l<@prh$QL6>9|{<-=+XFVe?7N=))#ajQ9VakaK+oXDbiCfN@uIMae zSbc5ItU2Nfep&f$pQvNm+_^iTcAhkYg0;0Yx47<+&zk3*m;U-K_w~b%_KDM{xBJen z-?MFY+`%Wy)gC{aonK}#ZSLG&R_^ur3$4-_b|y~t zK!QP!D&u>mfa_K_d?g|#Ov{?3J^gRh8^09`7KGL-c+7idn06+jN5(KHYqOu?Tz36M zb5pjhV+IXWg~wGMO-yg@0A)KtdHMHOx7wJzQ~dJ!`uT?uKm9Il)fLQ(xU-|KyQ|BN z@y6ONakeQ<4*yHO?m5`Z-fsBVulyMcbHWs+h?m!XmiC;va%S-&4XJL?6V%8o{o8W>%y-Es24o` zb@tS$Q|Zr2dD6mfpN{2JzB_fogn;Z%Pp+;A>0)Qtv9{F7rM|sZ^43Qymr0x#1p^rb zODCP0xBt>||M>~c7eB~$sAzs)-^L{E;v5xqYq!z4!o|*@Lf7HY@d-CLx0?U+b^HJC z?^2W3Mw2WJSSGp5d0mz4`$}rfuX7uBxi7!0SXsBp**)9x#ogWJa$7al3w!U*k^&s>uopHmY_{ z4|_HDIrkDDrs9{LpWGfb^V=QpxBvU3Ku1Z5>Ey|i7hXQec*s=p;sWF4`ek8?A=`^o z%iizY*z#)5k+rYQO-+-PjrDdH>ora}Q*r6$$7Xi^cPAWz%b#shf4^zM^y%NHMnAtE zm}B;4`W1!v{R@j08x~4%{?T?YGW+mk?a`1swQpx_{VMNdG;zj^8!Z=K)U!w_ZhgCB zhsB;hmyEV#Ty)C1oToUG`S6*jl{vBf^=l$_E}C>G_jB6WRKZ=@x3*|LJ2UU`1P2}l z`I;Y$b-(WWU!7B${P^Zq@6$74`IQ+N1WP3i5*mV)lC-8iGHj}j;^K+u{2;%x^~s;! zo}Qk?4Bpe0>MU!#sAwF22gA;-&SAUHSaTz-Deu`Ts4g9{Dq>*w@bzH#8ul`W<(A3vEkZU4lJ z(qDr;4zLN#sZuCv4dm}R)RR81)$MV-<(r_k2_jqhcWzv{?sV~eyV{Q@l;^FU&(6lC zR9R=Fq^vC4mw#&y=li|?<4n`97PD?&fB)<2>(327pJ#Y*Os|LGLhx2zBMF}7o5H-T z&y>|BXV&MxWnS+dVU#P#7HiIT=Kb#a<6AO=C(fO#``qMt#E}D6u6zl9GUth#nxUcL zC4-RtQ3_SAua3=f2{FmOmUE~6Kl6n3Z>RqDkaYUAfBrfCodpk_raG0E^Y4{D{7&xK zw!1|OcV#C}uKxb+=%=Tr^D7qay7l4Ducb@nN}Te{Dn2~8r%QO zaB_EFz{-?q1+_Kj{%-ikuA+W^dbnHTNAB(&s=B(m-upcBa(a#_){1&1nm4Mvzk2ix z`#V|7NB`#8R(a({8U0y(`T_5uPGR*82@jd}eE7r7SE=>*c>nQMZgH)rE6>!Fsaci1 ziCFBrG$>M2@khnCLY`y5QrZqxvy++iz`EIF`1#la-Zq`Rk@4t>)68&K#o^=h_|Y{y!@I z^L_vSiKTpO`|~$<`KP3$cs#SY_P8T%eZ7Rse|Mu7UkrY{KGd}6Bfp)+w$>~4+m zvbAeLz@o$m=4;ZEzi}O4-?>x#{-^6KiIeIL@>>sVD!(z6J5U6)QbjR2w{6bl8xk`n zZ9Dd5*PO{$j!iw*$aUj=q0*a^*LN}`F+Mr4uRoKy;OD9TGdo_LGBcIr@#OYg@H}OM zZr7P&-<8W;jc!bvQ^kI)JtaN;@t2pEGcGOhJZd=Ai?!G7@q+_94zIgkelW+Zde@Pv zm;*^0_tq~B(OP!!>UU8_7A{k%_B+#N?fP~-d;eJn%|f?6NrkNz)ehUE zlr5@cEWWYhw~yLn&uyNo=7l%hjm%_FU^rmAA=~&a_wLP?>KP9d-k2-FRKVbn&G7!v zy9+rC1#@PeW%$&2;$`3Kd&{D?=dHSNW5#z!lPI>&tc!Z(KYY7?Uig))guH;DU}O6+ z+m?N`zpY+u@i^J=kNLvlYW_7*Te(*6iw>1{`@{qq#7{Gk`o{2rtIhiyTXSf_!$bx? zzMi=C`TkG#oib%Seyx68seiHa`s>@(8KoUFUL0|G=yJ-}`HQn$Tz1s&iPoP_IwmA6 zSh7p^%p38$D`FRJ*&^aSP4C#Zx3^PgH_tr3iKF>s$}Pp)Dxv44Id%&hF*{f^+-96| z=-rx*4ej9)4wXFf7)x4fzdsFQNMks>zNenu!Ol3JWkY+%pI6S8Gv0`us2BOH>(IP( z+u1YA4=gdC>9gNEH`?#j8fIZx(cTto;R|Z(cuk~ui_SfLa6NZ_(rYu%R&!NX0Tzi~ zHyevr2XE~vv-p3{L{9dQ|y&C4<-`*By-@WIs z{IcT0c&0~>9}CLJ^!)i#^XA@W>Bz|XNDb}JOWrRiPu!-<$oXG!f_JDdixS&0h9BZG z-kao`f4{%%6jd2i{<#Hkb@2-c3!hI-NjV|4yg-UoCD$fRd0lX> zgqOGXheJ)QH}*#F`z>TFpD0*9(`T9TCf}gSbJG~|*e>up@H1>*@Jm2D^yB|e-_s4= z)bsH&oM8`OOR#U)d}a^RfvWm~6d@rYDT9|jEU$F;mflO=+~p}LDXG46yRQBuOM~!7 z?QthB?0>)ScftL=-$R8Oq)V{oS9Rn;UCq{@dkj zYTw$&QP+R`Rr8&daPg4qk4LBVKio{8|1;J#=={8T+mBE7&vPl*ki6=UZ26r=P+7m} z>FEvW=j9@=D}?^}{o>-AP~GTl8yaGCPH!t;5hmT+$s81HY_wh`l!Hmmt#Z=5*SGY! z94&tD^nSg=$>;Hmz#qR?Ud`<25b=6=+p(F=^!%AKHqX!92~rZ^opNP?=%=_2p`f6k zrswe<2k-4Ist-H=S4#mVug{&ZIC+1wVK&1NW(l?jkvFt6mrnT*!2E*gw{?a> z!{0MDk_Y_vaq03(SSeUd*gBITW`E@sw$IO+nv|Tw!ov1F*|xV~%17?)yFTqY<@{Lg zQ1fEBHDP*liK|GwW7 zZR{nZ*8cBM`~K#p@cFYf>n42;@{5R&2$~d}wf4{?2G4c(Ykz;6+No6kq|Zp7*-P-y z#jhF!neGNhUwrZ)9Y2 z?z-Kj?^C8sQLs$ix8@wTalUYU?u+NH&!37hG4pa1( zIKA8Tdfg3&4D+TX<#976GR~0=>He&ANVZg4UvVj4&zs+Wa`UsIS8gr}ZE0_R{E@T& zy45-9Bgc;?ALQoNGR;d#OR1aRsXo7GmuTN*8Jh}$%kyXU?f>^{^`-B-%HDRha@UK6 zy*8*2p6l1H{{L&rS|(4gr9#1K{uB2+J#^Kh^6#yjZPzFAdnxbSSXSfosZ*nPX3m^> z?^4DN)&uSv?z`+=ni|japq#;<(Zbm!&i9_5k57&hQ#xZvab1J8LH(>*Sydc<@2rF; zvWBl)f6I5Xkb}t^euw&}@xAMQ?O*cKCFt1!5vGm_r{Y479N#^y|N5@b>@E5C@4fuE zHfpO=QPCz9KcCCXd=0Cwz478Zb#HI=#*~*rF}qau&tWkJ^*UtiiX@EZ&waT-_41yb zdnZ2G^YgRH%7Co9yG-LM{vfGp&oKD{s>1Oz2?vwZD;>{nWLGJ8o4@-E!&g-PNZA zKJ3(Xsy!ofOym~*6u|I)P?a;?)3+Y~9K3awuwdyqlF{{B{%%&9@4zZYarIMg}QBvUA9QL;>5 z?(J>7r{g2}W}nsGd2Xsj{Xd&$=jL{Ei|bj)$eUyc{QCCx^|sjZx#A2Oy2ZY!cdqW= zuPxxcZ7V;+i8E*Fb%YMy-!bP*^-^cki29wyD9yIrLltkqo zaPxn=qv_&|FH^oeU3P8zT-lRnzB5^zICJ^(rAt%3-zny|`}4uM=EuYK9na@gPnb6C zTFcD;htJHOxpTJ2>dX9B`_&vLIM4jbwdZS6+`fC=iHpk^co-fjG>7~%trt0@msYOd zu$SS|_jh-zpa1yy7_?xvVQ=;Kb8H{fjr*q=Puw29J}ye=go}&0cix|a;{NbB z=gxNuv3xxp&69RHhkp3|?!I9`L-Fp#i!>f>zh8HF-rlX@wtO$_84?o{Mc1F6D^Y&P zbNl@|>%8~XyAN;t`}=$H$xEtJwVL3U_i0)N1EVn^m{}__i#^_1C|%JxtZiHTu!Mgw>t|L6Xl8?^rJhD2t&|A#C&dw8YI5*{|ShFTeFYHDie zmE}FRP*7mt@2|h{Fd{KgF|O*TYJ`s1@|+XC-#T;le7zPu!>Tmv=*9&L6ndo1`PT3I zwd!)&s^Yl1zhA@m)bIG=y8Khtl`PX=UtR{UbXt9?G(G+FDwV8e-=g;#y1KcuFJ@Tq zn`>2R9g<(y-tU*1lJcgcbf4Ds1BbW-Y|0ZD1USD-^?0Ucu6&uibVInPr>E!kNev+l zG54$1GH!eLQ)+*Hc=KH5gj+v9KfikY9>eOS_xJWbHFvA}bW;7eyPI2mU&1q1hA@GN zmqiO@t;<5Vxqj)V?7sMU_9`FJJ!nxP1MQA0HoA_sZE;X&cwG?7pn&na$aJal-_T z!%H?iWl&zbVL=AZI_KxC69OvqH0w22?sQsdp*D5zD+#+Ai(~dC`;HlcmKzuw&nsMc zXj$RoV^ilyFx;q5*nipYO!H#7Bemb}J}=1mIO*t*pU>y7wsl_{_W1SsePtHkJ}C1m zo10&MxmB8n&8H&A>FDeGb-#H}YMwNmXPo=Wp>mQjKC%@XV(xT=^!P?KB5BE$F zu9uhZpYlYcechewK`}8sGtZwra&fWy+-C7vr^-u+>LF8NKRDM*WJbubdf{30{;+KW8d2X`Z5E#H&j! zr5sbeS`Qp>XlZX>T>1IgiwpadtG>Q!oiIV5+*geG2IKE_-E0SD@JgGl2wxM?czJoY z?j}ZtBgc*~exN20gqt-V&0OkCDK^XAv(@=ehvce}c}{x7Xu_e#)J`k(4T+lCAE<{A;@Ssis9Dt}|F z%HFInllt22>9Fj|Id0=Ki#k?r<@sH9xQ+L$TaQGe`Td&9sn1zASii{M_frid!Ygfd zgfZgnnMzJhPDX{qw$sAb6m`V7^gQMl+9n_4Sw2^s!J_t;N!pnijh({kZ1Pqm8JrEZXJU3v?-u5f zuu_<%xaaw~ou&uRxHl|HjNX=`+4|S+eYgJ2*8eJV4B91I`7M3f zyuEJCpP!#ge!XpNXxH|gPB}R`V!AOQnd;9DG%`o*UH0qz)Y;bedydo}*}q!KHSkFA zDGrF#y>A4j`yIiG<(etNSQ@m93cE2?{ za{Rcmip7z8+?n6=-u%dIf3ws1OpTqcsjipaZ?@)pEKW*|9_zN77~ekd<^Gl}CMTUu z*cR7Km+5Tf`8PAS;#i8&&NolhRq9nVn46j1xfi4;W$Asr#lWEB=j-cRzx0^mnVQ#Y zFTMJjdw-woxsZUD?XTRq7U-+a-NPp+AkgqUIL={rncvsfceoPN-psOO7uS#L$>0C? z+T-(LjsgYeZNDcxJ2TVo@7Z-nGp^KgEGm@KJ=CB0Oo@S&L00vHoOH!rCd^AVX{W-B`LGFlq6gL|F& zXDj~2E+VeaC(nr49v{)9+T&XgllSQ9z64W-qF+gy3R2%F{Otk4pcH| zcWQ8NuwPO8_v`hmz2%&NA|JnAk57JfW~SbJ>k}3$R6CAcvD@^{$;IjhYhE(LtECLS z3{s*}Jf7ZM_1tImtEIfAnP_%9?Dxn#A3nv}u(I-f~#cdqBUxgG02GhuyGGozB#D-;02D4Y!E;!F_z}#?K>r~M~wXYTxnufQ|b0|4hC~8D(FFeq|xHY`s zN<+~j{=2Hxlc&ww*KlY3;Vk(Gc5psAKeM-$Tg)m{wb<0XPv+o6<+#^6?*(7iNA&-G zU%Yo$>FxEmH&lFlRB!cu4}-&z6WqaSe(&sD&sokm|M<;rL4j`8m&%8=1Q*tFKUVXb z_HJ*?OdFB6{0{&4^VI#Vx*d-AiaI6*D>|^S8XRbd@Dk`|?Qs1RW;Myp<;scfv!RLG zJ`1atPcL0JtKeDj&pYX25$8^CUl|^5F#GI}XSefZ4n1U0*wkU{>MmXX@BaJC_Gh#$ z|2{k-zw7X^N6JNO4_~c*`E$LFhIR4de}6kxR5#BS+1Y>o4PSZpSruNzm5X&64m7;@ zx@@lB;;UH~HzYdGIQuNB_2Q|yGnOy6;q6^k<@$Y@?`*3tQn&tmPCI!`+uZVbQNfQ7 ziCgmiem@-J=;+wH+y8jK{P9!a;n!Z(@6iz9YH4q8b~thN^w*gk@x2;1>h7N65nQnQ zW=~Um>7{-45)B?4InQTlEUHS*ws2C!RcclJIud)`-n% zzFVzym;28@W^6of<+XKTtB*dPZ~5x%n>(7FJnh$S>?~g1%v}89g5nwfdGELFJ#oUL zN6M6IZ`HR|0%we8pS|(vv{=ozo9Pzi@8%rOp2k(WgjJP_G44o`nNjr zEaY%R}AQ>^Vekjm8c?bJ&BXSE*6N{`;vtVsTo>^`xpRWoUDNp7w$I$UcbK@ts#9yw>?sC$CC8>K7z4jgdksSDV) zY-jzs#Rf{GmoH^lLE744D~EYZ zlfVP{`Qg_CvU~bOzDn#v#){`&PnN2d8tc8yy8brXa(?x`V_s{s16N_R4%=8OAi zfyU!*=kMQpsZfdW?`%7UtpWvKHy-g~u5D3@aJg{ydhTo`^~4vC?*2bB;b`NMALG`qzD-)bMb8-Sc~kf|vVMlpXU4S^8*wV8+7WR)@tqw4~e%;{5J%w|voR*)_4= z=ELu%1?!FmxK>?gayzv3PwtjR-c=s=yLIN;JdNsoxb%;AN7t7%s(uT$eUlNWU$QN& ze(F|1K|#juqe02xFIR7jT6@BB`s0gp<}K*j;vo5I_g(HFhKHTg6D`*}99(ZTMP|Pc zQ$j;7OUDN5!(42f4AC520n$zRrpgbm2f(VFS3Grngh{&Qx&t*U=@ zRlK8MPV+Wj&XSL+0cI24zyI@Voo2<;xkrEe{4HBw@wnGK>*};seQdl^373|5?no{; z@4fzA&8eqr6Os06BXXgr6I%_l7*gY)#^5Wv*l^drV*?D%y4nT-wYr z&4$&hFDszRt96sH*30~LTy481vd&UV<;VzRE1gnaw*1@E+=KGsZiyexKK}4_RsNdy ze}C65)iyu&N&3O!e!E%wcPqTE|6KR8eWOzRVcrnl+>9Ih8F=66G<ds<0?x@P5V6~xMvgs=CLXnu$Hw8NcBqTZ}Oc2&L-3E;fIHZo2Ti=_sy>_+c{l>VL|!(do!#`wM+z+;_ha?S6nV+ z@Z>r3fu(U7;Hifk)dAt?9APQSd&|-8YY~$_KJev=O3wmltCs_T; z&#|4nuI9@_R`qs%`Fl^MhQ}RzcGgt8==;md?7_?ZwwmVO`!jdv>~_(4`j)n_tID3b zJgwhf{65~FNmF12Pn(};)3Sqa1?2BZzdgK5+2wKIZRza+oLMFPl1-ak-3wQ}FmTzH z7=KUf%uN%W442!>`S<*KwOZFK|K6I|eKnSS^7ikhoPBn7cJiw$D_>mNE9~Qb@944I z`wcS%SM@o>H0$lKe#hyOCH>gxWaOTG*<25vxcBawSTCB`tJj>{@N|#RHE*ttrA#-R zO0A7N8WspDvUCL;k66Glywj{9bFR2{`ZTBine-ARs(G%jVnx>zAz4PAorOZEZ z?DXllV_z~audXjmI(6#QhMb#5^UGd^9iR5oq^4xCGmD0^tA_Jwh8X*g|L;t?9I@x` zL$&R${8s-iX?vUO&$}rYe6@GuAGRCI{pa((?yLXutlNIiM}H+Lg{hw(adWWD)e>Rs za`@6^s^lcy{VmaUK^Tk0vjsmI7*Z9iT)!M$_c?M$L{>QC_D!tw>*Zr^)gAtLe$)I{ z->S}u$JZ3zem=jxum1n<`x-iHtkwvMh_txN*NS|}z#=?j9}7I=p+ zv6;#@D}*|;XuREh^Gr|MtQV)EOtw03Imjk|-7RBY?^5{s#<7z{lIl!eeJoe(0@6Su zUUTe>qX^rtSB|_~beQ*Adc9al@ab>Mm-o$I%*)9q`0d?Y?yXV1p!htu=cYRU zYox{dOQ!w`o43#-L`#EYKDyom+q8% z*ECnKEnUzQxaX>9V(?s+;Q+GsHuljzs z#-({)*;iOSPUT&>ekkn0nf=OtwPxxV83_qK6f_W@UHIwA$*6L(Lx&E1I3n!tuz1}* zmmSIV$NK`b{@*+E>%n3E4Ov&UreC|d(3#z);6L+@pU-BmmM#AGr?Tef)#(xY>-IYL z+)Xe@IFu}`75D$!?R*bE&$6m_OTDKpirrl%y8iR0PX(V+zH(kT-YbzdLVYl*?lG^VMtr2ilsOO}w>i$NsnVB_=|*79EM|$(OUr8R_?H3$`BcGnH zTWKP$|9(cpokzi&{?*5r8*Q>OV3_bf*`Vv&m9wYjY}jC+6Sak7V{cNd)%*4P{~g-$ z^75Ton`?i6llXc-W4er_zs!t|4vs&+@7C{*ar^tY-#+Q+DN(uBQ#Fn2CQI_Z)A{h# z=+#b;!<&U!>qAzxt>j+O${-+^RJvAh3D;3sUpIxA+Z=(nmI-(~oV=)>xm@68+ndwu zA5Y&b$vOX1&UMZ3ytgjC5M%FpI-Ai$?c+??yFf2UAxb5Gi=Gc%+@Pyer#p% zy6St--Due*DN4%9hA%toJ$IBp+56+uYJJ(V`WV%P@lDZE2IcoE)g2CWiI$%1e5f5I z`Sr@<*l*9S&bjb9Ux4LBh@ygkP_$hSN3Kp(TNzX1f>5@fF^5mevIH$~&2WElg|}eW z2M)fc@0k`C-Am5Qrxb|NH7FsNKPx(iunAuy82_5O<~-rKn|{)`}^*`{ajpJ{1Ft~*Wd3J5S0vF znzhz%x%2niyA~HeKgZ|SvDwnVYpIaG{ogIoz0!;eQoE;hbao!Rwl?~%)&1KnTXa^3 z?_0Bco)kx5`@)54Qp)*NQnAXy^%Jgq5;WoKa^5_lEI^xS!9K0yi`NOQ;Bi}hp~8f7 zA7^@3-=UnnF;91VKB^v=r0wM5pwqUcg5!V2XA!HG?+tE|)h-9MrajzVEM2hbgMP%3 z*Xn_H?|WJgWulXF8sD8{jA99;<&zg zS?ji*o}R4p-TnRL6E@3P6e#Tb@rgTTN5R3xUoAE(2Tz_5?0cv3`P`14o)U|1ACJq2 z&t5IGfcL-(b~no{JUfgZ`Y~L3bEM?W4Z)AH$V*G=|NUIvg3~9m>oIm^&m;EaIH! z^U>fSeljfYJ87<{!htz+o~@s zG~~lphDcba>4dF`dHBg{)uKZaGq20>+k9ZyRr2!DMBBAt-GTf)MHb(Fzu*7(b^g9} zANL$?=SzNfXXhjlOxPT(rK{5fp8B%j6B$R)L1O z&&?Ki7D&%n+nOPJYvm%HTURIC+<5x;g0LU^n7&uJe-j8g>f&f7^8evZxdXAx?+~1TW=%24n zMO~j&tjAt2^M|?i*O$T*dkf9yT-jBcty5QMxM}Z@*YYbjzv)7j`q}^%2Z%+vauD`MN*Y_QH{ayFQ~Oz?Y?iB|!E}?njZO z3!IpJRhmM03xXreU0BVWlVh`4R!dt=aov4rzIeU!v%>pbrS~{0&Nc>`ZCLnahtxKw z?|Xl{8TK0F-`f-AtoHEX!wYO#A8+UHw@fv+v60~x*DJYQsrh`pbA9561qb<*^32Qk zNxr_mzWu1u+spO7eLnTMd_L3lVhuii?BvTovo?DBquKfU3$xzMDYmqz_@MCX+so*a zotYw+IriuLJ*sK#wNyx7uS$?t+H6hX9Jj@eySKfaFmvY1DR;92k55tD;$Qn?#XRZu zqQE^H8r(8uMA{qAxr%v&V4T6=jGv1-{7|R;J&}Vv$hHf$pk&+3kn4l*Ri`w4z7#c z9TTOVu>akwmCxNAG*^I9Z&a#464UI(sTnr6T1(sgM62#T+ww!&>|)az;rN4-=Y@T> zXb+d2(XcG_f{CW~?$vzuo&MJH^wqvIS6A%{7nYIfc^*8^J!3`k=G**se;A&hn_FCY?$w+b zaeJ#4hOdwFTYFP9?`2i@X}+FinVL+qu7xvRDgL`i$mD{?mX0fCj$77Q{yKKAcg2A; zju5u^o4z{?i=zH8cCQt&e3mm~?ev4CyBY)U9(Y~9_3XmGTm|p;XEns$-^RmVyjC(I zbLMN_-=LB|a$k*Q*t&?$4I4IeB|Ee6Hy%woxcmLCZI>TvvGd8TxMaw|%j^2-Pl`$A zr6Ui2JUcr(d(FC4y|3m-q_6P2yF+W;zgjC+L#OvE)-$bm{>xc4V}X!KhIE;>(w5$f z%4&iOXK`eR)>{d1mIf_TuiURiy!Q^g4&SMDhb?wbb$v|u(igG1`qK_o zGQK%0Aij48$I_*Jd{Ztatl4;RVGL->?d7DUQ&-jW$yhdp$5&rX{{7VN%vSsS+#R#T zpS-#sFCPD9a^9Y=SCqvMzB2gI;n}qDDoanEJ@?_L|H5t4`jzU#u5&rA3eaFl-TV2G zvQCm@U+lepV^{arhuz~2slO^ZXv>}W&zK?R)h+3_2O63ETGdXSJbBVFaAC3e-bs^$ z_I&*oEoZI&^v}=d^CNy;3bHZ(Y}xK|-TK`Q=CiX*4^LX^eJAKu=~U3^Nt4xlo5Eg4 zFqVCL6S>4@{-dz#FIQ=l*C(~zwLSB)_)OYn=c{44JA{gqdOIG>dl#;IHMrkiVFHt` z^CQ6pR~GsF)7nMvCDdA)n~*qnS`+Irzaz@ER?Zih}g5`X$=x47ZMkDPw* zKbc4raPI0`m(6%JxPQH%M8N|iSeRxISVuRFAB3m*pF1qxc zU(TkZ^7HeDk6iC>uh7@kJ$m#{_luj0H%%@zU8Iq8b5rUGyNPe7#FkDrGI-CP zlgszEoi9sZI8f!;Sp5I~y}8H2YUftU{QvjA{CjN9{cL74vozi`?}Za4Oqj5A^4`c< zZZE}FhFY(5Q}$i{-e{KZ=d>k#&tk2o-pX85wq(U+lZ!s}vrA?0 z^}X8K?@#y7t$b*)G+{$;?z^pjYwktdcy@kc%A5PP&nxGB{w#57R+Z!Wb+2uHzu8># zZ{m4>i~S4MukU|f`@XuQr0mQiuk>|!k+SD)zuyTx9IiC+!P@Qj9$lE-{^Q5v{^ehD z)?YupE%)}0@As;ArXJS~ug^8Tzd4=%{QeJr)|_85b0xc6MMJ**@3)-Y4aGZU?*Bjd zz4H0o@?~Fi&aRF4bcW-dmu0iq)3Zx=a_(?`v#OqFzxIh+tJa289J<1O{Y1{R$`p(G ziIbUsSAIRzpYrZBZ`dUU<_VSio1Q%Uu;u@~S65f>{J-ya+d{TY>p0vh7t*MKi9u~8*vU>6IrJ`K_+hUt951e!E)trp=Snj_$ z{r$YmtE!>z{Dg0*nfrBrTDj9G1q zb4t#B%{0u}`OePr)U)Sn{~ue~_*dl3rT0Jd%~bgfybhjN9V)Ur?fa(VMc1xeIkJ7< z&$ZfaKhK+8HmUsk_4?1F-uo4%NB`J=rB=J^$UF}P{W#a11)0gM+Y<9d=4&7Lt36Ng zP46Z{v$7m5(|X++si3ycdnL*mg_-v+R|_~Fu&=$t-0Mob`#GPFGgZF}eDYbJSEQHP z!y-PZ{=xrS^Oma@@4Iq3a*CH+0>hg%=N{A_FZk5G`fvW_Wxh2ZPwH<rwtv`0`#@jV3_ek!y z_P8KB@!dlICu@2B-sEE|iv5y$`-RV3#bh;!Q(qG_g_nxR-R*uTlEIaq;OVOTb>Y@G zasODGQUy}{`1hankNzilSntHez|JYI4U8Hk6_S;2Zk@1LEsez#=h z%9p$5CC*aQmEZQ^T68{W&@!?+tPg}>^lcn z29JNe)DNerrjs?6zBn7Vz`VGT`L6zCvqutsj7zU9aa>?nBK&%>bwv2yxx5#ny^Cy} zPIVMNd9->^anTpmOS}A(W3RW+>dQG zTc)jF_uo3qWmbMf$41%irn$-S*Uwk}ezg90{h=8pGE+k$StXVxJlU$%HMe`YoZFe6 z^(#Hz6t1imG;ed4|9vw=I^)3N>dJ(t*H?bL9xNWyy6oi+lbv@f=VXeXoWa@0zsIrs zmyYer&rjBfWG0s!+y5hW*6az(yLc}~|MdD?{3E9EDom#rnYApNS>95XD+;|`(V@Ij})qScuyk;A# ze@suJZfBe_?f}{j}O=Y|6^Ww(gWtxuPwd<4m)g-D^yNtxb1J}>6 zI{R9n+C=f8>lw-U+74It_iPP~UitC*Ws#d6CIRkOwuf*P>L=fFjsw^-4mU8~tow8Qsbkph`D_?E?ad)!+_kCjSH+w{WRj&Mc|K;gz zlQsA}7v@Q7?UtQUcr=f{{_y&+X64%(9~tdh^sFQi-a>0+5FMK4Zon`rV#=KX!|OA^oSyztyPV`Iq-?1BREAMVHj~`P2ukkC>rUzJxPB{)h9=BX=%dxL`7O z*$1{&f4z4uf0$YGjw|V()gHZi~^?#?($?yfA>wT%y;)62@`YOz30Dv zUwp&Mi?t@LvpuDhb9(L``+4#E%7XS6=Su@OY<{wqXIrvinL+5a{X$1oPuU${SklMp zDbGE%O0s^@kwezTE@h{72H*JFOfFy^hg z=a;*naktdGMVF+1Z;_4aYhO2IyU~-iJnXyUj|G~^_wMnoUu29U9kJ8#ui)eCuKh$YA!pzwsOVFj0Y>X)_W&c*ed!jy|N{yb#abS+N3!%pM5wQ ze{pW!QroYJ+mfe-=5`BApJmR-w%}7A&n)+eb>U@6V%;BdC6%^&RR~@Ve%MzKeOKAU z)og>|w#_;D#(Jig4K?a-Rq~bXb*W!Bncux{(Ue04OFZJH?5`9}U{Kngc9EIyWOL#Y z>rBPqkbAS$wxkx`eW{Y>Ui?LDUc~3?J4)X#(cRJ=7{9D{-kHjKFMsR0TAx39=6GuS z1nnbFpT#yXa^#+T{K@*r_pnoQX0&>QyU6r8Y2ftkDh%HuUj-*87E;n;x#3pKhHTYhtN=*kN1q(}i0_-pCl%-)(y3CMADv znn~Ns(`6ripA!dVLet5~@{@0g8J@2{`}+UdeNWZ4#>*u>F~1t|vGVUyjsvn=J8aFm zb_dmM=z95icXLhcVf&3bJ3g&4)sHl`G&_7`qlM*;{#gf#*f!10>ALGz{3R@l>8nZ0 zwX?Ss7GJp$(vwoy(PDV!b*}z|t(U%}-rgV+To!Yr$w>d%0iR=rCT`!uf-3M2=c0Vy|GW>4ZYsZOdn}gM zf1}QhqI3Bc^L)KDxyq*P%dxh7`FW14tz-PQ-o}{eK2t=wul=c+StxmTb%)(7h2l+3 zSF9BSxc~c9AG{zk@wRcxw&xKnOF5GIc9iN{zm{`Lu7C9S$+r;h^>IH0V^?0wF1xYk z_J6CnFOBbP{iFFV=ATPsxxVI7yWIM7GdTIa?m2YyOQqH2bOx0j9jy6|ED{X9%^&(? z?p00xG0$s`&(D7k1e3o^@cpt-Wnb0GazW$Am+q`tf3NR)=~KO&QyrJ*+PO!6>Yw~C zsCAwdfSo<6)R^o#;EHac4s{L^5Nm7anl6qRX0Ci;%U%c z&|y1E<$9FL$25u1DSAtb7XFl3_0BK&qE7RsBX2&wvNJoHxBt=KO6}&S5-De&Y?)^s zC6lnlpkeh9caLSs3AbE#U0VAk-MV7;_v<{*b}f|%=Mc+ikPN>VbKrV{L6w5jMrW=X z@3Y%Cd3=2yw8QCAs!CeFcX6_Xt55y%j`{ZYbq(JzxmU%zI?w*5dstkk{(z?A>WzzY zrUdak+bwyb3{>i<^d<(m#kl?EF6?BLO<;&oY@c;p_{sU-9x{C1xjvjP6lbrxnup%qvHqmO-?#~9*hP&Fes{Ydx^S)Kq3vl)ZKKXe^3LV% zyewRIX6a7DH#WPT%?b1$hZqMYw%xOjcXn^O-uy|kClh~{edis!A=ZhpQ= zPo@7|a_-eIKfX7IXSg-2{Lu0<=5e^e+ef13=kRVzPPAZ+YU?km`eE?g&A%>cz4AfV zj+K!ijA?V!vxKWnJU5!Vzw+Q%d_MY>s;u16X-$$+cB<;gH zj^+ij&nWyimF?eDwxe?VFNGbuVlQnp3Ed~^ddPay52=*nu2cN-zcHz^*PUN>Lr+Ve z+d%K`*=e(^U;52g%{}5N(yn&r;{{W3$MTl9-tQkTdv*R?2G{zR67$dHN}ehG==Qu@ zWQ~riwYs~D)0s)Eh2ocT>W$m(r1-O+n9sXFNAug>InTmau07|xJLh>59H)KUhN6_SD*E$&hF2Mjf7tP7Nsr*4bzCOC>CZQ{N5t=KK2~5nb>EFG z|7+bXBl->o>}y~5B@$G*96UGC$W7zc&zW_VP93K`8g{ZRUoi2nhQm75hN<-v&T5rU zbv^pb=3sAS$^M$#9iJXuv$5IqO8;i){~w{u9gAf?g|Xc>v^3o@U+ccmqt?1rf4w7v zD~%_<=FoGs_P^#+wB@_Ggx|!?^JPR+&m8gDucCOw)T3dh(&GER>r5T~&5>Wep+fEV ztGf0BzN}iaK37aXnb)n6pLh1~HP!DQeCj{j$9(2$`1rd;=IMfk3w=MU1>WAcVXABX zwqBRS3C_0bFHFy!K2z7}j>D$42Cnx~#qOnMYLze7EUP{l{~<8r^TQ|N_Y!Pu6CTIM zs%%)+vHs$M9{nexkIqM&dgAoRL|57UhRp5O`?7OBd_Kl}x}>`#_qbBFn&q|s*1Il0 z&*|fQf{anf{ zeUDZRX(_3x`=Z|ER?ONhJ%8R*&t0tA$E*KVdx)@Gnpbu8Se|lNmn{~i-LfNY6SFb% zEVFA}Z&%B|K2X>tbyQCOs2u;X2KM3;%w>{ljMEPVXFsZs&3cq=@X=J_h26=GNr?d( zLPs6>O8yJ6x5t+D3x0E3Uh6Z(%uVvt_X{(v4j24WI{vHP{H?cQt3a`PS;Dgkn-0p9 zCG%8laJw^Oao!ri>%6vQmzd4o&FEcz>yYf`4|=8_uS68-sEG9*`%onp`!#pg;_VME z-P!S_Gk&|~*TqMEG1N0Kz4CN%3|YEiO6S{%EywOJw!eO|@!fQTw@R$m)y?6$Ei-yp zW(XBf%(OPmkr(vUvk}De&G+_F8_tU zWn)D7)@|t3w)u8VcH`1$j}HGU?AJl9AD6$SYgX=(ylr^VRNO9{m3e2qpBp#x94Q-z zV?GzA=N_K$K*=R?GJ|qUL`c&+4!P;_)1NI<3pnqwu>a}8ty_-uFJ9=GA(%98f|P{f zkwufX1|=+IkkI_XWH4uc#3@xy#dU`tNoFXu2sm}HIy3bMIB_UGljSsU;!tdvQLb`; zL$O65>E1*JWsrhOcd&wbd@91dB$vjufQ&g3qPdhOwz*`bILLGk!%(Rur3+SH;T8m& z-KHmN5&S9?WWJNnVaZs{w*@Q16+s#eL%lNFOM}Dnr&K9|lnMl=u09m^clmeOeCE`4!_yV=)2b{%Vgi#l=6;p`a8hA+#iJvqy;fekq~{5;;L)oo zL2EmobcR2e%<%ct^bNAT@28YSf^~#H&!~AmRX_2tYB;A&{r!)%UMuHM$%DuV2YdZ} z^7D7!d+Gn5=ihA&c_aC2UC^r|z4h_a!2UZjB}l!?*7^S4FSWOx&i``u`u3~8_Pjg1 zVD0`wZ()$>GdirIP1fACuYU4(q4)jjqq$eW%teWBr_GfB`E|;qpjSs+9@hoi$gL3#6(i*nR5aItl+d6_tBJe?=`5NznVc zws!lPZx*+hXDusZmTnN`Iy7rp<@)rUAd4exrUbRIWiH^hSUjcd#+9qm$>GwzcmFdR ZFlm`x+0fg>z`(%Z$?odsvd$@?2>>739x?y` literal 147662 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

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

T;%3QhdBG;OYJNGr2@@P# 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 z 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