From c1f6e02d14a4be4ae6941bd05b4ed82065ca3a17 Mon Sep 17 00:00:00 2001 From: Marxsal Date: Fri, 19 Aug 2022 00:14:04 -0700 Subject: [PATCH 001/937] Fix missing links in Getting Started. (#6900) * Fix empty links in Getting Started. * Remove standalone TH reference and combine lines. --- .../tw5.com/tiddlers/gettingstarted/GettingStarted.tid | 10 +++------- editions/tw5.com/tiddlers/saving/Saving.tid | 4 ++-- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted.tid index 7b0d5dedf..193c02c70 100644 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted.tid +++ b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted.tid @@ -1,16 +1,12 @@ created: 20131129090249275 -modified: 20200507203622933 +modified: 20220819041016415 tags: [[Working with TiddlyWiki]] title: GettingStarted type: text/vnd.tiddlywiki -The easiest way to use TiddlyWiki is to sign up for a free account with [[Tiddlyhost]], an independently run community service: +The easiest way to use ~TiddlyWiki is to sign up for a free account with [[Tiddlyhost|https://tiddlyhost.com/]], an independently run community service. If you find Tiddlyhost useful, please consider [[donation or sponsorship|https://tiddlyhost.com/donate]]. -https://tiddlyhost.com/ - -If you find Tiddlyhost useful, please consider [[donation or sponsorship|https://tiddlyhost.com/donate]]. - -Click here to download an empty copy of TiddlyWiki: {{$:/editions/tw5.com/snippets/download-empty-button}} +Click here to download an empty copy of ~TiddlyWiki: {{$:/editions/tw5.com/snippets/download-empty-button}} The next step is to choose a method for saving changes. There's a wide variety of methods available, with different features and limitations. Click on the badge for a method to see more information about it. You can also click on one of the platform filters to restrict the listing to methods that work with that platform. diff --git a/editions/tw5.com/tiddlers/saving/Saving.tid b/editions/tw5.com/tiddlers/saving/Saving.tid index fda400295..8210bba1f 100644 --- a/editions/tw5.com/tiddlers/saving/Saving.tid +++ b/editions/tw5.com/tiddlers/saving/Saving.tid @@ -1,5 +1,5 @@ created: 20140912140651119 -modified: 20220401151525812 +modified: 20220812144516626 saving-browser: Firefox Chrome Edge [[Internet Explorer]] Safari Opera [[Standalone App]] saving-os: Windows Mac Linux Android iOS tags: [[Working with TiddlyWiki]] @@ -34,7 +34,7 @@ type: text/vnd.tiddlywiki \end <$vars stateTiddler=<> > -Available methods for saving changes with TiddlyWiki: +Available methods for saving changes with ~TiddlyWiki:
From c8ad3859471854375cadf6e7a3fcefb6827972d0 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Fri, 19 Aug 2022 11:15:57 +0000 Subject: [PATCH 002/937] Docs: Update code of conduct --- editions/tw.org/tiddlers/Code of Conduct.tid | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/editions/tw.org/tiddlers/Code of Conduct.tid b/editions/tw.org/tiddlers/Code of Conduct.tid index 830610ba5..723e3ae00 100644 --- a/editions/tw.org/tiddlers/Code of Conduct.tid +++ b/editions/tw.org/tiddlers/Code of Conduct.tid @@ -1,5 +1,5 @@ created: 20220721200137586 -modified: 20220721200137586 +modified: 20220819200137586 tags: [[Table of Contents]] title: Code of Conduct type: text/vnd.tiddlywiki @@ -17,6 +17,7 @@ These principles guide technical and non-technical decisions, and help contribut * We recognise that the motivation for sharing and helping is usually for appreciation, and not financial gain, and so we take care to acknowledge and ''thank the people who enrich the community by sharing what they have created'' * While we are united in our interest in TiddlyWiki, we differ in every other conceivable way. We choose to focus on what unites us, and ''avoid unnecessarily mixing contentious topics like religion and politics'' * We treat each other with respect, and start with the assumption that ''others are acting in good faith'' +* We avoid discriminatory language * We try to use our strength as a community to help others * We avoid responding when angry or upset because we try to de-escalate conflict * We make sure we critique ideas, not people @@ -27,4 +28,6 @@ These principles guide technical and non-technical decisions, and help contribut Our discussions are in English. It is not the first language of many people in the community, nor do we all share the same cultural background and reference points. So we take care to use language that is clear and unambigous, and avoid cultural references or jokes that will not be widely understood. +It is not acceptable to make jokes or other comments that discriminate by race, gender, sexuality, or other protected characteristic. + As an inclusive community, we are committed to making sure that TiddlyWiki is an accessible tool that understands the needs of people with disabilities. \ No newline at end of file From 11b258a14bfe713433166397fc86c1b4c0270d67 Mon Sep 17 00:00:00 2001 From: tw-FRed <95534072+tw-FRed@users.noreply.github.com> Date: Thu, 1 Sep 2022 09:38:26 +0200 Subject: [PATCH 003/937] Fix tag pills style (#6934) --- .../fr-FR/tiddlers/$__core_ui_TagTemplate.tid | 33 ----- .../tiddlers/system/$__core_macros_list.tid | 113 ++++++++++++++++++ .../tiddlers/system/$__core_macros_tag.tid | 39 ++++++ .../$__core_ui_TagPickerTagTemplate.tid | 25 ++++ 4 files changed, 177 insertions(+), 33 deletions(-) delete mode 100644 editions/fr-FR/tiddlers/$__core_ui_TagTemplate.tid create mode 100644 editions/fr-FR/tiddlers/system/$__core_macros_list.tid create mode 100644 editions/fr-FR/tiddlers/system/$__core_macros_tag.tid create mode 100644 editions/fr-FR/tiddlers/system/$__core_ui_TagPickerTagTemplate.tid diff --git a/editions/fr-FR/tiddlers/$__core_ui_TagTemplate.tid b/editions/fr-FR/tiddlers/$__core_ui_TagTemplate.tid deleted file mode 100644 index e4b944483..000000000 --- a/editions/fr-FR/tiddlers/$__core_ui_TagTemplate.tid +++ /dev/null @@ -1,33 +0,0 @@ -created: 20160504080001125 -modified: 20160504080318928 -title: $:/core/ui/TagTemplate -type: text/vnd.tiddlywiki - -\define tag-styles() -background-color:$(backgroundColor)$; -fill:$(foregroundColor)$; -color:$(foregroundColor)$; -\end - -\define tag-body-inner(colour,fallbackTarget,colourA,colourB) -<$set name="foregroundColor" value=<>> -<$set name="backgroundColor" value="""$colour$"""> -<$button popup=<> class="tc-btn-invisible tc-tag-label" style=<>> -<$transclude tiddler={{!!icon}}/> <$view field="fr-title"><$view field="title" format="text" /> - -<$reveal state=<> type="popup" position="below" animate="yes">
<$transclude tiddler="$:/core/ui/ListItemTemplate"/> -
-<$list filter="[all[current]tagging[]]" template="$:/core/ui/ListItemTemplate"/> -
- - - -\end - -\define tag-body(colour,palette) - -<$macrocall $name="tag-body-inner" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/> - -\end - -<$macrocall $name="tag-body" colour={{!!color}} palette={{$:/palette}}/> \ No newline at end of file diff --git a/editions/fr-FR/tiddlers/system/$__core_macros_list.tid b/editions/fr-FR/tiddlers/system/$__core_macros_list.tid new file mode 100644 index 000000000..93349d46c --- /dev/null +++ b/editions/fr-FR/tiddlers/system/$__core_macros_list.tid @@ -0,0 +1,113 @@ +created: 20220830224607117 +modified: 20220830224638865 +tags: $:/tags/Macro +title: $:/core/macros/list + +\define list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage) +\whitespace trim +<$type$ class="$class$"> +<$list filter="$filter$" emptyMessage=<<__emptyMessage__>>> +<$subtype$> +<$link to={{!!title}}> +<$let tv-wikilinks="no"> +<$transclude field="caption"> +<$view field="title"/> + + + + + + +\end + +\define list-links-draggable-drop-actions() +<$action-listops $tiddler=<> $field=<> $subfilter="+[insertbefore,]"/> +\end + +\define list-links-draggable(tiddler,field:"list",emptyMessage,type:"ul",subtype:"li",class:"",itemTemplate) +\whitespace trim + +<$vars targetTiddler="""$tiddler$""" targetField="""$field$"""> +<$type$ class="$class$"> +<$list filter="[list[$tiddler$!!$field$]]" emptyMessage=<<__emptyMessage__>>> +<$droppable actions=<> tag="""$subtype$""" enable=<>> +
+
+<$transclude tiddler="""$itemTemplate$"""> +<$link to={{!!title}}> +<$let tv-wikilinks="no"> +<$transclude field="caption"> +<$view field="title"/> + + + + +
+ + +<$tiddler tiddler=""> +<$droppable actions=<> tag="div" enable=<>> +
+{{$:/core/images/blank}} +
+
+ + + + + +\end + +\define list-tagged-draggable-drop-actions(tag) +\whitespace trim + +<$set name="order" filter="[<__tag__>tagging[]]"> + +<$list filter="[<__tag__>tagging[]]"> +<$action-deletefield $field="list-before"/> +<$action-deletefield $field="list-after"/> + + +<$action-listops $tiddler=<<__tag__>> $field="list" $filter="+[enlist] +[insertbefore,]"/> + + + + +<$list filter="[!contains:tags<__tag__>]"> +<$fieldmangler tiddler=<>> +<$action-sendmessage $message="tm-add-tag" $param=<<__tag__>>/> + + + +\end + +\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:"div",storyview:"") +\whitespace trim + +<$set name="tag" value=<<__tag__>>> +<$list filter="[<__tag__>tagging[]$subFilter$]" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>> +<$elementTag$ class="tc-menu-list-item"> +<$droppable actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>""" enable=<>> +<$elementTag$ class="tc-droppable-placeholder"/> +<$elementTag$> +<$transclude tiddler="""$itemTemplate$"""> +<$link to={{!!title}}> +<$view field="fr-title"> +<$view field="title"/> + + + + + + + +<$tiddler tiddler=""> +<$droppable actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>""" enable=<>> +<$elementTag$ class="tc-droppable-placeholder"/> +<$elementTag$ style="height:0.5em;"> + + + + + +\end diff --git a/editions/fr-FR/tiddlers/system/$__core_macros_tag.tid b/editions/fr-FR/tiddlers/system/$__core_macros_tag.tid new file mode 100644 index 000000000..76b7bf70e --- /dev/null +++ b/editions/fr-FR/tiddlers/system/$__core_macros_tag.tid @@ -0,0 +1,39 @@ +created: 20220830190922373 +modified: 20220830191056761 +tags: $:/tags/Macro +title: $:/core/macros/tag + +\define tag-pill-styles() +background-color:$(backgroundColor)$; +fill:$(foregroundColor)$; +color:$(foregroundColor)$; +\end + + +\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions) +<$vars + foregroundColor=<> + backgroundColor="""$colour$""" +><$element-tag$ + $element-attributes$ + class="tc-tag-label tc-btn-invisible" + style=<> +>$actions$<$transclude tiddler="""$icon$"""/><$view tiddler=<<__tag__>> field="fr-title" format="text"><$view tiddler=<<__tag__>> field="title" format="text" /> +\end + +\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions) +<$macrocall $name="tag-pill-inner" tag=<<__tag__>> icon="""$icon$""" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/> +\end + +\define tag-pill(tag,element-tag:"span",element-attributes:"",actions:"") +\whitespace trim +>> +<$let currentTiddler=<<__tag__>>> +<$macrocall $name="tag-pill-body" tag=<<__tag__>> icon={{{ [] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerIconFilter]!is[draft]get[text]] }}} colour={{{ [] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] }}} palette={{$:/palette}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/> + + +\end + +\define tag(tag) +{{$tag$||$:/core/ui/TagTemplate}} +\end diff --git a/editions/fr-FR/tiddlers/system/$__core_ui_TagPickerTagTemplate.tid b/editions/fr-FR/tiddlers/system/$__core_ui_TagPickerTagTemplate.tid new file mode 100644 index 000000000..30ebae9d3 --- /dev/null +++ b/editions/fr-FR/tiddlers/system/$__core_ui_TagPickerTagTemplate.tid @@ -0,0 +1,25 @@ +created: 20220830194301860 +modified: 20220830194658750 +title: $:/core/ui/TagPickerTagTemplate + +\whitespace trim +<$button class=<> tag="a" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}> +<$list filter="[minlength[1]]"> +<$action-listops $tiddler=<> $field=<> $subfilter="[]"/> + +<$set name="currentTiddlerCSSEscaped" value={{{ [escapecss[]] }}}> +<$action-sendmessage $message="tm-focus-selector" $param=<> preventScroll="true"/> + +<> +<$list filter="[minlength[1]]"> +<$action-setfield $tiddler=<> text="yes"/> + +<> +<$set name="backgroundColor" value={{{ [] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] }}}> +<$wikify name="foregroundColor" text="""<$macrocall $name="contrastcolour" target=<> fallbackTarget=<> colourA=<> colourB=<>/>"""> +>> +{{||$:/core/ui/TiddlerIcon}}<$view field="fr-title" format="text"><$view field="title" format="text"/> + + + + From 3b2c64a85b1bb01d0782e29321e01067c9f55ff4 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 2 Sep 2022 21:28:32 +0100 Subject: [PATCH 004/937] Update release note --- .../prerelease/tiddlers/Release 5.2.4.tid | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index 97b5daf3b..45de29903 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -1,6 +1,6 @@ caption: 5.2.4 created: 20220802100223020 -modified: 20220802100223020 +modified: 20220902201505817 tags: ReleaseNotes title: Release 5.2.4 type: text/vnd.tiddlywiki @@ -11,9 +11,17 @@ type: text/vnd.tiddlywiki * -! Translation improvements +! Translation improvement -* +Improvements to the following translations: + +* Chinese +* Japanese + +Improvements to the translation features of TiddlyWiki: + +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6882">> the [[Translators Edition|Translate TiddlyWiki into your language]] to add an option to display the original English text underneath the text area +* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6933">> "delete" button text in $:/AdvancedSearch so that it is translatable ! Accessibility Improvements @@ -21,11 +29,12 @@ type: text/vnd.tiddlywiki ! Usability Improvements -* +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d62a16ee464fb9984b766b48504829a1a3eb143b">> problem with long presses on tiddler links triggering a preview on iOS/iPadOS +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6910">> consistency of button and input elements across browsers ! Widget Improvements -* +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/127f660c91020dcbb43897d954066b31af729e74">> EditTextWidget to remove the default text "Type the text for the tiddler 'foo'" ! Filter improvements @@ -33,7 +42,7 @@ type: text/vnd.tiddlywiki ! Hackability Improvements -* +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]] and [[format Operator]] ! Bug Fixes @@ -56,4 +65,10 @@ type: text/vnd.tiddlywiki [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: <<.contributors """ +BramChen +fu-sen +oflg +pmario +twMat +xcazin """>> From 9b7edfc1a78422676c20b770e370c5de2eec0e01 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 3 Sep 2022 10:55:15 +0100 Subject: [PATCH 005/937] Revert changes to parse tree preview This implementation requires #6666 --- .../internals/editpreviews/parse-tree.tid | 122 +----------------- 1 file changed, 7 insertions(+), 115 deletions(-) diff --git a/plugins/tiddlywiki/internals/editpreviews/parse-tree.tid b/plugins/tiddlywiki/internals/editpreviews/parse-tree.tid index 205ef7cae..aafa30ecf 100644 --- a/plugins/tiddlywiki/internals/editpreviews/parse-tree.tid +++ b/plugins/tiddlywiki/internals/editpreviews/parse-tree.tid @@ -3,121 +3,13 @@ tags: $:/tags/EditPreview list-after: $:/core/ui/EditTemplate/body/preview/output caption: parse tree -\whitespace trim - -\procedure preview-node-properties(node) -<$let excludeProperties="text type tag children attributes orderedAttributes"> -<$list filter="[jsonindexes[]] -[subfilter] +[limit[1]]" variable="ignore"> - - -<$list filter="[jsonindexes[]] -[subfilter] +[sort[]]" variable="index"> - - - - - - -
-<$text text=<>/> - -<$text text={{{ [jsonget] }}}/> -
- - -\end - -\procedure preview-node-attribute-string(attribute) -<$text text={{{ [jsonget[value]] }}}/> -\end - -\procedure preview-node-attribute-indirect(attribute) -{{<$text text={{{ [jsonget[textReference]] }}}/>}} -\end - -\procedure preview-node-attribute-macro(attribute) -<< -<$text text={{{ [jsonget[value],[name]] }}}/> -<$list filter="[jsonindexes[value],[params]]" variable="index"> -  -<$list filter="[jsonget[value],[params],,[name]]" variable="ignore"> -<$text text={{{ [jsonget[value],[params],,[name]] }}}/> -: - -<$text text={{{ [jsonget[value],[params],,[value]] }}}/> - ->> -\end - -\procedure preview-node-attributes(node) -<$list filter="[jsonindexes[attributes]limit[1]]" variable="ignore"> - - -<$list filter="[jsonindexes[attributes]sort[]]" variable="index"> - - - - - - -
-<$text text=<>/> - -<$let type={{{ [jsonget[attributes],,[type]] }}}> -<$transclude $variable={{{ [match[string]then[preview-node-attribute-string]] :else[match[indirect]then[preview-node-attribute-indirect]] :else[match[macro]then[preview-node-attribute-macro]] }}} attribute={{{ [jsonget[attributes],] }}}/> - -
- -\end - -\procedure preview-node-children(node) -
-<$transclude $variable="preview-node-properties" node=<>/> -<$transclude $variable="preview-node-attributes" node=<>/> -<$transclude $variable="preview-node-list" nodeList={{{ [jsonget[children]] }}}/> -
-\end - -\procedure preview-node-title-widget(node) -
-
-<$<$text text={{{ [jsonget[type]] }}}/>> -
-<$transclude $variable="preview-node-children" node=<>/> -
-\end - -\procedure preview-node-title-element(node) -
-
-<<$text text={{{ [jsonget[tag]] }}}/>> -
-<$transclude $variable="preview-node-children" node=<>/> -
-\end - -\procedure preview-node-title-text(node) -
-
-"<$text text={{{ [jsonget[text]] }}}/>" -
-
-\end - -\procedure preview-node(node) -<$let type={{{ [jsonget[type]] }}}> -<$transclude $variable={{{ [match[element]then[preview-node-title-element]] :else[match[text]then[preview-node-title-text]] :else[[preview-node-title-widget]] }}} node=<>/> - -\end - -\procedure preview-node-list(nodeList) -<$list filter="[jsonindexes[]]" variable="index"> -<$transclude $variable="preview-node" node={{{ [jsonget] }}}/> - -\end - -\procedure preview(mode) -<$wikify name="preview-json" text={{!!text}} type={{!!type}} mode=<> output="parsetree"> -<$transclude $variable="preview-node-list" nodeList=<>/> +\define preview(mode) +<$wikify name="preview-text" text={{!!text}} type={{!!type}} mode="$mode$" output="parsetree"> +
+
+<$text text=<>/>
+
+
\end From 93e1a632b8fb2624b1200739ff05761d60681958 Mon Sep 17 00:00:00 2001 From: Roma Hicks Date: Mon, 5 Sep 2022 10:04:47 -0700 Subject: [PATCH 006/937] Updated URL to new public site. (#6496) --- editions/tw5.com/tiddlers/community/plugins/GSD5.tid | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/community/plugins/GSD5.tid b/editions/tw5.com/tiddlers/community/plugins/GSD5.tid index 6471a41bf..8239fb06b 100644 --- a/editions/tw5.com/tiddlers/community/plugins/GSD5.tid +++ b/editions/tw5.com/tiddlers/community/plugins/GSD5.tid @@ -1,9 +1,9 @@ created: 20141230182901899 -modified: 20210106151027090 +modified: 20220226205227090 tags: [[Community Editions]] [[Community Plugins]] title: "GSD5" by Roma Hicks type: text/vnd.tiddlywiki -url: http://gsd5.tiddlyspot.com/ +url: http://gsd5.tiddlyhost.com/ An adaptation of the [[TiddlyWiki powered GTD® system formerly known as MonkeyGTD|http://mgsd.tiddlyspot.com/]] for TiddlyWiki version 5. From fe74a776e9a8dfc8821d5028777028f76fe42783 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 9 Sep 2022 10:02:26 +0100 Subject: [PATCH 007/937] Docs: Add note for retrieving system tiddlers via HTTP under Node.js See #6866 --- ...den Setting Sync System Tiddlers From Server.tid | 13 +++++++++++++ .../webserver/WebServer API_ Get All Tiddlers.tid | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Sync System Tiddlers From Server.tid diff --git a/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Sync System Tiddlers From Server.tid b/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Sync System Tiddlers From Server.tid new file mode 100644 index 000000000..88f82b4b6 --- /dev/null +++ b/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Sync System Tiddlers From Server.tid @@ -0,0 +1,13 @@ +created: 20220909094340097 +modified: 20220909094340097 +title: Hidden Setting: Sync System Tiddlers From Server +tags: [[Hidden Settings]] + +<<.from-version "5.1.23">> Determines whether system tiddlers are synced from the server under Node.js. (Note that this is a one-way setting; system tiddlers are always synced //to// the server). + +* `no` -- system tiddlers are not synced from the server (default) +* `yes` -- system tiddlers are synced from the server + +Engaging sync of system tiddlers means that tiddlers such as $:/StoryList and $:/HistoryList get synced, which can lead to unexpected outcomes when multiple users are connected to the same server at the same time (it means that the story sequence is synced between all the users). + +$:/config/SyncSystemTiddlersFromServer \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/webserver/WebServer API_ Get All Tiddlers.tid b/editions/tw5.com/tiddlers/webserver/WebServer API_ Get All Tiddlers.tid index 45bd1e27e..9c38f6157 100644 --- a/editions/tw5.com/tiddlers/webserver/WebServer API_ Get All Tiddlers.tid +++ b/editions/tw5.com/tiddlers/webserver/WebServer API_ Get All Tiddlers.tid @@ -1,5 +1,5 @@ created: 20181002131215403 -modified: 2020031109590546 +modified: 20220909094340097 tags: [[WebServer API]] title: WebServer API: Get All Tiddlers type: text/vnd.tiddlywiki @@ -17,6 +17,8 @@ Parameters: In order to avoid denial of service attacks with malformed filters in the default configuration the only filter that is accepted is the default filter "[all[tiddlers]!is[system]sort[title]]"; attempts to use any other filter will result in an HTTP 403 error. +<<.note "System tiddlers will not be returned by this API unless the [[Hidden Setting: Sync System Tiddlers From Server]] is explicitly switched on by setting $:/config/SyncSystemTiddlersFromServer to `yes`">> + To enable a particular filter, create a tiddler with the title "$:/config/Server/ExternalFilters/" concatenated with the filter text, and the text field set to "yes". For example, the TiddlyWeb plugin includes the following shadow tiddler to enable the filter that it requires: ``` From d825f1c875f5e46158c9c41c8c66471138c162d1 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 10 Sep 2022 11:01:29 +0100 Subject: [PATCH 008/937] Use view template body cascade for the default preview --- core/ui/EditTemplate/Preview/output.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/ui/EditTemplate/Preview/output.tid b/core/ui/EditTemplate/Preview/output.tid index 9a7ded886..4e5bf0e33 100644 --- a/core/ui/EditTemplate/Preview/output.tid +++ b/core/ui/EditTemplate/Preview/output.tid @@ -5,6 +5,6 @@ caption: {{$:/language/EditTemplate/Body/Preview/Type/Output}} \import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]] [all[shadows+tiddlers]tag[$:/tags/Macro/View/Body]!has[draft.of]] <$set name="tv-tiddler-preview" value="yes"> -<$transclude /> +<$transclude tiddler={{{ [] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateBodyFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/body/default]] }}} /> From fe365354d0a69351a28e4ca596b9efaebaf4c978 Mon Sep 17 00:00:00 2001 From: twMat Date: Tue, 13 Sep 2022 18:20:28 +0200 Subject: [PATCH 009/937] [doc] Update WidgetMessage: tm-new-tiddler (#6945) ... --- .../tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid index 49b255afd..d435d5f4f 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid @@ -22,7 +22,7 @@ The new tiddler message is usually generated with the ButtonWidget or ActionSend ! Examples -To make a button that creates new tiddlers tagged "task", create a tiddler called "TaskTemplate" with that tag, and then make your button like this: +To make a button that creates new tiddlers tagged "task", create a tiddler called "~TaskTemplate" with that tag, and then make your button like this: ``` <$button message="tm-new-tiddler" param="TaskTemplate">New Task From debfd42d5187a11fff89bc5dc12d1e3dace96d96 Mon Sep 17 00:00:00 2001 From: Cameron Fischer Date: Thu, 15 Sep 2022 07:10:33 -0400 Subject: [PATCH 010/937] Log message not to have spaces and (#6947) --- core/modules/utils/logger.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/modules/utils/logger.js b/core/modules/utils/logger.js index 7dc35899f..1bee04646 100644 --- a/core/modules/utils/logger.js +++ b/core/modules/utils/logger.js @@ -48,7 +48,9 @@ Logger.prototype.log = function(/* args */) { this.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit); } if(console !== undefined && console.log !== undefined) { - return Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + ":"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour())); + var logMessage = [$tw.utils.terminalColour(this.colour) + this.componentName + ":"].concat(Array.prototype.slice.call(arguments,0)); + logMessage[logMessage.length-1] += $tw.utils.terminalColour(); + return Function.apply.call(console.log, console, logMessage); } } }; From 859d15a446745b6ef6289cf4db7ef6ebc067bf04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=AE=A6=E6=88=90?= Date: Sat, 17 Sep 2022 23:52:05 +0800 Subject: [PATCH 011/937] Signing the CLA (#6951) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 3405bfa5e..0ad84a378 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -497,3 +497,5 @@ Nolan Darilek, @NDarilek, 2022/06/21 Keiichi Shiga (🎈 BALLOON | FU-SEN), @fu-sen. 2022/07/07 Nathaniel Knight, @nathanielknight, 2022/07/26 + +HuanCheng Bai, @bestony, 2022/09/17 From a981f8ccfe80634eb15b9ed33393775a2d77994f Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Wed, 21 Sep 2022 09:32:18 +0100 Subject: [PATCH 012/937] Partial fix for wikitext example macros They don't work when the src text contains variable substitution syntax. --- .../tw5.com/tiddlers/system/wikitext-macros.tid | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/editions/tw5.com/tiddlers/system/wikitext-macros.tid b/editions/tw5.com/tiddlers/system/wikitext-macros.tid index 2c10a678b..5bef37c2c 100644 --- a/editions/tw5.com/tiddlers/system/wikitext-macros.tid +++ b/editions/tw5.com/tiddlers/system/wikitext-macros.tid @@ -46,15 +46,11 @@ open the ''example edition'' in a new window <$macrocall $name="copy-to-clipboard-above-right" src=<<__src__>>/> -``` -$src$ -``` +<$codeblock code=<<__src__>>/> That renders as: -$$$text/vnd.tiddlywiki -$src$ -$$$ +<$macrocall $name="__src__"/> ... and the underlying HTML is: @@ -69,15 +65,11 @@ $$$ <$macrocall $name="copy-to-clipboard-above-right" src=<<__src__>>/> -``` -$src$ -``` +<$codeblock code=<<__src__>>/> That renders as: -$$$text/vnd.tiddlywiki -$src$ -$$$ +<$macrocall $name="__src__"/>
\end From 1a0ab68dec7cbf17b6461b7caedae7201bf0d715 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Thu, 22 Sep 2022 10:34:27 +0100 Subject: [PATCH 013/937] Complete fix for a981f8ccfe80634eb15b9ed33393775a2d77994f --- editions/tw5.com/tiddlers/system/wikitext-macros.tid | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/system/wikitext-macros.tid b/editions/tw5.com/tiddlers/system/wikitext-macros.tid index 5bef37c2c..c63fe5f8c 100644 --- a/editions/tw5.com/tiddlers/system/wikitext-macros.tid +++ b/editions/tw5.com/tiddlers/system/wikitext-macros.tid @@ -54,9 +54,9 @@ That renders as: ... and the underlying HTML is: -$$$text/vnd.tiddlywiki>text/html -$src$ -$$$ +<$wikify name="html" text=<<__src__>> output="html"> +<$codeblock code=<>/> +
\end From 51bdf60ee868cbf3943d086caa189c5d280b8f54 Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Fri, 23 Sep 2022 00:52:55 +0700 Subject: [PATCH 014/937] Fix bug when using built-in `list` field as listField parameter to checkbox widget (#6897) * Fix bug with checkbox widget and `list` field The `list` field is stored as a list and frozen against modifications, and getFieldList() returns it directly without creating a copy. So before we modify it, we need to make a copy so we're not modifying a frozen list. This bug doesn't manifest with custom fields, which are stored as strings, only with the built-in `list` field. * Fix checkboxes referencing non-existent tiddlers This fixes the "tiddler is undefined" error when a checkbox's listField property references a tiddler that doesn't (yet) exist. * Better logic for checkbox listField handling If the field contains an array, then it's almost certainly referenced elsewhere and needs a defensive copy made. If it contained a string, then it's safe to modify without making a defensive copy. --- core/modules/widgets/checkbox.js | 17 ++++++--- .../tiddlers/tests/test-checkbox-widget.js | 36 ++++++++++++++++++- 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/core/modules/widgets/checkbox.js b/core/modules/widgets/checkbox.js index a81ca837a..68ebe7980 100644 --- a/core/modules/widgets/checkbox.js +++ b/core/modules/widgets/checkbox.js @@ -66,14 +66,14 @@ CheckboxWidget.prototype.render = function(parent,nextSibling) { CheckboxWidget.prototype.getValue = function() { var tiddler = this.wiki.getTiddler(this.checkboxTitle); if(tiddler || this.checkboxFilter) { - if(this.checkboxTag) { + if(tiddler && this.checkboxTag) { if(this.checkboxInvertTag === "yes") { return !tiddler.hasTag(this.checkboxTag); } else { return tiddler.hasTag(this.checkboxTag); } } - if(this.checkboxField || this.checkboxIndex) { + if(tiddler && (this.checkboxField || this.checkboxIndex)) { // Same logic applies to fields and indexes var value; if(this.checkboxField) { @@ -206,11 +206,18 @@ CheckboxWidget.prototype.handleChangeEvent = function(event) { } // Set the list field (or index) if specified if(this.checkboxListField || this.checkboxListIndex) { - var listContents, oldPos, newPos; + var fieldContents, listContents, oldPos, newPos; if(this.checkboxListField) { - listContents = tiddler.getFieldList(this.checkboxListField); + fieldContents = tiddler ? tiddler.fields[this.checkboxListField] : undefined; } else { - listContents = $tw.utils.parseStringArray(this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxListIndex) || "") || []; + fieldContents = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxListIndex); + } + if($tw.utils.isArray(fieldContents)) { + // Make a copy so we can modify it without changing original that's refrenced elsewhere + listContents = fieldContents.slice(0); + } else { + listContents = $tw.utils.parseStringArray(fieldContents) || []; + // No need to copy since parseStringArray returns a fresh array, not refrenced elsewhere } oldPos = notValue ? listContents.indexOf(notValue) : -1; newPos = value ? listContents.indexOf(value) : -1; diff --git a/editions/test/tiddlers/tests/test-checkbox-widget.js b/editions/test/tiddlers/tests/test-checkbox-widget.js index 30df75bbd..a6572afd6 100644 --- a/editions/test/tiddlers/tests/test-checkbox-widget.js +++ b/editions/test/tiddlers/tests/test-checkbox-widget.js @@ -234,6 +234,38 @@ Tests the checkbox widget thoroughly. }, ]; + // https://github.com/Jermolene/TiddlyWiki5/issues/6871 + const listModeTestsWithListField = ( + listModeTests + .filter(data => data.widgetText.includes("listField='colors'")) + .map(data => { + const newData = { + ...data, + tiddlers: data.tiddlers.map(tiddler => ({...tiddler, list: tiddler.colors, colors: undefined})), + widgetText: data.widgetText.replace("listField='colors'", "listField='list'"), + expectedChange: { + "Colors": { list: data.expectedChange.Colors.colors.split(' ') } + }, + } + return newData; + }) + ); + const listModeTestsWithTagsField = ( + listModeTests + .filter(data => data.widgetText.includes("listField='colors'")) + .map(data => { + const newData = { + ...data, + tiddlers: data.tiddlers.map(tiddler => ({...tiddler, tags: tiddler.colors, colors: undefined})), + widgetText: data.widgetText.replace("listField='colors'", "listField='tags'"), + expectedChange: { + "Colors": { tags: data.expectedChange.Colors.colors.split(' ') } + }, + } + return newData; + }) + ); + const indexListModeTests = listModeTests.map(data => { const newData = {...data}; const newName = data.testName.replace('list mode', 'index list mode'); @@ -453,6 +485,8 @@ Tests the checkbox widget thoroughly. const checkboxTestData = fieldModeTests.concat( indexModeTests, listModeTests, + listModeTestsWithListField, + listModeTestsWithTagsField, indexListModeTests, filterModeTests, ); @@ -495,7 +529,7 @@ Tests the checkbox widget thoroughly. for (const fieldName of Object.keys(change)) { const expectedValue = change[fieldName]; const fieldValue = tiddler.fields[fieldName]; - expect(fieldValue).toBe(expectedValue); + expect(fieldValue).toEqual(expectedValue); } } }) From c5d3d4c26e8fe27f272dda004aec27d6b66c4f60 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 23 Sep 2022 18:07:46 +0100 Subject: [PATCH 015/937] Disable wiki indexers in safe mode --- boot/boot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot/boot.js b/boot/boot.js index f902e9956..ba519a2cf 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -2416,7 +2416,7 @@ $tw.boot.initStartup = function(options) { $tw.utils.registerFileType("application/epub+zip","base64",".epub"); $tw.utils.registerFileType("application/octet-stream","base64",".octet-stream"); // Create the wiki store for the app - $tw.wiki = new $tw.Wiki(); + $tw.wiki = new $tw.Wiki($tw.safeMode && {enableIndexers: []}); // Install built in tiddler fields modules $tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap("tiddlerfield"); // Install the tiddler deserializer modules From 166a1565843878083fb1eba47c73b8e67b78400d Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 23 Sep 2022 18:08:28 +0100 Subject: [PATCH 016/937] Fix typo: Safe mode should prevent globally disabling parser rules --- core/modules/parsers/wikiparser/wikiparser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/parsers/wikiparser/wikiparser.js b/core/modules/parsers/wikiparser/wikiparser.js index 90a3e7446..8d6c442de 100644 --- a/core/modules/parsers/wikiparser/wikiparser.js +++ b/core/modules/parsers/wikiparser/wikiparser.js @@ -116,7 +116,7 @@ WikiParser.prototype.loadRemoteTiddler = function(url) { */ WikiParser.prototype.setupRules = function(proto,configPrefix) { var self = this; - if(!$tw.safemode) { + if(!$tw.safeMode) { $tw.utils.each(proto,function(object,name) { if(self.wiki.getTiddlerText(configPrefix + name,"enable") !== "enable") { delete proto[name]; From 53d229592df76c6dd607e40be5bea4d5e063c48e Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 23 Sep 2022 18:09:16 +0100 Subject: [PATCH 017/937] Optimise wiki.getTiddler() --- boot/boot.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/boot/boot.js b/boot/boot.js index ba519a2cf..6bfa6495a 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -1230,13 +1230,16 @@ $tw.Wiki = function(options) { this.getTiddler = function(title) { if(title) { var t = tiddlers[title]; - if(t instanceof $tw.Tiddler) { + if(t !== undefined) { return t; - } else if(title !== undefined && shadowTiddlers[title]) { - return shadowTiddlers[title].tiddler; + } else { + var s = shadowTiddlers[title]; + if(s !== undefined) { + return s.tiddler; + } } - return undefined; } + return undefined; }; // Get an array of all tiddler titles From 0a00da6db9b0a818ec5ab90fd6cfc5544c4e6533 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 23 Sep 2022 18:09:45 +0100 Subject: [PATCH 018/937] Optimise fake dom Object.setPrototypeOf() appears to be significantly faster --- core/modules/utils/fakedom.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/modules/utils/fakedom.js b/core/modules/utils/fakedom.js index 590a7ffe0..d28161ac6 100755 --- a/core/modules/utils/fakedom.js +++ b/core/modules/utils/fakedom.js @@ -42,7 +42,7 @@ var TW_TextNode = function(text) { this.textContent = text + ""; }; -TW_TextNode.prototype = Object.create(TW_Node.prototype); +Object.setPrototypeOf(TW_TextNode,TW_Node.prototype); Object.defineProperty(TW_TextNode.prototype, "nodeType", { get: function() { @@ -67,7 +67,7 @@ var TW_Element = function(tag,namespace) { this.namespaceURI = namespace || "http://www.w3.org/1999/xhtml"; }; -TW_Element.prototype = Object.create(TW_Node.prototype); +Object.setPrototypeOf(TW_Element,TW_Node.prototype); Object.defineProperty(TW_Element.prototype, "style", { get: function() { From 81ac9874846b3ead275f67010fcfdb49f3d2f43c Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 24 Sep 2022 08:28:16 +0100 Subject: [PATCH 019/937] Optimise variable prototype chain handling With this improvement and 53d229592df76c6dd607e40be5bea4d5e063c48e I'm measuring a 10-15% performance improvement between v5.2.3 and master using https://github.com/Jermolene/tiddlywiki-performance-test-rig --- core/modules/widgets/importvariables.js | 5 ++++- core/modules/widgets/widget.js | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/modules/widgets/importvariables.js b/core/modules/widgets/importvariables.js index 0cda68138..a73abfdcf 100644 --- a/core/modules/widgets/importvariables.js +++ b/core/modules/widgets/importvariables.js @@ -39,7 +39,10 @@ Compute the internal state of the widget ImportVariablesWidget.prototype.execute = function(tiddlerList) { var widgetPointer = this; // Got to flush all the accumulated variables - this.variables = new this.variablesConstructor(); + this.variables = Object.create(null); + if(this.parentWidget) { + Object.setPrototypeOf(this.variables,this.parentWidget.variables); + } // Get our parameters this.filter = this.getAttribute("filter"); // Compute the filter diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index 0aefbada8..7034c9f37 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -38,9 +38,10 @@ Widget.prototype.initialise = function(parseTreeNode,options) { this.parseTreeNode = parseTreeNode; this.wiki = options.wiki; this.parentWidget = options.parentWidget; - this.variablesConstructor = function() {}; - this.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {}; - this.variables = new this.variablesConstructor(); + this.variables = Object.create(null); + if(this.parentWidget) { + Object.setPrototypeOf(this.variables,this.parentWidget.variables); + } this.document = options.document; this.attributes = {}; this.children = []; From 8ebb9ef4427b04518cdfb9cc9cc56c900ee85f98 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 24 Sep 2022 10:55:22 +0100 Subject: [PATCH 020/937] Typo from a981f8ccfe80634eb15b9ed33393775a2d77994f Fixes #6955 --- editions/tw5.com/tiddlers/system/wikitext-macros.tid | 1 + 1 file changed, 1 insertion(+) diff --git a/editions/tw5.com/tiddlers/system/wikitext-macros.tid b/editions/tw5.com/tiddlers/system/wikitext-macros.tid index c63fe5f8c..70f62bfb7 100644 --- a/editions/tw5.com/tiddlers/system/wikitext-macros.tid +++ b/editions/tw5.com/tiddlers/system/wikitext-macros.tid @@ -70,6 +70,7 @@ That renders as: That renders as: <$macrocall $name="__src__"/> +
\end From 4e9267ea58c3081b9845dcebd96bbd25819d0143 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sat, 24 Sep 2022 14:07:42 +0100 Subject: [PATCH 021/937] Introduce genesis widget (#6961) * Initial Commit * Fix version number * Fix docs date --- core/modules/utils/parsetree.js | 18 ++- core/modules/widgets/genesis.js | 108 ++++++++++++++++++ .../tests/data/genesis-widget/DollarSigns.tid | 14 +++ .../genesis-widget/MultipleAttributes.tid | 14 +++ .../tests/data/genesis-widget/Simple.tid | 14 +++ .../tiddlers/widgets/GenesisWidget.tid | 29 +++++ .../jasmine/run-wiki-based-tests.js | 93 +++++++++++++++ 7 files changed, 288 insertions(+), 2 deletions(-) create mode 100644 core/modules/widgets/genesis.js create mode 100644 editions/test/tiddlers/tests/data/genesis-widget/DollarSigns.tid create mode 100644 editions/test/tiddlers/tests/data/genesis-widget/MultipleAttributes.tid create mode 100644 editions/test/tiddlers/tests/data/genesis-widget/Simple.tid create mode 100644 editions/tw5.com/tiddlers/widgets/GenesisWidget.tid create mode 100644 plugins/tiddlywiki/jasmine/run-wiki-based-tests.js diff --git a/core/modules/utils/parsetree.js b/core/modules/utils/parsetree.js index e056b0fdd..5bab10706 100644 --- a/core/modules/utils/parsetree.js +++ b/core/modules/utils/parsetree.js @@ -12,12 +12,26 @@ Parse tree utility functions. /*global $tw: false */ "use strict"; +/* +Add attribute to parse tree node +Can be invoked as (node,name,value) or (node,attr) +*/ exports.addAttributeToParseTreeNode = function(node,name,value) { - var attribute = {name: name, type: "string", value: value}; + var attribute = typeof name === "object" ? name : {name: name, type: "string", value: value}; + name = attribute.name; node.attributes = node.attributes || {}; + node.orderedAttributes = node.orderedAttributes || []; node.attributes[name] = attribute; - if(node.orderedAttributes) { + var foundIndex = -1; + $tw.utils.each(node.orderedAttributes,function(attr,index) { + if(attr.name === name) { + foundIndex = index; + } + }); + if(foundIndex === -1) { node.orderedAttributes.push(attribute); + } else { + node.orderedAttributes[foundIndex] = attribute; } }; diff --git a/core/modules/widgets/genesis.js b/core/modules/widgets/genesis.js new file mode 100644 index 000000000..51544361e --- /dev/null +++ b/core/modules/widgets/genesis.js @@ -0,0 +1,108 @@ +/*\ +title: $:/core/modules/widgets/genesis.js +type: application/javascript +module-type: widget + +Genesis widget for dynamically creating widgets + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +var GenesisWidget = function(parseTreeNode,options) { + this.initialise(parseTreeNode,options); +}; + +/* +Inherit from the base widget class +*/ +GenesisWidget.prototype = new Widget(); + +/* +Render this widget into the DOM +*/ +GenesisWidget.prototype.render = function(parent,nextSibling) { + this.parentDomNode = parent; + this.computeAttributes({filterFn: function(name) { + // Only compute our own attributes which start with a single dollar + return name.charAt(0) === "$" && name.charAt(1) !== "$"; + }}); + this.execute(); + this.renderChildren(parent,nextSibling); +}; + +/* +Compute the internal state of the widget +*/ +GenesisWidget.prototype.execute = function() { + var self = this; + // Collect attributes + this.genesisType = this.getAttribute("$type","element"); + this.genesisRemappable = this.getAttribute("$remappable","yes") === "yes"; + this.genesisNames = this.getAttribute("$names",""); + this.genesisValues = this.getAttribute("$values",""); + // Construct parse tree + var isElementWidget = this.genesisType.charAt(0) !== "$", + nodeType = isElementWidget ? "element" : this.genesisType.substr(1), + nodeTag = isElementWidget ? this.genesisType : undefined; + var parseTreeNodes = [{ + type: nodeType, + tag: nodeTag, + attributes: {}, + orderedAttributes: [], + children: this.parseTreeNode.children || [], + isNotRemappable: !this.genesisRemappable + }]; + // Apply explicit attributes + $tw.utils.each($tw.utils.getOrderedAttributesFromParseTreeNode(this.parseTreeNode),function(attribute) { + var name = attribute.name; + if(name.charAt(0) === "$") { + if(name.charAt(1) === "$") { + // Double $$ is changed to a single $ + name = name.substr(1); + } else { + // Single dollar is ignored + return; + } + } + $tw.utils.addAttributeToParseTreeNode(parseTreeNodes[0],$tw.utils.extend({},attribute,{name: name})); + }); + // Apply attributes in $names/$values + this.attributeNames = []; + this.attributeValues = []; + if(this.genesisNames && this.genesisValues) { + this.attributeNames = this.wiki.filterTiddlers(self.genesisNames,this); + this.attributeValues = this.wiki.filterTiddlers(self.genesisValues,this); + $tw.utils.each(this.attributeNames,function(varname,index) { + $tw.utils.addAttributeToParseTreeNode(parseTreeNodes[0],varname,self.attributeValues[index] || ""); + }); + } + // Construct the child widgets + this.makeChildWidgets(parseTreeNodes); +}; + +/* +Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering +*/ +GenesisWidget.prototype.refresh = function(changedTiddlers) { + var changedAttributes = this.computeAttributes(), + filterNames = this.getAttribute("$names",""), + filterValues = this.getAttribute("$values",""), + attributeNames = this.wiki.filterTiddlers(filterNames,this), + attributeValues = this.wiki.filterTiddlers(filterValues,this); + if($tw.utils.count(changedAttributes) > 0 || !$tw.utils.isArrayEqual(this.attributeNames,attributeNames) || !$tw.utils.isArrayEqual(this.attributeValues,attributeValues)) { + this.refreshSelf(); + return true; + } else { + return this.refreshChildren(changedTiddlers); + } +}; + +exports.genesis = GenesisWidget; + +})(); diff --git a/editions/test/tiddlers/tests/data/genesis-widget/DollarSigns.tid b/editions/test/tiddlers/tests/data/genesis-widget/DollarSigns.tid new file mode 100644 index 000000000..ac12bfe38 --- /dev/null +++ b/editions/test/tiddlers/tests/data/genesis-widget/DollarSigns.tid @@ -0,0 +1,14 @@ +title: Genesis/DollarSigns +description: Usage of genesis widget with attributes starting with dollar signs +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim +<$genesis $type="$let" myvar="Kitten">(<$text text=<>/>) +<$genesis $type="$let" $$myvar="Kitten">(<$text text=<<$myvar>>/>) ++ +title: ExpectedResult + +

(Kitten)(Kitten)

\ No newline at end of file diff --git a/editions/test/tiddlers/tests/data/genesis-widget/MultipleAttributes.tid b/editions/test/tiddlers/tests/data/genesis-widget/MultipleAttributes.tid new file mode 100644 index 000000000..8988c3cc7 --- /dev/null +++ b/editions/test/tiddlers/tests/data/genesis-widget/MultipleAttributes.tid @@ -0,0 +1,14 @@ +title: Genesis/MultipleAttributes +description: Usage of genesis widget with multiple attributes +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim +<$genesis $type="$let" $names="myvar other" $values="Kitten Donkey" myvar={{{ Shark }}}>(<$text text=<>/>|<$text text=<>/>) +<$genesis $type="$let" $names="$myvar $other" $values="Kitten Donkey" $$myvar="Shark">(<$text text=<<$myvar>>/>|<$text text=<<$other>>/>) ++ +title: ExpectedResult + +

(Kitten|Donkey)(Kitten|Donkey)

\ No newline at end of file diff --git a/editions/test/tiddlers/tests/data/genesis-widget/Simple.tid b/editions/test/tiddlers/tests/data/genesis-widget/Simple.tid new file mode 100644 index 000000000..d9ec67c00 --- /dev/null +++ b/editions/test/tiddlers/tests/data/genesis-widget/Simple.tid @@ -0,0 +1,14 @@ +title: Genesis/Simple +description: Simple usage of genesis widget +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim +<$genesis $type="div">Mouse +<$genesis $type="div" class="tc-thing" label="Squeak">Mouse ++ +title: ExpectedResult + +

Mouse
Mouse

\ No newline at end of file diff --git a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid new file mode 100644 index 000000000..9b324e8fa --- /dev/null +++ b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid @@ -0,0 +1,29 @@ +caption: genesis +created: 20220924140702430 +modified: 20220924140702430 +tags: Widgets +title: GenesisWidget +type: text/vnd.tiddlywiki + +! Introduction + +<<.from-version "5.2.4">> The <<.wlink GenesisWidget>> widget allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance. + +! Content and Attributes + +The content of the <<.wlink GenesisWidget>> widget is used as the content of the dynamically created widget. + +|!Attribute |!Description | +|$type |The type of widget or element to create (an initial `$` indicates a widget, otherwise an HTML element will be created) | +|$names |An optional filter evaluating to the names of a list of attributes to be applied to the widget | +|$values |An optional filter evaluating to the values corresponding to the list of names specified in `$names` | +|//{other attributes starting with $}// |Other attributes starting with a single dollar sign are reserved for future use | +|//{attributes starting with $$}// |Attributes starting with two dollar signs are appplied as attributes to the output widget, but with the attribute name changed to use a single dollar sign | +|//{attributes not starting with $}// |Any other attributes that do not start with a dollar are applied as attributes to the output widget | + +Note that attributes explicitly specified take precedence over attributes with the same name specified in the `$names` filter. + +! Examples + +<$macrocall $name='wikitext-example-without-html' +src='<$genesis $type="div" class="tc-thing" label="Squeak">Mouse'/> diff --git a/plugins/tiddlywiki/jasmine/run-wiki-based-tests.js b/plugins/tiddlywiki/jasmine/run-wiki-based-tests.js new file mode 100644 index 000000000..5f28db061 --- /dev/null +++ b/plugins/tiddlywiki/jasmine/run-wiki-based-tests.js @@ -0,0 +1,93 @@ +/*\ +title: $:/plugins/tiddlywiki/jasmine/run-wiki-based-tests.js +type: application/javascript +tags: [[$:/tags/test-spec]] + +Tests the wiki based tests + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var TEST_WIKI_TIDDLER_FILTER = "[type[text/vnd.tiddlywiki-multiple]tag[$:/tags/wiki-test-spec]]"; + +var widget = require("$:/core/modules/widgets/widget.js"); + +describe("Wiki-based tests", function() { + + // Step through the test tiddlers + var tests = $tw.wiki.filterTiddlers(TEST_WIKI_TIDDLER_FILTER); + $tw.utils.each(tests,function(title) { + var tiddler = $tw.wiki.getTiddler(title); + it(tiddler.fields.title + ": " + tiddler.fields.description, function() { + // Add our tiddlers + var wiki = new $tw.Wiki(); + wiki.addTiddlers(readMultipleTiddlersTiddler(title)); + // Complain if we don't have the ouput and expected results + if(!wiki.tiddlerExists("Output")) { + throw "Missing 'Output' tiddler"; + } + if(!wiki.tiddlerExists("ExpectedResult")) { + throw "Missing 'ExpectedResult' tiddler"; + } + // Construct the widget node + var text = "{{Output}}\n\n"; + var widgetNode = createWidgetNode(parseText(text,wiki),wiki); + // Render the widget node to the DOM + var wrapper = renderWidgetNode(widgetNode); + // Clear changes queue + wiki.clearTiddlerEventQueue(); + // Run the actions if provided + if(wiki.tiddlerExists("Actions")) { + widgetNode.invokeActionString(wiki.getTiddlerText("Actions")); + refreshWidgetNode(widgetNode,wrapper); + } + // Test the rendering + expect(wrapper.innerHTML).toBe(wiki.getTiddlerText("ExpectedResult")); + }); + }); + + function readMultipleTiddlersTiddler(title) { + var rawTiddlers = $tw.wiki.getTiddlerText(title).split("\n+\n"); + var tiddlers = []; + $tw.utils.each(rawTiddlers,function(rawTiddler) { + var fields = Object.create(null), + split = rawTiddler.split(/\r?\n\r?\n/mg); + if(split.length >= 1) { + fields = $tw.utils.parseFields(split[0],fields); + } + if(split.length >= 2) { + fields.text = split.slice(1).join("\n\n"); + } + tiddlers.push(fields); + }); + return tiddlers; + } + + function createWidgetNode(parser,wiki) { + return wiki.makeWidget(parser); + } + + function parseText(text,wiki,options) { + return wiki.parseText("text/vnd.tiddlywiki",text,options); + } + + function renderWidgetNode(widgetNode) { + $tw.fakeDocument.setSequenceNumber(0); + var wrapper = $tw.fakeDocument.createElement("div"); + widgetNode.render(wrapper,null); +// console.log(require("util").inspect(wrapper,{depth: 8})); + return wrapper; + } + + function refreshWidgetNode(widgetNode,wrapper) { + widgetNode.refresh(widgetNode.wiki.changedTiddlers,wrapper); +// console.log(require("util").inspect(wrapper,{depth: 8})); + } + +}); + +})(); From 87597ea27302edebf0ba6c5098d119ee2341929f Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 24 Sep 2022 14:20:30 +0100 Subject: [PATCH 022/937] Update release note --- editions/prerelease/tiddlers/Release 5.2.4.tid | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index 45de29903..0e514ee87 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -1,6 +1,6 @@ caption: 5.2.4 -created: 20220802100223020 -modified: 20220902201505817 +created: 20220924141149286 +modified: 20220924141149286 tags: ReleaseNotes title: Release 5.2.4 type: text/vnd.tiddlywiki @@ -31,9 +31,11 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d62a16ee464fb9984b766b48504829a1a3eb143b">> problem with long presses on tiddler links triggering a preview on iOS/iPadOS * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6910">> consistency of button and input elements across browsers +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d825f1c875f5e46158c9c41c8c66471138c162d1">> edit preview to use the [[View Template Body Cascade]] ! Widget Improvements +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6961">> new GenesisWidget that allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/127f660c91020dcbb43897d954066b31af729e74">> EditTextWidget to remove the default text "Type the text for the tiddler 'foo'" ! Filter improvements @@ -43,6 +45,10 @@ Improvements to the translation features of TiddlyWiki: ! Hackability Improvements * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]] and [[format Operator]] +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/c5d3d4c26e8fe27f272dda004aec27d6b66c4f60">> safe mode to disable wiki store indexers +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/166a1565843878083fb1eba47c73b8e67b78400d">> safe mode to prevent globally disabling parser rules + + ! Bug Fixes @@ -54,11 +60,13 @@ Improvements to the translation features of TiddlyWiki: ! Node.js Improvements -* +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6947">> console logging to avoid spaces and `` message ! Performance Improvements -* +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/53d229592df76c6dd607e40be5bea4d5e063c48e">> performance of `wiki.getTiddler()` +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/81ac9874846b3ead275f67010fcfdb49f3d2f43c">> performance of variable prototype chain handling + ! Acknowledgements From 81e4745c5655a5f3e70e9904f5a05ad1bc7efebc Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 24 Sep 2022 14:23:36 +0100 Subject: [PATCH 023/937] Update release note contributors list --- editions/prerelease/tiddlers/Release 5.2.4.tid | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index 0e514ee87..595d9cdf4 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -73,10 +73,16 @@ Improvements to the translation features of TiddlyWiki: [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: <<.contributors """ +bestony BramChen +flibbles fu-sen +Marxsal oflg pmario +rmunn +roma0104 +tw-FRed twMat xcazin """>> From 1df4c29d73073788ba3859668112e8bb46171a6c Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 1 Oct 2022 09:47:26 +0100 Subject: [PATCH 024/937] Relax the restriction on the let widget being unable to create variables starting with a dollar --- core/modules/widgets/let.js | 8 +++----- editions/tw5.com/tiddlers/widgets/LetWidget.tid | 5 ++++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/modules/widgets/let.js b/core/modules/widgets/let.js index 5c4b3aa90..afd3a2f20 100644 --- a/core/modules/widgets/let.js +++ b/core/modules/widgets/let.js @@ -51,11 +51,9 @@ LetWidget.prototype.computeAttributes = function() { $tw.utils.each($tw.utils.getOrderedAttributesFromParseTreeNode(this.parseTreeNode),function(attribute) { var value = self.computeAttribute(attribute), name = attribute.name; - if(name.charAt(0) !== "$") { - // Now that it's prepped, we're allowed to look this variable up - // when defining later variables - self.currentValueFor[name] = value; - } + // Now that it's prepped, we're allowed to look this variable up + // when defining later variables + self.currentValueFor[name] = value; }); // Run through again, setting variables and looking for differences $tw.utils.each(this.currentValueFor,function(value,name) { diff --git a/editions/tw5.com/tiddlers/widgets/LetWidget.tid b/editions/tw5.com/tiddlers/widgets/LetWidget.tid index 2d2b73338..b27306cfb 100644 --- a/editions/tw5.com/tiddlers/widgets/LetWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/LetWidget.tid @@ -1,5 +1,6 @@ title: LetWidget created: 20211028115900000 +modified: 20221001094658854 tags: Widgets caption: let @@ -12,10 +13,12 @@ caption: let The content of the <<.wid let>> widget is the scope for the value assigned to the variable. |!Attribute |!Description | -|//{attributes not starting with $}// |Each attribute name specifies a variable name. The attribute value is assigned to the variable | +|//{attributes}// |Each attribute name specifies a variable name. The attribute value is assigned to the variable | Attributes are evaluated in the order they are written. Attributes with the same name are allowed. Each time a duplicate attribute is encountered, it will replace the existing value set by the earlier duplicate. +<<.note """<<.from-version "5.2.4">> There is no longer any restriction on using variable names that start with the $ character.""">> + ! Examples Consider a case where you need to set multiple variables, where some depend on the evaluation of others. From 8d1e6b5d23bc2342d4de9e6657cc0073e3d01856 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 1 Oct 2022 10:03:50 +0100 Subject: [PATCH 025/937] Test plugin should run tests in shadow tiddlers Missed off #6961, preventing the tests introduced there from running --- plugins/tiddlywiki/jasmine/jasmine-plugin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tiddlywiki/jasmine/jasmine-plugin.js b/plugins/tiddlywiki/jasmine/jasmine-plugin.js index f508b8f03..3377ebfbd 100644 --- a/plugins/tiddlywiki/jasmine/jasmine-plugin.js +++ b/plugins/tiddlywiki/jasmine/jasmine-plugin.js @@ -12,7 +12,7 @@ The main module of the Jasmine test plugin for TiddlyWiki5 /*global $tw: true */ "use strict"; -var TEST_TIDDLER_FILTER = "[type[application/javascript]tag[$:/tags/test-spec]]"; +var TEST_TIDDLER_FILTER = "[all[tiddlers+shadows]type[application/javascript]tag[$:/tags/test-spec]]"; exports.name = "jasmine"; // Ensure this startup module is executed in the right order. From db6abb970339f612149cf825a8d9c28acfa69e97 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sat, 1 Oct 2022 10:13:40 +0100 Subject: [PATCH 026/937] Improve recursion detection for transclusion and filters (#6970) --- core/modules/filters.js | 21 +++++-- core/modules/widgets/error.js | 63 +++++++++++++++++++ core/modules/widgets/widget.js | 55 +++++++++++----- .../tiddlers/tests/data/filters/Recursion.tid | 15 +++++ .../tests/data/transclude/Recursion.tid | 13 ++++ .../tw5.com/tiddlers/widgets/ErrorWidget.tid | 17 +++++ 6 files changed, 163 insertions(+), 21 deletions(-) create mode 100644 core/modules/widgets/error.js create mode 100644 editions/test/tiddlers/tests/data/filters/Recursion.tid create mode 100644 editions/test/tiddlers/tests/data/transclude/Recursion.tid create mode 100644 editions/tw5.com/tiddlers/widgets/ErrorWidget.tid diff --git a/core/modules/filters.js b/core/modules/filters.js index 221206e6b..1bb5fe9ff 100644 --- a/core/modules/filters.js +++ b/core/modules/filters.js @@ -12,6 +12,9 @@ Adds tiddler filtering methods to the $tw.Wiki object. /*global $tw: false */ "use strict"; +/* Maximum permitted filter recursion depth */ +var MAX_FILTER_DEPTH = 300; + /* Parses an operation (i.e. a run) within a filter string operators: Array of array of operator nodes into which results should be inserted @@ -328,7 +331,7 @@ exports.compileFilter = function(filterString) { })()); }); // Return a function that applies the operations to a source iterator of tiddler titles - var compiled = $tw.perf.measure("filter: " + filterString,function filterFunction(source,widget) { + var fnMeasured = $tw.perf.measure("filter: " + filterString,function filterFunction(source,widget) { if(!source) { source = self.each; } else if(typeof source === "object") { // Array or hashmap @@ -338,9 +341,15 @@ exports.compileFilter = function(filterString) { widget = $tw.rootWidget; } var results = new $tw.utils.LinkedList(); - $tw.utils.each(operationFunctions,function(operationFunction) { - operationFunction(results,source,widget); - }); + self.filterRecursionCount = (self.filterRecursionCount || 0) + 1; + if(self.filterRecursionCount < MAX_FILTER_DEPTH) { + $tw.utils.each(operationFunctions,function(operationFunction) { + operationFunction(results,source,widget); + }); + } else { + results.push("/**-- Excessive filter recursion --**/"); + } + self.filterRecursionCount = self.filterRecursionCount - 1; return results.toArray(); }); if(this.filterCacheCount >= 2000) { @@ -350,9 +359,9 @@ exports.compileFilter = function(filterString) { this.filterCache = Object.create(null); this.filterCacheCount = 0; } - this.filterCache[filterString] = compiled; + this.filterCache[filterString] = fnMeasured; this.filterCacheCount++; - return compiled; + return fnMeasured; }; })(); diff --git a/core/modules/widgets/error.js b/core/modules/widgets/error.js new file mode 100644 index 000000000..6a4a607f1 --- /dev/null +++ b/core/modules/widgets/error.js @@ -0,0 +1,63 @@ +/*\ +title: $:/core/modules/widgets/error.js +type: application/javascript +module-type: widget + +Error widget + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +var ErrorWidget = function(parseTreeNode,options) { + this.initialise(parseTreeNode,options); +}; + +/* +Inherit from the base widget class +*/ +ErrorWidget.prototype = new Widget(); + +/* +Render this widget into the DOM +*/ +ErrorWidget.prototype.render = function(parent,nextSibling) { + this.parentDomNode = parent; + this.computeAttributes(); + this.execute(); + var message = this.getAttribute("$message","Unknown error"), + domNode = this.document.createElement("span"); + domNode.appendChild(this.document.createTextNode(message)); + domNode.className = "tc-error"; + parent.insertBefore(domNode,nextSibling); + this.domNodes.push(domNode); +}; + +/* +Compute the internal state of the widget +*/ +ErrorWidget.prototype.execute = function() { + // Nothing to do for a text node +}; + +/* +Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering +*/ +ErrorWidget.prototype.refresh = function(changedTiddlers) { + var changedAttributes = this.computeAttributes(); + if(changedAttributes["$message"]) { + this.refreshSelf(); + return true; + } else { + return false; + } +}; + +exports.error = ErrorWidget; + +})(); diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index 7034c9f37..60f55e8bb 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -12,6 +12,9 @@ Widget base class /*global $tw: false */ "use strict"; +/* Maximum permitted depth of the widget tree for recursion detection */ +var MAX_WIDGET_TREE_DEPTH = 1000; + /* Create a widget object for a parse tree node parseTreeNode: reference to the parse tree node to be rendered @@ -358,6 +361,20 @@ Widget.prototype.assignAttributes = function(domNode,options) { } }; +/* +Get the number of ancestor widgets for this widget +*/ +Widget.prototype.getAncestorCount = function() { + if(this.ancestorCount === undefined) { + if(this.parentWidget) { + this.ancestorCount = this.parentWidget.getAncestorCount() + 1; + } else { + this.ancestorCount = 0; + } + } + return this.ancestorCount; +}; + /* Make child widgets correspondng to specified parseTreeNodes */ @@ -365,21 +382,29 @@ Widget.prototype.makeChildWidgets = function(parseTreeNodes,options) { options = options || {}; this.children = []; var self = this; - // Create set variable widgets for each variable - $tw.utils.each(options.variables,function(value,name) { - var setVariableWidget = { - type: "set", - attributes: { - name: {type: "string", value: name}, - value: {type: "string", value: value} - }, - children: parseTreeNodes - }; - parseTreeNodes = [setVariableWidget]; - }); - $tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) { - self.children.push(self.makeChildWidget(childNode)); - }); + // Check for too much recursion + if(this.getAncestorCount() > MAX_WIDGET_TREE_DEPTH) { + this.children.push(this.makeChildWidget({type: "error", attributes: { + "$message": {type: "string", value: $tw.language.getString("Error/RecursiveTransclusion")} + }})); + } else { + // Create set variable widgets for each variable + $tw.utils.each(options.variables,function(value,name) { + var setVariableWidget = { + type: "set", + attributes: { + name: {type: "string", value: name}, + value: {type: "string", value: value} + }, + children: parseTreeNodes + }; + parseTreeNodes = [setVariableWidget]; + }); + // Create the child widgets + $tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) { + self.children.push(self.makeChildWidget(childNode)); + }); + } }; /* diff --git a/editions/test/tiddlers/tests/data/filters/Recursion.tid b/editions/test/tiddlers/tests/data/filters/Recursion.tid new file mode 100644 index 000000000..13d80e521 --- /dev/null +++ b/editions/test/tiddlers/tests/data/filters/Recursion.tid @@ -0,0 +1,15 @@ +title: Filters/Recursion +description: Filter recursion detection +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim +\define myfilter() [subfilter] + +<$text text={{{ [subfilter] }}}/> ++ +title: ExpectedResult + +

/**-- Excessive filter recursion --**/

\ No newline at end of file diff --git a/editions/test/tiddlers/tests/data/transclude/Recursion.tid b/editions/test/tiddlers/tests/data/transclude/Recursion.tid new file mode 100644 index 000000000..d75e671eb --- /dev/null +++ b/editions/test/tiddlers/tests/data/transclude/Recursion.tid @@ -0,0 +1,13 @@ +title: Transclude/Recursion +description: Transclusion recursion detection +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim +<$transclude $tiddler="Output"/> ++ +title: ExpectedResult + +

Recursive transclusion error in transclude widget

\ No newline at end of file diff --git a/editions/tw5.com/tiddlers/widgets/ErrorWidget.tid b/editions/tw5.com/tiddlers/widgets/ErrorWidget.tid new file mode 100644 index 000000000..392afea40 --- /dev/null +++ b/editions/tw5.com/tiddlers/widgets/ErrorWidget.tid @@ -0,0 +1,17 @@ +caption: error +created: 20220909111836951 +modified: 20220909111836951 +tags: Widgets +title: ErrorWidget +type: text/vnd.tiddlywiki + +<<.from-version "5.3.0">> The <<.wlink ErrorWidget>> widget is used by the core to display error messages such as the recursion errors reported by the <<.wlink TranscludeWidget>> widget. + +The <<.wlink ErrorWidget>> does not provide any useful functionality to end users. It is only required by the core for technical reasons. + +! Content and Attributes + +The content of the <<.wlink ErrorWidget>> widget is ignored. + +|!Attribute |!Description | +|$message |The error message | From 47f80339b2de7070cff1422a5a608bfc4310b826 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 1 Oct 2022 10:15:14 +0100 Subject: [PATCH 027/937] Update transclude widget to use error widget Missed off #6970 --- core/modules/widgets/transclude.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/core/modules/widgets/transclude.js b/core/modules/widgets/transclude.js index 18645cd27..ff30c841d 100755 --- a/core/modules/widgets/transclude.js +++ b/core/modules/widgets/transclude.js @@ -70,11 +70,9 @@ TranscludeWidget.prototype.execute = function() { // Check for recursion if(parser) { if(this.parentWidget && this.parentWidget.hasVariable("transclusion",recursionMarker)) { - parseTreeNodes = [{type: "element", tag: "span", attributes: { - "class": {type: "string", value: "tc-error"} - }, children: [ - {type: "text", text: $tw.language.getString("Error/RecursiveTransclusion")} - ]}]; + parseTreeNodes = [{type: "error", attributes: { + "$message": {type: "string", value: $tw.language.getString("Error/RecursiveTransclusion")} + }]; } } // Construct the child widgets From 1841b0fa4fbf76e2e9adbe1a47c462d01ab10719 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 1 Oct 2022 14:05:13 +0100 Subject: [PATCH 028/937] Fix tests --- core/modules/widgets/transclude.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/widgets/transclude.js b/core/modules/widgets/transclude.js index ff30c841d..d7862d2eb 100755 --- a/core/modules/widgets/transclude.js +++ b/core/modules/widgets/transclude.js @@ -72,7 +72,7 @@ TranscludeWidget.prototype.execute = function() { if(this.parentWidget && this.parentWidget.hasVariable("transclusion",recursionMarker)) { parseTreeNodes = [{type: "error", attributes: { "$message": {type: "string", value: $tw.language.getString("Error/RecursiveTransclusion")} - }]; + }}]; } } // Construct the child widgets From 82de7c9b1a09013e4d3a80f4c534af9a23122688 Mon Sep 17 00:00:00 2001 From: Joe Bordes Date: Sun, 2 Oct 2022 15:19:26 +0200 Subject: [PATCH 029/937] i18n(ES) update translation with latest master (#6971) --- languages/es-ES/Buttons.multids | 176 ++++++++++---------- languages/es-ES/ControlPanel.multids | 17 ++ languages/es-ES/Docs/PaletteColours.multids | 4 +- languages/es-ES/EditTemplate.multids | 3 + languages/es-ES/Fields.multids | 7 +- languages/es-ES/GettingStarted.tid | 7 +- languages/es-ES/Help/default.tid | 5 +- languages/es-ES/Help/listen.tid | 1 - languages/es-ES/Help/render.tid | 4 +- languages/es-ES/Import.multids | 2 +- languages/es-ES/Misc.multids | 3 +- languages/es-ES/SideBar.multids | 1 + languages/es-ES/Snippets/ListByTag.tid | 2 +- 13 files changed, 130 insertions(+), 102 deletions(-) diff --git a/languages/es-ES/Buttons.multids b/languages/es-ES/Buttons.multids index 56271cd72..fd9968ef1 100644 --- a/languages/es-ES/Buttons.multids +++ b/languages/es-ES/Buttons.multids @@ -2,12 +2,8 @@ title: $:/language/Buttons/ AdvancedSearch/Caption: Búsqueda avanzada AdvancedSearch/Hint: Búsqueda avanzada -Bold/Caption: Negrita -Bold/Hint: Aplicar formato de negrita a la selección Cancel/Caption: Cancelar Cancel/Hint: Descarta los cambios -Clear/Caption: Limpiar -Clear/Hint: Limpiar imagen a color solido Clone/Caption: Clonar Clone/Hint: Hace una copia exacta de este tiddler Close/Caption: Cerrar @@ -22,45 +18,114 @@ CopyToClipboard/Caption: copiar a portapapeles CopyToClipboard/Hint: Copia este texto al portapapeles Delete/Caption: Borrar Delete/Hint: Borra este tiddler +DeleteTiddlers/Caption: borrar tiddlers +DeleteTiddlers/Hint: Borrar tiddlers Edit/Caption: Editar Edit/Hint: Permite editar este tiddler -EditorHeight/Caption: Altura del editor -EditorHeight/Caption/Auto: Ajustar al contenido -EditorHeight/Caption/Fixed: Altura fija -EditorHeight/Hint: Determina la altura del cuadro de edición Encryption/Caption: Cifrado +Encryption/Hint: Asigna o revoca la contraseña de cifrado para este wiki Encryption/ClearPassword/Caption: Borrar contraseña Encryption/ClearPassword/Hint: Borra la contraseña actual y guarda este wiki sin cifrar -Encryption/Hint: Asigna o revoca la contraseña de cifrado para este wiki Encryption/SetPassword/Caption: Asignar contraseña Encryption/SetPassword/Hint: Asigna contraseña de cifrado -Excise/Caption: Escindir -Excise/Caption/Excise: Escindir -Excise/Caption/MacroName: Nombre de la macro -Excise/Caption/NewTitle: Título del nuevo tiddler -Excise/Caption/Replace: Reemplazar texto escindido con: -Excise/Caption/Replace/Link: enlace -Excise/Caption/Replace/Macro: macro -Excise/Caption/Replace/Transclusion: transclusión -Excise/Caption/Tag: Etiqueta el nuevo tiddler con el título de este -Excise/Caption/TiddlerExists: ¡Atención! El tiddler ya existe -Excise/Hint: Corta el texto seleccionado y lo pega en un tiddler nuevo ExportPage/Caption: Exportar todos ExportPage/Hint: Exporta todos los tiddlers ExportTiddler/Caption: Exportar tiddler ExportTiddler/Hint: Exporta este tiddler ExportTiddlers/Caption: Exportar tiddlers ExportTiddlers/Hint: Exporta el grupo de tiddlers +SidebarSearch/Hint: Selecciona el campo de búsqueda de la barra lateral Fold/Caption: Comprimir tiddler +Fold/Hint: Comprime la vista del tiddler ocultando el cuerpo y sólo muestra el título Fold/FoldBar/Caption: Barra de vista comprimida Fold/FoldBar/Hint: Barras opcionales para comprimir y desplegar tiddlers -Fold/Hint: Comprime la vista del tiddler ocultando el cuerpo y sólo muestra el título -FoldAll/Caption: Comprimir todos -FoldAll/Hint: Comprime la vista de todos los tiddlers abiertos +Unfold/Caption: Desplegar tiddler +Unfold/Hint: Despliega el cuerpo de este tiddler y muestra su contenido FoldOthers/Caption: Comprimir los demás FoldOthers/Hint: Comprime la vista de todos los tiddlers abiertos excepto este +FoldAll/Caption: Comprimir todos +FoldAll/Hint: Comprime la vista de todos los tiddlers abiertos +UnfoldAll/Caption: Desplegar todos +UnfoldAll/Hint: Despliega y muestra el contenido de todos los tiddlers abiertos FullScreen/Caption: Pantalla completa FullScreen/Hint: Entra y sale del modo de pantalla completa +Help/Caption: Ayuda +Help/Hint: Muestra el panel de ayuda +Import/Caption: Importar +Import/Hint: Importa multitud de tipos de archivo, incluyendo textos, imágenes, TiddlyWiki y JSON +Info/Caption: Información +Info/Hint: Muestra información sobre este tiddler +Home/Caption: Inicio +Home/Hint: Cierra todos los tiddlers abiertos y abre los que se muestran por defecto al inicio +Language/Caption: Idioma +Language/Hint: Selecciona idioma de la interfaz de usuario +Manager/Caption: Administrador tiddler +Manager/Hint: Abre el administrador del tiddler +More/Caption: Más +More/Hint: Otras acciones +NewHere/Caption: Nuevo aquí +NewHere/Hint: Crea un nuevo tiddler etiquetado con el título de este tiddler +NewJournal/Caption: Nueva entrada +NewJournal/Hint: Crea una nueva entrada de diario +NewJournalHere/Caption: Entrada nueva aquí +NewJournalHere/Hint: Crea una nueva entrada de diario etiquetada con el título de este tiddler +NewImage/Caption: Nueva imagen +NewImage/Hint: Crea un nuevo tiddler de imagen +NewMarkdown/Caption: Nuevo tiddler en Markdown +NewMarkdown/Hint: Crea un nuevo tiddler en Markdown +NewTiddler/Caption: Nuevo tiddler +NewTiddler/Hint: Crea un tiddler nuevo +OpenWindow/Caption: Abrir en ventana nueva +OpenWindow/Hint: Abre el tiddler en una nueva ventana +Palette/Caption: Paleta +Palette/Hint: Selecciona la paleta de color +Permalink/Caption: Enlace permanente +Permalink/Hint: Crea en la barra de direcciones del navegador un enlace directo a este tiddler +Permaview/Caption: Permaview +Permaview/Hint: Crea en la barra de direcciones del navegador un enlace directo a todos los tiddlers abiertos +Print/Caption: Imprimir página +Print/Hint: Imprime la página actual +Refresh/Caption: Recargar +Refresh/Hint: Actualiza completamente este wiki +Save/Caption: Vale +Save/Hint: Confirma y guarda los cambios realizados en el tiddler +SaveWiki/Caption: Guardar cambios +SaveWiki/Hint: Confirma y guarda todos los cambios realizados en el wiki +StoryView/Caption: Vista +StoryView/Hint: Selecciona el modo de visualización de los tiddlers +HideSideBar/Caption: Ocultar barra lateral +HideSideBar/Hint: Oculta la barra lateral +ShowSideBar/Caption: Mostrar barra lateral +ShowSideBar/Hint: Muestra la barra lateral +TagManager/Caption: Administrador de etiquetas +TagManager/Hint: Abre el gestor de etiquetas +Timestamp/Caption: Marcas de tiempo +Timestamp/Hint: Elige si las modificaciones actualizan las marcas de tiempo +Timestamp/On/Caption: las marcas de tiempo están activadas +Timestamp/On/Hint: Actualizar las marcas de tiempo cuando se modifican los tiddlers +Timestamp/Off/Caption: las marcas de tiempo están desactivadas +Timestamp/Off/Hint: No actualizar las marcas de tiempo cuando se modifican los tiddlers +Theme/Caption: Tema +Theme/Hint: Selecciona un estilo visual para el wiki +Bold/Caption: Negrita +Bold/Hint: Aplicar formato de negrita a la selección +Clear/Caption: Limpiar +Clear/Hint: Limpiar imagen a color solido +EditorHeight/Caption: Altura del editor +EditorHeight/Caption/Auto: Ajustar al contenido +EditorHeight/Caption/Fixed: Altura fija +EditorHeight/Hint: Determina la altura del cuadro de edición +Excise/Caption: Escindir +Excise/Caption/Excise: Escindir +Excise/Caption/MacroName: Nombre de la macro +Excise/Caption/NewTitle: Título del nuevo tiddler +Excise/Caption/Replace: Reemplazar texto escindido con: +Excise/Caption/Replace/Macro: macro +Excise/Caption/Replace/Link: enlace +Excise/Caption/Replace/Transclusion: transclusión +Excise/Caption/Tag: Etiqueta el nuevo tiddler con el título de este +Excise/Caption/TiddlerExists: ¡Atención! El tiddler ya existe +Excise/Hint: Corta el texto seleccionado y lo pega en un tiddler nuevo Heading1/Caption: Encabezamiento 1 Heading1/Hint: Aplica formato de encabezamiento 1 a la selección Heading2/Caption: Encabezamiento 2 @@ -73,20 +138,8 @@ Heading5/Caption: Encabezamiento 5 Heading5/Hint: Aplica formato de encabezamiento 5 a la selección Heading6/Caption: Encabezamiento 6 Heading6/Hint: Aplica formato de encabezamiento 6 a la selección -Help/Caption: Ayuda -Help/Hint: Muestra el panel de ayuda -HideSideBar/Caption: Ocultar barra lateral -HideSideBar/Hint: Oculta la barra lateral -Home/Caption: Inicio -Home/Hint: Cierra todos los tiddlers abiertos y abre los que se muestran por defecto al inicio -Import/Caption: Importar -Import/Hint: Importa multitud de tipos de archivo, incluyendo textos, imágenes, TiddlyWiki y JSON -Info/Caption: Información -Info/Hint: Muestra información sobre este tiddler Italic/Caption: Cursiva Italic/Hint: Aplica formato de cursiva a la selección -Language/Caption: Idioma -Language/Hint: Selecciona idioma de la interfaz de usuario LineWidth/Caption: Ancho del trazo LineWidth/Hint: Establece el ancho del trazo para pintar Link/Caption: Enlace @@ -97,59 +150,24 @@ ListBullet/Caption: Lista con viñetas ListBullet/Hint: Aplica formato de lista con viñetas a la selección ListNumber/Caption: Lista numerada ListNumber/Hint: Aplica formato de lista numerada a la selección -Manager/Caption: Administrador tiddler -Manager/Hint: Abre el administrador del tiddler MonoBlock/Caption: Bloque monoespaciado MonoBlock/Hint: Aplica formato de bloque monoespaciado a la selección MonoLine/Caption: Monoespacio MonoLine/Hint: Aplica formato de monoespacio a la selección -More/Caption: Más -More/Hint: Otras acciones -NewHere/Caption: Nuevo aquí -NewHere/Hint: Crea un nuevo tiddler etiquetado con el título de este tiddler -NewImage/Caption: Nueva imagen -NewImage/Hint: Crea un nuevo tiddler de imagen -NewJournal/Caption: Nueva entrada -NewJournal/Hint: Crea una nueva entrada de diario -NewJournalHere/Caption: Entrada nueva aquí -NewJournalHere/Hint: Crea una nueva entrada de diario etiquetada con el título de este tiddler -NewMarkdown/Caption: Nuevo tiddler en Markdown -NewMarkdown/Hint: Crea un nuevo tiddler en Markdown -NewTiddler/Caption: Nuevo tiddler -NewTiddler/Hint: Crea un tiddler nuevo Opacity/Caption: Opacidad Opacity/Hint: Establece la opacidad del trazo -OpenWindow/Caption: Abrir en ventana nueva -OpenWindow/Hint: Abre el tiddler en una nueva ventana Paint/Caption: Color del trazo Paint/Hint: Establece el color del trazo -Palette/Caption: Paleta -Palette/Hint: Selecciona la paleta de color -Permalink/Caption: Enlace permanente -Permalink/Hint: Crea en la barra de direcciones del navegador un enlace directo a este tiddler -Permaview/Caption: Permaview -Permaview/Hint: Crea en la barra de direcciones del navegador un enlace directo a todos los tiddlers abiertos Picture/Caption: Imagen Picture/Hint: Inserta imagen Preview/Caption: Vista previa Preview/Hint: Muestra el panel de vista previa PreviewType/Caption: Tipo de vista previa PreviewType/Hint: Selecciona el tipo de vista previa -Print/Caption: Imprimir página -Print/Hint: Imprime la página actual Quote/Caption: Bloque de cita Quote/Hint: Aplica formato de bloque de cita a la selección -Refresh/Caption: Recargar -Refresh/Hint: Actualiza completamente este wiki RotateLeft/Caption: girar a la izquierda RotateLeft/Hint: Girar la imagen a la izquierda 90 grados -Save/Caption: Vale -Save/Hint: Confirma y guarda los cambios realizados en el tiddler -SaveWiki/Caption: Guardar cambios -SaveWiki/Hint: Confirma y guarda todos los cambios realizados en el wiki -ShowSideBar/Caption: Mostrar barra lateral -ShowSideBar/Hint: Muestra la barra lateral -SidebarSearch/Hint: Selecciona el campo de búsqueda de la barra lateral Size/Caption: Tamaño de imagen Size/Caption/Height: Altura: Size/Caption/Resize: Cambiar tamaño @@ -158,32 +176,16 @@ Size/Hint: Establece tamaño de la imagen Stamp/Caption: Snippet Stamp/Caption/New: Añade el tuyo propio Stamp/Hint: Inserta un snippet o fragmento de texto preconfigurado -Stamp/New/Text: Texto del snippet (Recuerda añadir un título descriptivo en el campo "caption" ). Stamp/New/Title: Nombre para mostrar en el menú -StoryView/Caption: Vista -StoryView/Hint: Selecciona el modo de visualización de los tiddlers +Stamp/New/Text: Texto del snippet (Recuerda añadir un título descriptivo en el campo "caption" ). Strikethrough/Caption: Tachado Strikethrough/Hint: Aplica formado de tachado a la selección Subscript/Caption: Subíndice Subscript/Hint: Aplica formato de subíndice a la selección Superscript/Caption: Superíndice Superscript/Hint: Aplica formato de superíndice a la selección -TagManager/Caption: Administrador de etiquetas -TagManager/Hint: Abre el gestor de etiquetas -Theme/Caption: Tema -Theme/Hint: Selecciona un estilo visual para el wiki -Timestamp/Caption: Marcas de tiempo -Timestamp/Hint: Elige si las modificaciones actualizan las marcas de tiempo -Timestamp/Off/Caption: las marcas de tiempo están desactivadas -Timestamp/Off/Hint: No actualizar las marcas de tiempo cuando se modifican los tiddlers -Timestamp/On/Caption: las marcas de tiempo están activadas -Timestamp/On/Hint: Actualizar las marcas de tiempo cuando se modifican los tiddlers ToggleSidebar/Hint: Alternar la visibilidad de la barra lateral Transcludify/Caption: Transclusión Transcludify/Hint: Envolver la selección entre llaves Underline/Caption: Subrayado Underline/Hint: Aplica formato de subrayado a la selección -Unfold/Caption: Desplegar tiddler -Unfold/Hint: Despliega el cuerpo de este tiddler y muestra su contenido -UnfoldAll/Caption: Desplegar todos -UnfoldAll/Hint: Despliega y muestra el contenido de todos los tiddlers abiertos diff --git a/languages/es-ES/ControlPanel.multids b/languages/es-ES/ControlPanel.multids index 5c02edfa2..369afc34f 100644 --- a/languages/es-ES/ControlPanel.multids +++ b/languages/es-ES/ControlPanel.multids @@ -27,10 +27,17 @@ Basics/Tiddlers/Prompt: Número de tiddlers Basics/Title/Prompt: Título de este ~TiddlyWiki: Basics/Username/Prompt: Nombre de usuario Basics/Version/Prompt: Versión de ~TiddlyWiki +Cascades/Caption: Cascadas +Cascades/Hint: Estas reglas globales se utilizan para elegir dinámicamente ciertas plantillas. El resultado de la cascada es el resultado del primer filtro en la secuencia que devuelve un resultado +Cascades/TagPrompt: Filtros etiquetados <$macrocall $name="tag" tag=<>/> EditorTypes/Caption: Tipos de editor EditorTypes/Editor/Caption: Editor EditorTypes/Hint: Editores usados para ciertos tipos específicos de tiddler EditorTypes/Type/Caption: Tipo +EditTemplateBody/Caption: Editar Cuerpo de Plantilla +EditTemplateBody/Hint: La plantilla de edición predeterminada utiliza esta cascada de reglas para elegir dinámicamente la plantilla para editar el cuerpo de un tiddler. +FieldEditor/Caption: Editor de Campos +FieldEditor/Hint: Esta cascada de reglas se usa para elegir dinámicamente la plantilla para representar un campo en función de su nombre. Se utiliza dentro de la plantilla de edición. Info/Caption: Información Info/Hint: Información acerca de este TiddlyWiki KeyboardShortcuts/Add/Caption: Añadir atajo @@ -191,6 +198,8 @@ Settings/TitleLinks/Yes/Description: Mostrar como enlaces Settings/MissingLinks/Caption: Enlaces Wiki Settings/MissingLinks/Hint: Elige si quieres vincular a tiddlers que aún no existen Settings/MissingLinks/Description: Habilitar enlaces a tiddlers inexistentes +StoryTiddler/Caption: Tiddler de Historia +StoryTiddler/Hint: Esta cascada de reglas se usa para elegir dinámicamente la plantilla para mostrar un tiddler en el río de la historia. StoryView/Caption: Vista StoryView/Prompt: Vista actual Stylesheets/Caption: Hojas de estilo @@ -201,6 +210,10 @@ Theme/Caption: Tema Theme/Prompt: Tema actual TiddlerFields/Caption: Campos de tiddler TiddlerFields/Hint: Esta es la colección completa de campos de tiddler (TiddlerFields) actualmente en uso en este wiki, que incluye los tiddlers de sistema, pero no los ocultos +TiddlerColour/Caption: Color del Tiddler +TiddlerColour/Hint: Esta cascada de reglas se utiliza para elegir dinámicamente el color de un tiddler (utilizado para el icono y la etiqueta asociada). +TiddlerIcon/Caption: Icono del Tiddler +TiddlerIcon/Hint: Esta cascada de reglas se utiliza para elegir dinámicamente el icono de un tiddler. Toolbars/Caption: Barras de herramientas Toolbars/EditToolbar/Caption: Barra de edición Toolbars/EditToolbar/Hint: Selecciona qué botones mostrar en modo de edición @@ -212,3 +225,7 @@ Toolbars/EditorToolbar/Hint: Elige qué botones se muestran en la barra de herra Toolbars/ViewToolbar/Caption: Barra de visualización Toolbars/ViewToolbar/Hint: Selecciona qué botones mostrar en modo de visualización Tools/Download/Full/Caption: Descargar el wiki completo +ViewTemplateBody/Caption: Ver el Cuerpo de la Plantilla +ViewTemplateBody/Hint: La plantilla de vista predeterminada utiliza esta cascada de reglas para elegir dinámicamente la plantilla para mostrar el cuerpo de un tiddler. +ViewTemplateTitle/Caption: Ver el Título de la Plantilla +ViewTemplateTitle/Hint: La plantilla de vista predeterminada utiliza esta cascada de reglas para elegir dinámicamente la plantilla para mostrar el título de un tiddler. diff --git a/languages/es-ES/Docs/PaletteColours.multids b/languages/es-ES/Docs/PaletteColours.multids index 36f78d71e..361aa1d39 100644 --- a/languages/es-ES/Docs/PaletteColours.multids +++ b/languages/es-ES/Docs/PaletteColours.multids @@ -44,8 +44,8 @@ muted-foreground: Primario general silenciado notification-background: Fondo Notificación notification-border: Borde Notificación page-background: Fondo Página -pre-background: Preformatted code background -pre-border: Preformatted code border +pre-background: Fondo de código preformateado +pre-border: Borde de código preformateado primary: Primario general select-tag-background: Fondo `` diff --git a/languages/es-ES/EditTemplate.multids b/languages/es-ES/EditTemplate.multids index 934e87163..b25a98dbb 100644 --- a/languages/es-ES/EditTemplate.multids +++ b/languages/es-ES/EditTemplate.multids @@ -1,8 +1,11 @@ title: $:/language/EditTemplate/ +Caption: Editor Body/External/Hint: Este es un tiddler externo, es decir, guardado fuera del archivo TiddlyWiki principal
Puedes editar sus etiquetas y campos, pero no se puede editar directamente el contenido Body/Placeholder: Escribe el texto aquí Body/Preview/Type/Output: Visible +Body/Preview/Type/DiffShadow: diferencias con la copia (si las hay) +Body/Preview/Type/DiffCurrent: diferencias con el actual Field/Remove/Caption: Eliminar campo Field/Remove/Hint: Elimina el campo y su valor Field/Dropdown/Caption: lista de campos diff --git a/languages/es-ES/Fields.multids b/languages/es-ES/Fields.multids index 749ba6231..c3445828a 100644 --- a/languages/es-ES/Fields.multids +++ b/languages/es-ES/Fields.multids @@ -3,6 +3,7 @@ title: $:/language/Docs/Fields/ _canonical_uri: Dirección (URI) completa -absoluta o relativa- de un tiddler externo de imagen bag: Nombre de la bolsa de la que procede un tiddler caption: Texto que se muestra en una pestaña o botón, con independencia del título del tiddler que lo define +code-body: La plantilla de vista mostrará el tiddler como código si se establece en ''yes'' color: Valor CSS del color de fondo asociado a un tiddler component: Nombre del componente responsable de un [[tiddler de alerta|AlertMechanism]] current-tiddler: Usado para incluir el tiddler superior en una [[historia|HistoryMechanism]] @@ -13,9 +14,9 @@ description: Descripción de un complemento, extensión, o diálogo modal draft.of: Título del tiddler del que el actual es borrador draft.title: Nuevo título propuesto para el presente borrador footer: Texto al pie que figurará en un asistente -hide-body: La plantilla de vista ocultará los cuerpos de los tiddlers si se establece en: ''yes'' +hide-body: La plantilla de vista ocultará los cuerpos de los tiddlers si se establece en ''yes'' icon: Nombre del tiddler que contiene el icono que se quiere asociar al presente tiddler -library: Si su valor es "Sí", indica que el tiddler debe guardarse como librería de JavaScript +library: Si su valor es ''yes'', indica que el tiddler debe guardarse como librería de JavaScript list: Lista ordenada de tiddlers asociados al presente tiddler list-before: Título del tiddler antes del que el presente será añadido a una lista
Si el campo existe pero está vacío, el tiddler se añadirá al principio de la lista list-after: Título del tiddler tras el que el presente será añadido a una lista de tiddlers. @@ -32,7 +33,7 @@ tags: Lista de etiquetas asignadas al tiddler text: Texto principal de un tiddler throttle.refresh: Si está presente, regula las actualizaciones de este tiddler title: Nombre único de un tiddler -toc-link: Suprime el enlace del tiddler en la tabla de contenido si se establece en: ''no'' +toc-link: Suprime el enlace del tiddler en la tabla de contenido si se establece en ''no'' type: Tipo de contenido en un tiddler version: Versión de un complemento o extensión _is_skinny: Si está presente, indica que el campo de texto tiddler debe cargarse desde el servidor diff --git a/languages/es-ES/GettingStarted.tid b/languages/es-ES/GettingStarted.tid index 05437a5f1..69c515b38 100644 --- a/languages/es-ES/GettingStarted.tid +++ b/languages/es-ES/GettingStarted.tid @@ -11,9 +11,10 @@ Visita https://tiddlywiki.com/#GettingStarted para más información (en inglés
-|<$link to="$:/SiteTitle"><> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | -|<$link to="$:/SiteSubtitle"><> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | -|<$link to="$:/DefaultTiddlers"><> |<>
<$edit tag="textarea" tiddler="$:/DefaultTiddlers"/>
//<>// | +|tc-table-no-border tc-first-col-min-width tc-first-link-nowrap|k +| <$link to="$:/SiteTitle"><>|<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | +| <$link to="$:/SiteSubtitle"><>|<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | +|^ <$link to="$:/DefaultTiddlers"><>
<>|<$edit tag="textarea" tiddler="$:/DefaultTiddlers"/>
//<>// |
Consulta más opciones en el [[panel de control|$:/ControlPanel]] diff --git a/languages/es-ES/Help/default.tid b/languages/es-ES/Help/default.tid index 40b7e484d..f184043e3 100644 --- a/languages/es-ES/Help/default.tid +++ b/languages/es-ES/Help/default.tid @@ -4,6 +4,7 @@ description: \define commandTitle() $:/language/Help/$(command)$ \end +\whitespace trim ``` Uso: tiddlywiki [] [-- [...]...] ``` @@ -12,7 +13,9 @@ Comandos disponibles:
    <$list filter="[commands[]sort[title]]" variable="command"> -
  • <$link to=<>><$macrocall $name="command" $type="text/plain" $output="text/plain"/>: <$transclude tiddler=<> field="description"/>
  • +
  • <$link to=<>><$macrocall $name="command" $type="text/plain" $output="text/plain"/>: + +<$transclude tiddler=<> field="description"/>
diff --git a/languages/es-ES/Help/listen.tid b/languages/es-ES/Help/listen.tid index 21af6ab4a..9cfae2bb1 100644 --- a/languages/es-ES/Help/listen.tid +++ b/languages/es-ES/Help/listen.tid @@ -22,7 +22,6 @@ Todos los parámetros son opcionales con valores predeterminados seguros y se pu * ''readers'' - lista separada por comas de los usuarios autorizados a leer de este wiki * ''writers'' - lista separada por comas de los usuarios autorizados a escribir en este wiki * ''csrf-disable'' - establecer a "yes" para deshabilitar las comprobaciones CSRF (el valor predeterminado es "no") -* ''sse-enabled'' - establecer a "yes" para habilitar los eventos enviados por el servidor (el valor predeterminado es "no") * ''root-tiddler'' - el tiddler para servir en la raíz (por defecto es "$:/core/save/all") * ''root-render-type'' - el tipo de contenido del tiddler raíz (por defecto es "text/plain") * ''root-serve-type'' - el tipo de contenido con el que se debe servir el tiddler raíz (el valor predeterminado es "text/html") diff --git a/languages/es-ES/Help/render.tid b/languages/es-ES/Help/render.tid index a3a76741d..f01b2c003 100644 --- a/languages/es-ES/Help/render.tid +++ b/languages/es-ES/Help/render.tid @@ -31,5 +31,5 @@ Notas: Ejemplos: -* `--render "[!is[system]]" "[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]"` -- muestra todos los tiddlers que no son del sistema como archivos en el subdirectorio "tiddlers" con títulos codificados en URL y la extensión HTML - +* `--render '[!is[system]]' '[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]'` -- renders all non-system tiddlers as files in the subdirectory "tiddlers" with URL-encoded titles and the extension HTML +* `--render '.' 'tiddlers.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[HelloThere]]'` -- renders the tiddlers tagged "HelloThere" to a JSON file named "tiddlers.json" diff --git a/languages/es-ES/Import.multids b/languages/es-ES/Import.multids index 9de545347..b5d96079d 100644 --- a/languages/es-ES/Import.multids +++ b/languages/es-ES/Import.multids @@ -30,5 +30,5 @@ Upgrader/System/Warning: tiddler del sistema principal. Upgrader/System/Alert: Estás a punto de importar un tiddler que sobrescribirá un tiddler del sistema principal. Esto no se recomienda ya que puede hacer que el sistema sea inestable. Upgrader/ThemeTweaks/Created: Ajuste de tema migrado de <$text text=<>/> Upgrader/Tiddler/Disabled: Tiddler deshabilitado. -Upgrader/Tiddler/Selected: Usuario seleccionado. +Upgrader/Tiddler/Selected: Tiddler seleccionado. Upgrader/Tiddler/Unselected: Tiddler no seleccionado. diff --git a/languages/es-ES/Misc.multids b/languages/es-ES/Misc.multids index caeb6dfed..457ad56e2 100644 --- a/languages/es-ES/Misc.multids +++ b/languages/es-ES/Misc.multids @@ -8,13 +8,14 @@ CloseAll/Button: Cerrar todo ColourPicker/Recent: Recientes: ConfirmCancelTiddler: ¿Deseas descartar los cambios efectuados en "<$text text=<>/>"? ConfirmDeleteTiddler: ¿Deseas borrar "<$text text=<<title>>/>"? +ConfirmDeleteTiddlers: ¿Deseas borrar <<resultCount>> tiddler(s)? ConfirmOverwriteTiddler: ¿Deseas sobrescribir "<$text text=<<title>>/>"? ConfirmEditShadowTiddler: Estás a punto de editar un tiddler oculto<br> Todo cambio en él afectará al sistema por defecto y pondrá en riesgo futuras actualizaciones del sistema<br> ¿Estás seguro de querer editar "<$text text=<<title>>/>"? ConfirmAction: ¿Desea continuar? Count: Número DefaultNewTiddlerTitle: Nuevo Tiddler Diffs/CountMessage: <<diff-count>> diferencias -DropMessage: Suéltalo aquí o pulsa ''ESC'' para cancelar +DropMessage: Suéltalo ahora o pulsa ''ESC'' para cancelar Encryption/Cancel: Cancelar Encryption/ConfirmClearPassword: ¿Deseas borrar la contraseña? <br> Revocarás el cifrado que se aplica para guardar este wiki Encryption/PromptSetPassword: Especifica nueva contraseña para este TiddlyWiki diff --git a/languages/es-ES/SideBar.multids b/languages/es-ES/SideBar.multids index 5aa0ed207..7b1171108 100644 --- a/languages/es-ES/SideBar.multids +++ b/languages/es-ES/SideBar.multids @@ -1,5 +1,6 @@ title: $:/language/SideBar/ +Caption: Panel Lateral All/Caption: Todos Contents/Caption: Contenido Drafts/Caption: Borradores diff --git a/languages/es-ES/Snippets/ListByTag.tid b/languages/es-ES/Snippets/ListByTag.tid index 871bda1e8..78ebb4233 100644 --- a/languages/es-ES/Snippets/ListByTag.tid +++ b/languages/es-ES/Snippets/ListByTag.tid @@ -1,5 +1,5 @@ title: $:/language/Snippets/ListByTag tags: $:/tags/TextEditor/Snippet -caption: Liste de tiddlers par etiqueta +caption: Liste de tiddlers por etiqueta <<list-links "[tag[task]sort[title]]">> From 36896c3db8c9678c0385a561996248a6f00a45ff Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 2 Oct 2022 17:22:48 +0100 Subject: [PATCH 030/937] Use view template body when opening tiddler in new window --- core/templates/single.tiddler.window.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/templates/single.tiddler.window.tid b/core/templates/single.tiddler.window.tid index 1efb2b0b9..0d14509e5 100644 --- a/core/templates/single.tiddler.window.tid +++ b/core/templates/single.tiddler.window.tid @@ -18,7 +18,7 @@ tc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$ <$navigator story="$:/StoryList" history="$:/HistoryList"> -<$transclude mode="block"/> +<$transclude tiddler="$:/core/ui/ViewTemplate/body" mode="block"/> </$navigator> From 79e2e317cfe2b31327ed6dfdfd35ab0bd4c2684c Mon Sep 17 00:00:00 2001 From: twMat <boardsmm@gmail.com> Date: Sun, 2 Oct 2022 18:37:03 +0200 Subject: [PATCH 031/937] Update Styles and Classes in WikiText.tid (#6969) Add tag to include this tiddler in the list in the tiddler https://tiddlywiki.com/prerelease/#How%20to%20apply%20custom%20styles --- .../tiddlers/wikitext/Styles and Classes in WikiText.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/wikitext/Styles and Classes in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Styles and Classes in WikiText.tid index 553de2dc7..102a19836 100644 --- a/editions/tw5.com/tiddlers/wikitext/Styles and Classes in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Styles and Classes in WikiText.tid @@ -1,6 +1,6 @@ created: 20131205160532119 modified: 20131205160549129 -tags: WikiText +tags: WikiText [[How to apply custom styles]] title: Styles and Classes in WikiText type: text/vnd.tiddlywiki caption: Styles and Classes From fb34df84ed41882c1c2a6ff54f0e908b43ef95a3 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 2 Oct 2022 18:55:26 +0100 Subject: [PATCH 032/937] New image shortcut should not add journal tags Fixes #6968 --- core/ui/Actions/new-image.tid | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/core/ui/Actions/new-image.tid b/core/ui/Actions/new-image.tid index 01b3f61d5..98c03648e 100644 --- a/core/ui/Actions/new-image.tid +++ b/core/ui/Actions/new-image.tid @@ -2,11 +2,5 @@ title: $:/core/ui/Actions/new-image tags: $:/tags/Actions description: create a new image tiddler -\define get-type() -image/$(imageType)$ -\end -\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$ \whitespace trim -<$vars imageType={{$:/config/NewImageType}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}}> -<$action-sendmessage $message="tm-new-tiddler" type=<<get-type>> tags=<<get-tags>>/> -</$vars> +<$action-sendmessage $message="tm-new-tiddler" type={{{ [{$:/config/NewImageType}addprefix[image/]] }}}/> From 4007610d522281204bdef90e11b68834cfee92b7 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 2 Oct 2022 18:59:05 +0100 Subject: [PATCH 033/937] Prefer "modal" over "wizard" in the core See https://github.com/Jermolene/TiddlyWiki5/discussions/6965#discussioncomment-3754315 --- core/language/en-GB/Fields.multids | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/language/en-GB/Fields.multids b/core/language/en-GB/Fields.multids index e3e62ae7e..c094580d5 100644 --- a/core/language/en-GB/Fields.multids +++ b/core/language/en-GB/Fields.multids @@ -13,7 +13,7 @@ dependents: For a plugin, lists the dependent plugin titles description: The descriptive text for a plugin, or a modal dialogue draft.of: For draft tiddlers, contains the title of the tiddler of which this is a draft draft.title: For draft tiddlers, contains the proposed new title of the tiddler -footer: The footer text for a wizard +footer: The footer text for a modal hide-body: The view template will hide bodies of tiddlers if set to ''yes'' icon: The title of the tiddler containing the icon associated with a tiddler library: Indicates that a tiddler should be saved as a JavaScript library if set to ''yes'' @@ -28,7 +28,7 @@ plugin-type: The type of plugin in a plugin tiddler revision: The revision of the tiddler held at the server released: Date of a TiddlyWiki release source: The source URL associated with a tiddler -subtitle: The subtitle text for a wizard +subtitle: The subtitle text for a modal tags: A list of tags associated with a tiddler text: The body text of a tiddler throttle.refresh: If present, throttles refreshes of this tiddler From 31ab6dce77dbccf2bbc550b7c4f1592b5cb8bb78 Mon Sep 17 00:00:00 2001 From: Bram Chen <bram.chen@gmail.com> Date: Mon, 3 Oct 2022 16:45:30 +0800 Subject: [PATCH 034/937] Update chinese language files (#6972) * Revise the footer and subtitle texts in Fields.multids --- languages/zh-Hans/Fields.multids | 4 ++-- languages/zh-Hant/Fields.multids | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/languages/zh-Hans/Fields.multids b/languages/zh-Hans/Fields.multids index 87b003d5e..b0683aa06 100644 --- a/languages/zh-Hans/Fields.multids +++ b/languages/zh-Hans/Fields.multids @@ -13,7 +13,7 @@ dependents: 插件的相依插件列表 description: 插件的说明、描述 draft.of: 草稿条目,包含条目的标题、标签、栏位 ... draft.title: 草稿条目的标题 -footer: wizard 的注脚 +footer: 互动窗口的注脚 hide-body: 若设置为 ''yes'',视图模板将隐藏条目的主体 icon: 条目的标题含有与条目关联的图标 library: 若设置为 ''yes'',表示条目应该被保存为一个 JavaScript 程序库 @@ -28,7 +28,7 @@ plugin-type: 插件条目的类型 released: TiddlyWiki 的发布日期 revision: 条目存放于服务器中的修订版本 source: 条目的网址 -subtitle: 一个 wizard 的副标题 +subtitle: 互动窗口的副标题 tags: 条目的标签清单 text: 条目的内文 throttle.refresh: 如果存在,则限制此条目的刷新 diff --git a/languages/zh-Hant/Fields.multids b/languages/zh-Hant/Fields.multids index a8f319037..e4e491c33 100644 --- a/languages/zh-Hant/Fields.multids +++ b/languages/zh-Hant/Fields.multids @@ -13,7 +13,7 @@ dependents: 插件的相依插件列表 description: 插件的說明、描述 draft.of: 草稿條目,包含條目的標題、標籤、欄位 ... draft.title: 草稿條目的標題 -footer: wizard 的註腳 +footer: 互動視窗的註腳 hide-body: 若設定為 ''yes'',檢視範本將隱藏條目的主體 icon: 條目的標題含有與條目關聯的圖示 library: 若設定為 ''yes'',表示條目應該被儲存為一個 JavaScript 程式庫 @@ -28,7 +28,7 @@ plugin-type: 套件條目的類型 released: TiddlyWiki 的釋出日期 revision: 條目存放於伺服器中的修訂版本 source: 條目的網址 -subtitle: 一個 wizard 的副標題 +subtitle: 互動視窗的副標題 tags: 條目的標籤清單 text: 條目的內文 throttle.refresh: 如果存在,則限制此條目的刷新 From 5657dfec0e7b90d7e74724d0e20bf5e0d447fd44 Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Wed, 5 Oct 2022 15:51:11 +0200 Subject: [PATCH 035/937] Add VScode user settings directory to git ignore (#6974) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5d7cc4870..0727034e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .DS_Store .c9/ +.vscode/ tmp/ output/ node_modules/ From 3bbbe77471c41f0afccfbacf76185dc067003a42 Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Wed, 5 Oct 2022 16:40:23 +0200 Subject: [PATCH 036/937] Update Polish translations (#6975) * add polish translations to changes introduced in two commits: * ca762ab7a6d644cbe7ea07835f5f299fd404c13e * a453121e96ce122143cb65f50ffd47844f523109 * add polish translations to changes introduced in d7b9e6fb02d38bc7a56b08cca96425faacf61999 * add polish translations to changes introduced in 0b1fc8e574de16e280a6dd00ab5dc4477a7c8ee6 --- languages/pl-PL/Buttons.multids | 2 ++ languages/pl-PL/GettingStarted.tid | 7 ++++--- languages/pl-PL/Help/render.tid | 4 ++-- languages/pl-PL/Misc.multids | 1 + 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/languages/pl-PL/Buttons.multids b/languages/pl-PL/Buttons.multids index 4119cc330..571e3600a 100644 --- a/languages/pl-PL/Buttons.multids +++ b/languages/pl-PL/Buttons.multids @@ -18,6 +18,8 @@ CopyToClipboard/Caption: skopiuj do schowka CopyToClipboard/Hint: Skopiuj ten tekst do schowka Delete/Caption: usuń Delete/Hint: Usuń tiddlera +DeleteTiddlers/Caption: usuń tiddlery +DeleteTiddlers/Hint: Usuwa tiddlery Edit/Caption: edytuj Edit/Hint: Edytuj tego tiddlera Encryption/Caption: szyfrowanie diff --git a/languages/pl-PL/GettingStarted.tid b/languages/pl-PL/GettingStarted.tid index 0b43d1c2c..468cae5ba 100644 --- a/languages/pl-PL/GettingStarted.tid +++ b/languages/pl-PL/GettingStarted.tid @@ -9,9 +9,10 @@ Zanim zaczniesz zapisywać ważne informacje w swojej ~TiddlyWiki ważne jest, <div class="tc-control-panel"> -|<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | -|<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | -|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | +|tc-table-no-border tc-first-col-min-width tc-first-link-nowrap|k +| <$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link>|<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | +| <$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link>|<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | +|^ <$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link><br><<lingo DefaultTiddlers/TopHint>>|<$edit tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | </div> Przejdź do [[panelu sterowania|$:/ControlPanel]] by zmienić pozostałe opcje. diff --git a/languages/pl-PL/Help/render.tid b/languages/pl-PL/Help/render.tid index 8d23688b9..15e4b8c66 100644 --- a/languages/pl-PL/Help/render.tid +++ b/languages/pl-PL/Help/render.tid @@ -31,5 +31,5 @@ Notatki: Przykłady: -* `--render "[!is[system]]" "[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]"` -- renderuje wszystkie niesystemowe tiddlery jako pliki w podfolderze "tiddlers", kodując znaki URI w nazwie i dodając rozszerzenie .html - +* `--render '[!is[system]]' '[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]'` -- renderuje wszystkie niesystemowe tiddlery jako pliki w podfolderze "tiddlers", kodując znaki URI w nazwie i dodając rozszerzenie .html +* `--render '.' 'tiddlers.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[HelloThere]]'` -- renderuje wszystkie tiddlery z tagiem "HelloThere" do pliku JSON o nazwie "tiddlers.json" diff --git a/languages/pl-PL/Misc.multids b/languages/pl-PL/Misc.multids index d6a4e90a3..1dee7fe68 100644 --- a/languages/pl-PL/Misc.multids +++ b/languages/pl-PL/Misc.multids @@ -8,6 +8,7 @@ CloseAll/Button: zamknij wszystkie ColourPicker/Recent: Ostatnie: ConfirmCancelTiddler: Czy na pewno chcesz odrzucić zmiany w tiddlerze "<$text text=<<title>>/>"? ConfirmDeleteTiddler: Czy na pewno chcesz usunąc tiddlera "<$text text=<<title>>/>"? +ConfirmDeleteTiddlers: Na pewno chcesz usunąć <<resultCount>> tiddler/y/ów? ConfirmOverwriteTiddler: Czy na pewno chcesz nadpisać tiddlera "<$text text=<<title>>/>"? ConfirmEditShadowTiddler: Próbujesz utworzyć tiddler-cień. Zmiany te nadpiszą oryginalne, systemowe tiddlery co może utrudniać aktualizację wiki. Czy na pewno chcesz zmodyfikować"<$text text=<<title>>/>"? ConfirmAction: Na pewno chcesz kontynuować? From d6ff38095bd95e7aebe0e9dc57a81193d8ce77f1 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Thu, 6 Oct 2022 10:25:14 +0100 Subject: [PATCH 037/937] Docs: Fix typo --- editions/tw5.com/tiddlers/widgets/ErrorWidget.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/widgets/ErrorWidget.tid b/editions/tw5.com/tiddlers/widgets/ErrorWidget.tid index 392afea40..aee5617d2 100644 --- a/editions/tw5.com/tiddlers/widgets/ErrorWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ErrorWidget.tid @@ -5,7 +5,7 @@ tags: Widgets title: ErrorWidget type: text/vnd.tiddlywiki -<<.from-version "5.3.0">> The <<.wlink ErrorWidget>> widget is used by the core to display error messages such as the recursion errors reported by the <<.wlink TranscludeWidget>> widget. +<<.from-version "5.2.4">> The <<.wlink ErrorWidget>> widget is used by the core to display error messages such as the recursion errors reported by the <<.wlink TranscludeWidget>> widget. The <<.wlink ErrorWidget>> does not provide any useful functionality to end users. It is only required by the core for technical reasons. From 09179d2f62ff2251615e4b2d2cd73ce80f19f460 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 7 Oct 2022 16:57:19 +0100 Subject: [PATCH 038/937] Deprecated macro: update text --- editions/tw5.com/tiddlers/system/version-macros.tid | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/editions/tw5.com/tiddlers/system/version-macros.tid b/editions/tw5.com/tiddlers/system/version-macros.tid index 3daf6e848..0fb7dcf12 100644 --- a/editions/tw5.com/tiddlers/system/version-macros.tid +++ b/editions/tw5.com/tiddlers/system/version-macros.tid @@ -1,5 +1,6 @@ +code-body: yes created: 20161008085627406 -modified: 20220704174221300 +modified: 20221007122259593 tags: $:/tags/Macro title: $:/editions/tw5.com/version-macros type: text/vnd.tiddlywiki @@ -9,7 +10,5 @@ type: text/vnd.tiddlywiki \end \define .deprecated-since(version, superseded:"TODO-Link") -<$link to="Deprecated - What does it mean" class="doc-deprecated-version tc-btn-invisible">{{$:/core/images/warning}} Deprecated since: <$text text=<<__version__>>/></$link>. Use <$link to=<<__superseded__>>><$text text=<<__superseded__>>/></$link> instead +<$link to="Deprecated - What does it mean" class="doc-deprecated-version tc-btn-invisible">{{$:/core/images/warning}} Deprecated since: <$text text=<<__version__>>/></$link> (see <$link to=<<__superseded__>>><$text text=<<__superseded__>>/></$link>) \end - -<pre><$view field="text"/></pre> \ No newline at end of file From f33c7e2aefb5b5238efb247bf01fe0ba0497b442 Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Fri, 7 Oct 2022 18:31:04 +0200 Subject: [PATCH 039/937] Allow global keyboard shortcuts to override all other shortcuts by providing a special field (#6735) * allow global keyboard shortcuts to override all other shortcuts by providing a special field * rework the global shortcuts taking priority * replace bool option with options object in KeyboardManager's keydown handler * update keyboard shortcut documentation to add information about the new priority setting * add support for priority global keyboard shortcuts to code mirror * update the feature's docs to point out it was/will be introduced in 5.2.4 * rollback unnecessary change --- core/modules/editor/engines/framed.js | 13 ++++++++++++- core/modules/keyboard.js | 14 +++++++++++++- core/modules/widgets/keyboard.js | 4 ++++ .../tiddlers/concepts/KeyboardShortcutTiddler.tid | 2 ++ .../howtos/How to create keyboard shortcuts.tid | 2 ++ plugins/tiddlywiki/codemirror/engine.js | 4 ++++ 6 files changed, 37 insertions(+), 2 deletions(-) diff --git a/core/modules/editor/engines/framed.js b/core/modules/editor/engines/framed.js index 957a9156e..10ab90b39 100644 --- a/core/modules/editor/engines/framed.js +++ b/core/modules/editor/engines/framed.js @@ -87,7 +87,7 @@ function FramedEngine(options) { $tw.utils.addEventListeners(this.domNode,[ {name: "click",handlerObject: this,handlerMethod: "handleClickEvent"}, {name: "input",handlerObject: this,handlerMethod: "handleInputEvent"}, - {name: "keydown",handlerObject: this.widget,handlerMethod: "handleKeydownEvent"}, + {name: "keydown",handlerObject: this,handlerMethod: "handleKeydownEvent"}, {name: "focus",handlerObject: this,handlerMethod: "handleFocusEvent"} ]); // Add drag and drop event listeners if fileDrop is enabled @@ -192,6 +192,17 @@ FramedEngine.prototype.handleFocusEvent = function(event) { } }; +/* +Handle a keydown event + */ +FramedEngine.prototype.handleKeydownEvent = function(event) { + if ($tw.keyboardManager.handleKeydownEvent(event, {onlyPriority: true})) { + return true; + } + + return this.widget.handleKeydownEvent(event); +}; + /* Handle a click */ diff --git a/core/modules/keyboard.js b/core/modules/keyboard.js index 5e02a706d..1740ba35b 100644 --- a/core/modules/keyboard.js +++ b/core/modules/keyboard.js @@ -141,6 +141,7 @@ function KeyboardManager(options) { this.shortcutKeysList = [], // Stores the shortcut-key descriptors this.shortcutActionList = [], // Stores the corresponding action strings this.shortcutParsedList = []; // Stores the parsed key descriptors + this.shortcutPriorityList = []; // Stores the parsed shortcut priority this.lookupNames = ["shortcuts"]; this.lookupNames.push($tw.platform.isMac ? "shortcuts-mac" : "shortcuts-not-mac") this.lookupNames.push($tw.platform.isWindows ? "shortcuts-windows" : "shortcuts-not-windows"); @@ -318,12 +319,23 @@ KeyboardManager.prototype.updateShortcutLists = function(tiddlerList) { this.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined; this.shortcutActionList[i] = tiddlerFields.text; this.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined; + this.shortcutPriorityList[i] = tiddlerFields.priority === "yes" ? true : false; } }; -KeyboardManager.prototype.handleKeydownEvent = function(event) { +/* +event: the keyboard event object +options: + onlyPriority: true if only priority global shortcuts should be invoked +*/ +KeyboardManager.prototype.handleKeydownEvent = function(event, options) { + options = options || {}; var key, action; for(var i=0; i<this.shortcutTiddlers.length; i++) { + if(options.onlyPriority && this.shortcutPriorityList[i] !== true) { + continue; + } + if(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) { key = this.shortcutParsedList[i]; action = this.shortcutActionList[i]; diff --git a/core/modules/widgets/keyboard.js b/core/modules/widgets/keyboard.js index 165089b60..ce3162f51 100644 --- a/core/modules/widgets/keyboard.js +++ b/core/modules/widgets/keyboard.js @@ -53,6 +53,10 @@ KeyboardWidget.prototype.render = function(parent,nextSibling) { }; KeyboardWidget.prototype.handleChangeEvent = function(event) { + if ($tw.keyboardManager.handleKeydownEvent(event, {onlyPriority: true})) { + return true; + } + var keyInfo = $tw.keyboardManager.getMatchingKeyDescriptor(event,this.keyInfoArray); if(keyInfo) { var handled = this.invokeActions(this,event); diff --git a/editions/tw5.com/tiddlers/concepts/KeyboardShortcutTiddler.tid b/editions/tw5.com/tiddlers/concepts/KeyboardShortcutTiddler.tid index 7fa93e21a..64044bf27 100644 --- a/editions/tw5.com/tiddlers/concepts/KeyboardShortcutTiddler.tid +++ b/editions/tw5.com/tiddlers/concepts/KeyboardShortcutTiddler.tid @@ -7,6 +7,8 @@ A ''Keyboard Shortcut Tiddler'' is made of three parts: * The ''field'' `key` with a [[Keyboard Shortcut Descriptor]] as its ''value'' * Actions in its ''text'' field +<<.tip """<<.from-version "5.2.4">> By default <<.wlink KeyboardWidget>> and text editor shortcuts take priority, which can be circumvented by setting the ''field'' `priority` to `yes`.""">> + If the [[Keyboard Shortcut Descriptor]] has the form `((my-shortcut))` it's a ''reference'' to a ''configuration Tiddler'' that stores the corresponding [[Keyboard Shortcut|KeyboardShortcuts]] In order to make a ''shortcut'' editable through the <<.controlpanel-tab KeyboardShortcuts>> Tab in the $:/ControlPanel it's sufficient to create a tiddler `$:/config/ShortcutInfo/my-shortcut`, where the ''suffix'' is the ''reference'' used for the [[Keyboard Shortcut|KeyboardShortcuts]] diff --git a/editions/tw5.com/tiddlers/howtos/How to create keyboard shortcuts.tid b/editions/tw5.com/tiddlers/howtos/How to create keyboard shortcuts.tid index f665bf09b..16243cd54 100644 --- a/editions/tw5.com/tiddlers/howtos/How to create keyboard shortcuts.tid +++ b/editions/tw5.com/tiddlers/howtos/How to create keyboard shortcuts.tid @@ -66,6 +66,8 @@ In the [[Keyboard Shortcuts Tab|$:/core/ui/ControlPanel/KeyboardShortcuts]] the !! Using global Keyboard Shortcuts +> See [[Keyboard Shortcut Tiddler]] for detailed information about creating new global keyboard shortcuts. + > The actions for ''global'' keyboard shortcuts are stored in the ''text'' field of tiddlers tagged with <<tag $:/tags/KeyboardShortcut>> > The ''key field'' connects an action-tiddler with the corresponding shortcut through the `((my-shortcut))` syntax, called [[Keyboard Shortcut Descriptor]] diff --git a/plugins/tiddlywiki/codemirror/engine.js b/plugins/tiddlywiki/codemirror/engine.js index 1d9a17535..4904d1ac2 100755 --- a/plugins/tiddlywiki/codemirror/engine.js +++ b/plugins/tiddlywiki/codemirror/engine.js @@ -186,6 +186,10 @@ function CodeMirrorEngine(options) { return false; }); this.cm.on("keydown",function(cm,event) { + if ($tw.keyboardManager.handleKeydownEvent(event, {onlyPriority: true})) { + return true; + } + return self.widget.handleKeydownEvent.call(self.widget,event); }); this.cm.on("focus",function(cm,event) { From 23e0eeb556d1933f4fedfa3225ea733c7a0aa260 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Fri, 7 Oct 2022 19:05:49 +0200 Subject: [PATCH 040/937] Add default settings for styled inline SPANs (#6877) * add default settings for styled inline SPANs * change color names in palettes and vanilla-base * change parser behaviour if custom class is used * tc-inline-style will only be set if no other custom setting is appliead * Add tests for inline-styles * add one more test * remove space after if --- .../parsers/wikiparser/rules/styleinline.js | 6 +++--- core/palettes/Blanca.tid | 2 ++ core/palettes/Blue.tid | 2 ++ core/palettes/BrightMute.tid | 2 ++ core/palettes/ContrastDark.tid | 2 ++ core/palettes/ContrastLight.tid | 2 ++ core/palettes/CupertinoDark.tid | 2 ++ core/palettes/DarkPhotos.tid | 2 ++ core/palettes/DesertSand.tid | 2 ++ core/palettes/GruvBoxDark.tid | 2 ++ core/palettes/Nord.tid | 2 ++ core/palettes/Rocker.tid | 2 ++ core/palettes/SolarFlare.tid | 2 ++ core/palettes/SolarizedDark.tid | 2 ++ core/palettes/SolarizedLight.tid | 2 ++ core/palettes/SpartanDay.tid | 2 ++ core/palettes/SpartanNight.tid | 2 ++ core/palettes/Twilight.tid | 2 ++ core/palettes/Vanilla.tid | 2 ++ .../tiddlers/$__editions_tw5.com_doc-macros.tid | 2 +- editions/test/tiddlers/tests/test-wikitext.js | 16 ++++++++++++++++ editions/tw5.com/tiddlers/system/doc-macros.tid | 2 +- themes/tiddlywiki/vanilla/base.tid | 5 +++++ 23 files changed, 62 insertions(+), 5 deletions(-) diff --git a/core/modules/parsers/wikiparser/rules/styleinline.js b/core/modules/parsers/wikiparser/rules/styleinline.js index cd42d8f00..653e48986 100644 --- a/core/modules/parsers/wikiparser/rules/styleinline.js +++ b/core/modules/parsers/wikiparser/rules/styleinline.js @@ -41,9 +41,6 @@ exports.parse = function() { var node = { type: "element", tag: "span", - attributes: { - "class": {type: "string", value: "tc-inline-style"} - }, children: tree }; if(classString) { @@ -52,6 +49,9 @@ exports.parse = function() { if(stylesString) { $tw.utils.addAttributeToParseTreeNode(node,"style",stylesString); } + if(!classString && !stylesString) { + $tw.utils.addClassToParseTreeNode(node,"tc-inline-style"); + } return [node]; }; diff --git a/core/palettes/Blanca.tid b/core/palettes/Blanca.tid index f86705443..0fd8e2da3 100644 --- a/core/palettes/Blanca.tid +++ b/core/palettes/Blanca.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/Blue.tid b/core/palettes/Blue.tid index e3aa21952..cc3846b50 100644 --- a/core/palettes/Blue.tid +++ b/core/palettes/Blue.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333353 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/BrightMute.tid b/core/palettes/BrightMute.tid index 64193c1ce..ddbd6b3cd 100644 --- a/core/palettes/BrightMute.tid +++ b/core/palettes/BrightMute.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/ContrastDark.tid b/core/palettes/ContrastDark.tid index ded11b835..850a5863b 100644 --- a/core/palettes/ContrastDark.tid +++ b/core/palettes/ContrastDark.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #00a external-link-foreground: #00e foreground: #000 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: <<colour foreground>> message-border: <<colour background>> message-foreground: <<colour background>> diff --git a/core/palettes/ContrastLight.tid b/core/palettes/ContrastLight.tid index d3eb2f731..ade9f43f8 100644 --- a/core/palettes/ContrastLight.tid +++ b/core/palettes/ContrastLight.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #00a external-link-foreground: #00e foreground: #fff +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: <<colour foreground>> message-border: <<colour background>> message-foreground: <<colour background>> diff --git a/core/palettes/CupertinoDark.tid b/core/palettes/CupertinoDark.tid index c956561ed..7f08f4100 100644 --- a/core/palettes/CupertinoDark.tid +++ b/core/palettes/CupertinoDark.tid @@ -32,6 +32,8 @@ external-link-foreground-hover: external-link-foreground-visited: #BF5AF2 external-link-foreground: #32D74B foreground: #FFFFFF +highlight-background: #ffff78 +highlight-foreground: #000000 menubar-background: #464646 menubar-foreground: #ffffff message-background: <<colour background>> diff --git a/core/palettes/DarkPhotos.tid b/core/palettes/DarkPhotos.tid index 4e1949c04..71fa40f2f 100644 --- a/core/palettes/DarkPhotos.tid +++ b/core/palettes/DarkPhotos.tid @@ -36,6 +36,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/DesertSand.tid b/core/palettes/DesertSand.tid index 40056962b..ddce80e27 100644 --- a/core/palettes/DesertSand.tid +++ b/core/palettes/DesertSand.tid @@ -40,6 +40,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #313163 external-link-foreground: #555592 foreground: #2D2A23 +highlight-background: #ffff00 +highlight-foreground: #000000 menubar-background: #CDC2A6 menubar-foreground: #5A5446 message-background: #ECE5CF diff --git a/core/palettes/GruvBoxDark.tid b/core/palettes/GruvBoxDark.tid index 840d8683e..3b62eb311 100644 --- a/core/palettes/GruvBoxDark.tid +++ b/core/palettes/GruvBoxDark.tid @@ -41,6 +41,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #d3869b external-link-foreground: #8ec07c foreground: #fbf1c7 +highlight-background: #ffff79 +highlight-foreground: #000000 menubar-background: #504945 menubar-foreground: <<colour foreground>> message-background: #83a598 diff --git a/core/palettes/Nord.tid b/core/palettes/Nord.tid index f825f45f2..b296ba783 100644 --- a/core/palettes/Nord.tid +++ b/core/palettes/Nord.tid @@ -41,6 +41,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #5E81AC external-link-foreground: #8FBCBB foreground: #d8dee9 +highlight-background: #ffff78 +highlight-foreground: #000000 menubar-background: #2E3440 menubar-foreground: #d8dee9 message-background: #2E3440 diff --git a/core/palettes/Rocker.tid b/core/palettes/Rocker.tid index bc7d2ded6..a91cd1b5f 100644 --- a/core/palettes/Rocker.tid +++ b/core/palettes/Rocker.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/SolarFlare.tid b/core/palettes/SolarFlare.tid index e72815657..4d81bf531 100644 --- a/core/palettes/SolarFlare.tid +++ b/core/palettes/SolarFlare.tid @@ -131,6 +131,8 @@ external-link-background-hover: inherit external-link-background-visited: inherit external-link-background: inherit external-link-foreground-hover: inherit +highlight-background: #ffff00 +highlight-foreground: #000000 message-border: #cfd6e6 modal-border: #999999 select-tag-background: diff --git a/core/palettes/SolarizedDark.tid b/core/palettes/SolarizedDark.tid index f193bff1c..eea273c30 100644 --- a/core/palettes/SolarizedDark.tid +++ b/core/palettes/SolarizedDark.tid @@ -35,6 +35,8 @@ external-link-foreground: #268bd2 external-link-foreground-hover: external-link-foreground-visited: #268bd2 foreground: #839496 +highlight-background: #ffff78 +highlight-foreground: #000000 message-background: #002b36 message-border: #586e75 message-foreground: #839496 diff --git a/core/palettes/SolarizedLight.tid b/core/palettes/SolarizedLight.tid index 4bcec81d6..3cf954bb5 100644 --- a/core/palettes/SolarizedLight.tid +++ b/core/palettes/SolarizedLight.tid @@ -35,6 +35,8 @@ external-link-foreground: #268bd2 external-link-foreground-hover: inherit external-link-foreground-visited: #268bd2 foreground: #657b83 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #fdf6e3 message-border: #93a1a1 message-foreground: #657b83 diff --git a/core/palettes/SpartanDay.tid b/core/palettes/SpartanDay.tid index 3cd8337a7..cc197144e 100644 --- a/core/palettes/SpartanDay.tid +++ b/core/palettes/SpartanDay.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: external-link-foreground-visited: external-link-foreground: foreground: rgba(0, 0, 0, 0.87) +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: <<colour background>> message-border: <<colour very-muted-foreground>> message-foreground: rgba(0, 0, 0, 0.54) diff --git a/core/palettes/SpartanNight.tid b/core/palettes/SpartanNight.tid index 1962c4782..dc47a0774 100644 --- a/core/palettes/SpartanNight.tid +++ b/core/palettes/SpartanNight.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: external-link-foreground-visited: #7c318c external-link-foreground: #9e3eb3 foreground: rgba(255, 255, 255, 0.7) +highlight-background: #ffff78 +highlight-foreground: #000000 message-background: <<colour background>> message-border: <<colour very-muted-foreground>> message-foreground: rgba(255, 255, 255, 0.54) diff --git a/core/palettes/Twilight.tid b/core/palettes/Twilight.tid index ff8a0b956..4c127f822 100644 --- a/core/palettes/Twilight.tid +++ b/core/palettes/Twilight.tid @@ -43,6 +43,8 @@ external-link-foreground: rgb(179, 179, 255) external-link-foreground-hover: inherit external-link-foreground-visited: rgb(153, 153, 255) foreground: rgb(179, 179, 179) +highlight-background: #ffff78 +highlight-foreground: #000000 message-background: <<colour tag-foreground>> message-border: #96ccff message-foreground: <<colour tag-background>> diff --git a/core/palettes/Vanilla.tid b/core/palettes/Vanilla.tid index d3c7b1441..d84b4ec83 100644 --- a/core/palettes/Vanilla.tid +++ b/core/palettes/Vanilla.tid @@ -42,6 +42,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 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 de6376218..fcf3ddb80 100644 --- a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid +++ b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid @@ -117,7 +117,7 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- <table class="doc-bad-example"> <tbody> <tr class="evenRow"> -<td><span class="tc-inline-style" style="font-size:1.5em;">⚠</span> Attention :<br> Ne faites pas comme ça !</td> +<td><span style="font-size:1.5em;">⚠</span> Attention :<br> Ne faites pas comme ça !</td> <td> $eg$ diff --git a/editions/test/tiddlers/tests/test-wikitext.js b/editions/test/tiddlers/tests/test-wikitext.js index 3213f6abf..4cab566da 100644 --- a/editions/test/tiddlers/tests/test-wikitext.js +++ b/editions/test/tiddlers/tests/test-wikitext.js @@ -63,6 +63,22 @@ describe("WikiText tests", function() { expect(wiki.renderText("text/html","text/vnd-tiddlywiki","@@color:red;\n<div>\n\nContent</div>\n@@")).toBe("<div style=\"color:red;\"><p>Content</p></div>"); expect(wiki.renderText("text/html","text/vnd-tiddlywiki","@@color:red;\n---\n@@")).toBe("<hr style=\"color:red;\">"); }); + it("handles inline style wikitext notation", function() { + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@highlighted@@ text")).toBe('<p>some <span class="tc-inline-style">highlighted</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@color:green;.tc-inline-style 1 style and 1 class@@ text")).toBe('<p>some <span class=" tc-inline-style " style="color:green;">1 style and 1 class</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@background-color:red;red@@ text")).toBe('<p>some <span style="background-color:red;">red</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@.myClass class@@ text")).toBe('<p>some <span class=" myClass ">class</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@.myClass.secondClass 2 classes@@ text")).toBe('<p>some <span class=" myClass secondClass ">2 classes</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@background:red;.myClass style and class@@ text")).toBe('<p>some <span class=" myClass " style="background:red;">style and class</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@background:red;color:white;.myClass 2 style and 1 class@@ text")).toBe('<p>some <span class=" myClass " style="background:red;color:white;">2 style and 1 class</span> text</p>'); + }); }); })(); diff --git a/editions/tw5.com/tiddlers/system/doc-macros.tid b/editions/tw5.com/tiddlers/system/doc-macros.tid index d4c4b9506..a264198a9 100644 --- a/editions/tw5.com/tiddlers/system/doc-macros.tid +++ b/editions/tw5.com/tiddlers/system/doc-macros.tid @@ -117,7 +117,7 @@ This is an example tiddler. See [[Table-of-Contents Macros (Examples)]]. <table class="doc-bad-example"> <tbody> <tr class="evenRow"> -<td><span class="tc-inline-style" style="font-size:1.5em;">⚠</span> Warning:<br> Don't do it this way!</td> +<td><span style="font-size:1.5em;">⚠</span> Warning:<br> Don't do it this way!</td> <td> $eg$ diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 9c4a342ff..17d3ebb39 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -290,6 +290,11 @@ kbd { color: <<colour selection-foreground>>; } +.tc-inline-style { + background: <<colour highlight-background>>; + color: <<colour highlight-foreground>>; +} + form.tc-form-inline { display: inline; } From 6f98edd6bd2b9d49f9120709dbd81fcc52af887b Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 7 Oct 2022 18:43:09 +0100 Subject: [PATCH 041/937] Revert "Add default settings for styled inline SPANs (#6877)" because of failed tests This reverts commit 23e0eeb556d1933f4fedfa3225ea733c7a0aa260. --- .../parsers/wikiparser/rules/styleinline.js | 6 +++--- core/palettes/Blanca.tid | 2 -- core/palettes/Blue.tid | 2 -- core/palettes/BrightMute.tid | 2 -- core/palettes/ContrastDark.tid | 2 -- core/palettes/ContrastLight.tid | 2 -- core/palettes/CupertinoDark.tid | 2 -- core/palettes/DarkPhotos.tid | 2 -- core/palettes/DesertSand.tid | 2 -- core/palettes/GruvBoxDark.tid | 2 -- core/palettes/Nord.tid | 2 -- core/palettes/Rocker.tid | 2 -- core/palettes/SolarFlare.tid | 2 -- core/palettes/SolarizedDark.tid | 2 -- core/palettes/SolarizedLight.tid | 2 -- core/palettes/SpartanDay.tid | 2 -- core/palettes/SpartanNight.tid | 2 -- core/palettes/Twilight.tid | 2 -- core/palettes/Vanilla.tid | 2 -- .../tiddlers/$__editions_tw5.com_doc-macros.tid | 2 +- editions/test/tiddlers/tests/test-wikitext.js | 16 ---------------- editions/tw5.com/tiddlers/system/doc-macros.tid | 2 +- themes/tiddlywiki/vanilla/base.tid | 5 ----- 23 files changed, 5 insertions(+), 62 deletions(-) diff --git a/core/modules/parsers/wikiparser/rules/styleinline.js b/core/modules/parsers/wikiparser/rules/styleinline.js index 653e48986..cd42d8f00 100644 --- a/core/modules/parsers/wikiparser/rules/styleinline.js +++ b/core/modules/parsers/wikiparser/rules/styleinline.js @@ -41,6 +41,9 @@ exports.parse = function() { var node = { type: "element", tag: "span", + attributes: { + "class": {type: "string", value: "tc-inline-style"} + }, children: tree }; if(classString) { @@ -49,9 +52,6 @@ exports.parse = function() { if(stylesString) { $tw.utils.addAttributeToParseTreeNode(node,"style",stylesString); } - if(!classString && !stylesString) { - $tw.utils.addClassToParseTreeNode(node,"tc-inline-style"); - } return [node]; }; diff --git a/core/palettes/Blanca.tid b/core/palettes/Blanca.tid index 0fd8e2da3..f86705443 100644 --- a/core/palettes/Blanca.tid +++ b/core/palettes/Blanca.tid @@ -34,8 +34,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/Blue.tid b/core/palettes/Blue.tid index cc3846b50..e3aa21952 100644 --- a/core/palettes/Blue.tid +++ b/core/palettes/Blue.tid @@ -34,8 +34,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333353 -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/BrightMute.tid b/core/palettes/BrightMute.tid index ddbd6b3cd..64193c1ce 100644 --- a/core/palettes/BrightMute.tid +++ b/core/palettes/BrightMute.tid @@ -34,8 +34,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/ContrastDark.tid b/core/palettes/ContrastDark.tid index 850a5863b..ded11b835 100644 --- a/core/palettes/ContrastDark.tid +++ b/core/palettes/ContrastDark.tid @@ -34,8 +34,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #00a external-link-foreground: #00e foreground: #000 -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: <<colour foreground>> message-border: <<colour background>> message-foreground: <<colour background>> diff --git a/core/palettes/ContrastLight.tid b/core/palettes/ContrastLight.tid index ade9f43f8..d3eb2f731 100644 --- a/core/palettes/ContrastLight.tid +++ b/core/palettes/ContrastLight.tid @@ -34,8 +34,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #00a external-link-foreground: #00e foreground: #fff -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: <<colour foreground>> message-border: <<colour background>> message-foreground: <<colour background>> diff --git a/core/palettes/CupertinoDark.tid b/core/palettes/CupertinoDark.tid index 7f08f4100..c956561ed 100644 --- a/core/palettes/CupertinoDark.tid +++ b/core/palettes/CupertinoDark.tid @@ -32,8 +32,6 @@ external-link-foreground-hover: external-link-foreground-visited: #BF5AF2 external-link-foreground: #32D74B foreground: #FFFFFF -highlight-background: #ffff78 -highlight-foreground: #000000 menubar-background: #464646 menubar-foreground: #ffffff message-background: <<colour background>> diff --git a/core/palettes/DarkPhotos.tid b/core/palettes/DarkPhotos.tid index 71fa40f2f..4e1949c04 100644 --- a/core/palettes/DarkPhotos.tid +++ b/core/palettes/DarkPhotos.tid @@ -36,8 +36,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/DesertSand.tid b/core/palettes/DesertSand.tid index ddce80e27..40056962b 100644 --- a/core/palettes/DesertSand.tid +++ b/core/palettes/DesertSand.tid @@ -40,8 +40,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #313163 external-link-foreground: #555592 foreground: #2D2A23 -highlight-background: #ffff00 -highlight-foreground: #000000 menubar-background: #CDC2A6 menubar-foreground: #5A5446 message-background: #ECE5CF diff --git a/core/palettes/GruvBoxDark.tid b/core/palettes/GruvBoxDark.tid index 3b62eb311..840d8683e 100644 --- a/core/palettes/GruvBoxDark.tid +++ b/core/palettes/GruvBoxDark.tid @@ -41,8 +41,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #d3869b external-link-foreground: #8ec07c foreground: #fbf1c7 -highlight-background: #ffff79 -highlight-foreground: #000000 menubar-background: #504945 menubar-foreground: <<colour foreground>> message-background: #83a598 diff --git a/core/palettes/Nord.tid b/core/palettes/Nord.tid index b296ba783..f825f45f2 100644 --- a/core/palettes/Nord.tid +++ b/core/palettes/Nord.tid @@ -41,8 +41,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #5E81AC external-link-foreground: #8FBCBB foreground: #d8dee9 -highlight-background: #ffff78 -highlight-foreground: #000000 menubar-background: #2E3440 menubar-foreground: #d8dee9 message-background: #2E3440 diff --git a/core/palettes/Rocker.tid b/core/palettes/Rocker.tid index a91cd1b5f..bc7d2ded6 100644 --- a/core/palettes/Rocker.tid +++ b/core/palettes/Rocker.tid @@ -34,8 +34,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/SolarFlare.tid b/core/palettes/SolarFlare.tid index 4d81bf531..e72815657 100644 --- a/core/palettes/SolarFlare.tid +++ b/core/palettes/SolarFlare.tid @@ -131,8 +131,6 @@ external-link-background-hover: inherit external-link-background-visited: inherit external-link-background: inherit external-link-foreground-hover: inherit -highlight-background: #ffff00 -highlight-foreground: #000000 message-border: #cfd6e6 modal-border: #999999 select-tag-background: diff --git a/core/palettes/SolarizedDark.tid b/core/palettes/SolarizedDark.tid index eea273c30..f193bff1c 100644 --- a/core/palettes/SolarizedDark.tid +++ b/core/palettes/SolarizedDark.tid @@ -35,8 +35,6 @@ external-link-foreground: #268bd2 external-link-foreground-hover: external-link-foreground-visited: #268bd2 foreground: #839496 -highlight-background: #ffff78 -highlight-foreground: #000000 message-background: #002b36 message-border: #586e75 message-foreground: #839496 diff --git a/core/palettes/SolarizedLight.tid b/core/palettes/SolarizedLight.tid index 3cf954bb5..4bcec81d6 100644 --- a/core/palettes/SolarizedLight.tid +++ b/core/palettes/SolarizedLight.tid @@ -35,8 +35,6 @@ external-link-foreground: #268bd2 external-link-foreground-hover: inherit external-link-foreground-visited: #268bd2 foreground: #657b83 -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: #fdf6e3 message-border: #93a1a1 message-foreground: #657b83 diff --git a/core/palettes/SpartanDay.tid b/core/palettes/SpartanDay.tid index cc197144e..3cd8337a7 100644 --- a/core/palettes/SpartanDay.tid +++ b/core/palettes/SpartanDay.tid @@ -34,8 +34,6 @@ external-link-foreground-hover: external-link-foreground-visited: external-link-foreground: foreground: rgba(0, 0, 0, 0.87) -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: <<colour background>> message-border: <<colour very-muted-foreground>> message-foreground: rgba(0, 0, 0, 0.54) diff --git a/core/palettes/SpartanNight.tid b/core/palettes/SpartanNight.tid index dc47a0774..1962c4782 100644 --- a/core/palettes/SpartanNight.tid +++ b/core/palettes/SpartanNight.tid @@ -34,8 +34,6 @@ external-link-foreground-hover: external-link-foreground-visited: #7c318c external-link-foreground: #9e3eb3 foreground: rgba(255, 255, 255, 0.7) -highlight-background: #ffff78 -highlight-foreground: #000000 message-background: <<colour background>> message-border: <<colour very-muted-foreground>> message-foreground: rgba(255, 255, 255, 0.54) diff --git a/core/palettes/Twilight.tid b/core/palettes/Twilight.tid index 4c127f822..ff8a0b956 100644 --- a/core/palettes/Twilight.tid +++ b/core/palettes/Twilight.tid @@ -43,8 +43,6 @@ external-link-foreground: rgb(179, 179, 255) external-link-foreground-hover: inherit external-link-foreground-visited: rgb(153, 153, 255) foreground: rgb(179, 179, 179) -highlight-background: #ffff78 -highlight-foreground: #000000 message-background: <<colour tag-foreground>> message-border: #96ccff message-foreground: <<colour tag-background>> diff --git a/core/palettes/Vanilla.tid b/core/palettes/Vanilla.tid index d84b4ec83..d3c7b1441 100644 --- a/core/palettes/Vanilla.tid +++ b/core/palettes/Vanilla.tid @@ -42,8 +42,6 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 -highlight-background: #ffff00 -highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 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 fcf3ddb80..de6376218 100644 --- a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid +++ b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid @@ -117,7 +117,7 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- <table class="doc-bad-example"> <tbody> <tr class="evenRow"> -<td><span style="font-size:1.5em;">⚠</span> Attention :<br> Ne faites pas comme ça !</td> +<td><span class="tc-inline-style" style="font-size:1.5em;">⚠</span> Attention :<br> Ne faites pas comme ça !</td> <td> $eg$ diff --git a/editions/test/tiddlers/tests/test-wikitext.js b/editions/test/tiddlers/tests/test-wikitext.js index 4cab566da..3213f6abf 100644 --- a/editions/test/tiddlers/tests/test-wikitext.js +++ b/editions/test/tiddlers/tests/test-wikitext.js @@ -63,22 +63,6 @@ describe("WikiText tests", function() { expect(wiki.renderText("text/html","text/vnd-tiddlywiki","@@color:red;\n<div>\n\nContent</div>\n@@")).toBe("<div style=\"color:red;\"><p>Content</p></div>"); expect(wiki.renderText("text/html","text/vnd-tiddlywiki","@@color:red;\n---\n@@")).toBe("<hr style=\"color:red;\">"); }); - it("handles inline style wikitext notation", function() { - expect(wiki.renderText("text/html","text/vnd-tiddlywiki", - "some @@highlighted@@ text")).toBe('<p>some <span class="tc-inline-style">highlighted</span> text</p>'); - expect(wiki.renderText("text/html","text/vnd-tiddlywiki", - "some @@color:green;.tc-inline-style 1 style and 1 class@@ text")).toBe('<p>some <span class=" tc-inline-style " style="color:green;">1 style and 1 class</span> text</p>'); - expect(wiki.renderText("text/html","text/vnd-tiddlywiki", - "some @@background-color:red;red@@ text")).toBe('<p>some <span style="background-color:red;">red</span> text</p>'); - expect(wiki.renderText("text/html","text/vnd-tiddlywiki", - "some @@.myClass class@@ text")).toBe('<p>some <span class=" myClass ">class</span> text</p>'); - expect(wiki.renderText("text/html","text/vnd-tiddlywiki", - "some @@.myClass.secondClass 2 classes@@ text")).toBe('<p>some <span class=" myClass secondClass ">2 classes</span> text</p>'); - expect(wiki.renderText("text/html","text/vnd-tiddlywiki", - "some @@background:red;.myClass style and class@@ text")).toBe('<p>some <span class=" myClass " style="background:red;">style and class</span> text</p>'); - expect(wiki.renderText("text/html","text/vnd-tiddlywiki", - "some @@background:red;color:white;.myClass 2 style and 1 class@@ text")).toBe('<p>some <span class=" myClass " style="background:red;color:white;">2 style and 1 class</span> text</p>'); - }); }); })(); diff --git a/editions/tw5.com/tiddlers/system/doc-macros.tid b/editions/tw5.com/tiddlers/system/doc-macros.tid index a264198a9..d4c4b9506 100644 --- a/editions/tw5.com/tiddlers/system/doc-macros.tid +++ b/editions/tw5.com/tiddlers/system/doc-macros.tid @@ -117,7 +117,7 @@ This is an example tiddler. See [[Table-of-Contents Macros (Examples)]]. <table class="doc-bad-example"> <tbody> <tr class="evenRow"> -<td><span style="font-size:1.5em;">⚠</span> Warning:<br> Don't do it this way!</td> +<td><span class="tc-inline-style" style="font-size:1.5em;">⚠</span> Warning:<br> Don't do it this way!</td> <td> $eg$ diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 17d3ebb39..9c4a342ff 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -290,11 +290,6 @@ kbd { color: <<colour selection-foreground>>; } -.tc-inline-style { - background: <<colour highlight-background>>; - color: <<colour highlight-foreground>>; -} - form.tc-form-inline { display: inline; } From 91327c1af039a4d2dbd88e22d04bef9e36902890 Mon Sep 17 00:00:00 2001 From: Rob Hoelz <rob@hoelz.ro> Date: Mon, 10 Oct 2022 10:49:20 -0500 Subject: [PATCH 042/937] Use deprecated macro for deprecated commands (#6973) This just brings the documentation for these commands more inline with other deprecations, plus offers a link to the recommended alternative as well as the explanation for deprecation --- editions/tw5.com/tiddlers/commands/RenderTiddlerCommand.tid | 2 ++ editions/tw5.com/tiddlers/commands/RenderTiddlersCommand.tid | 2 ++ editions/tw5.com/tiddlers/commands/SaveTiddlerCommand.tid | 2 ++ editions/tw5.com/tiddlers/commands/SaveTiddlersCommand.tid | 2 ++ 4 files changed, 8 insertions(+) diff --git a/editions/tw5.com/tiddlers/commands/RenderTiddlerCommand.tid b/editions/tw5.com/tiddlers/commands/RenderTiddlerCommand.tid index 7e535648d..ede970536 100644 --- a/editions/tw5.com/tiddlers/commands/RenderTiddlerCommand.tid +++ b/editions/tw5.com/tiddlers/commands/RenderTiddlerCommand.tid @@ -2,4 +2,6 @@ title: RenderTiddlerCommand tags: Commands caption: rendertiddler +<<.deprecated-since "5.1.15" "RenderCommand">>. + {{$:/language/Help/rendertiddler}} diff --git a/editions/tw5.com/tiddlers/commands/RenderTiddlersCommand.tid b/editions/tw5.com/tiddlers/commands/RenderTiddlersCommand.tid index d2b62fb99..6d4282fb2 100644 --- a/editions/tw5.com/tiddlers/commands/RenderTiddlersCommand.tid +++ b/editions/tw5.com/tiddlers/commands/RenderTiddlersCommand.tid @@ -2,4 +2,6 @@ title: RenderTiddlersCommand tags: Commands caption: rendertiddlers +<<.deprecated-since "5.1.15" "RenderCommand">>. + {{$:/language/Help/rendertiddlers}} diff --git a/editions/tw5.com/tiddlers/commands/SaveTiddlerCommand.tid b/editions/tw5.com/tiddlers/commands/SaveTiddlerCommand.tid index 3f4626a5b..f51799163 100644 --- a/editions/tw5.com/tiddlers/commands/SaveTiddlerCommand.tid +++ b/editions/tw5.com/tiddlers/commands/SaveTiddlerCommand.tid @@ -4,4 +4,6 @@ created: 20131218121606089 modified: 20131218121606089 caption: savetiddler +<<.deprecated-since "5.1.15" "SaveCommand">>. + {{$:/language/Help/savetiddler}} diff --git a/editions/tw5.com/tiddlers/commands/SaveTiddlersCommand.tid b/editions/tw5.com/tiddlers/commands/SaveTiddlersCommand.tid index 5ca877bfa..c167cd4a3 100644 --- a/editions/tw5.com/tiddlers/commands/SaveTiddlersCommand.tid +++ b/editions/tw5.com/tiddlers/commands/SaveTiddlersCommand.tid @@ -4,4 +4,6 @@ created: 20140609121606089 modified: 20140609121606089 caption: savetiddlers +<<.deprecated-since "5.1.15" "SaveCommand">>. + {{$:/language/Help/savetiddlers}} From cfd894e6fb94af8176b4687bc93c3faa91e5e351 Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Sat, 15 Oct 2022 13:26:21 +0200 Subject: [PATCH 043/937] allow select widget class to update if it uses a filter and is output changes (#6987) * allow select widget class to update if it uses a filter and the filter output changes * rewrite code to be more idiomatic + updates local property --- core/modules/widgets/select.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/modules/widgets/select.js b/core/modules/widgets/select.js index b3177d967..8272a2783 100644 --- a/core/modules/widgets/select.js +++ b/core/modules/widgets/select.js @@ -175,6 +175,11 @@ SelectWidget.prototype.refresh = function(changedTiddlers) { return true; // If the target tiddler value has changed, just update setting and refresh the children } else { + if(changedAttributes.class) { + this.selectClass = this.getAttribute("class"); + this.getSelectDomNode().setAttribute("class",this.selectClass); + } + var childrenRefreshed = this.refreshChildren(changedTiddlers); if(changedTiddlers[this.selectTitle] || childrenRefreshed) { this.setSelectValue(); From 8f079e2d4566418afdfef16e594fc173423decc5 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 16 Oct 2022 17:27:46 +0100 Subject: [PATCH 044/937] Fix handling of orderedattributes when adding classes/styles Fixes issue referred to in https://github.com/Jermolene/TiddlyWiki5/pull/6877#issuecomment-1277590200 --- core/modules/utils/parsetree.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/core/modules/utils/parsetree.js b/core/modules/utils/parsetree.js index 5bab10706..a74b8f3f8 100644 --- a/core/modules/utils/parsetree.js +++ b/core/modules/utils/parsetree.js @@ -65,10 +65,8 @@ exports.addClassToParseTreeNode = function(node,classString) { // If the class attribute does not exist, we must create it first. attribute = {name: "class", type: "string", value: ""}; node.attributes["class"] = attribute; - if(node.orderedAttributes) { - // If there are orderedAttributes, we've got to add them there too. - node.orderedAttributes.push(attribute); - } + node.orderedAttributes = node.orderedAttributes || []; + node.orderedAttributes.push(attribute); } if(attribute.type === "string") { if(attribute.value !== "") { @@ -88,10 +86,8 @@ exports.addStyleToParseTreeNode = function(node,name,value) { if(!attribute) { attribute = {name: "style", type: "string", value: ""}; node.attributes.style = attribute; - if(node.orderedAttributes) { - // If there are orderedAttributes, we've got to add them there too. - node.orderedAttributes.push(attribute); - } + node.orderedAttributes = node.orderedAttributes || []; + node.orderedAttributes.push(attribute); } if(attribute.type === "string") { attribute.value += name + ":" + value + ";"; From b531984f50cd82ebde3f167e157a840465d7a66a Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 16 Oct 2022 17:28:36 +0100 Subject: [PATCH 045/937] Restore "Add default settings for styled inline SPANs (#6877)" This reverts commit 6f98edd6bd2b9d49f9120709dbd81fcc52af887b. --- .../parsers/wikiparser/rules/styleinline.js | 6 +++--- core/palettes/Blanca.tid | 2 ++ core/palettes/Blue.tid | 2 ++ core/palettes/BrightMute.tid | 2 ++ core/palettes/ContrastDark.tid | 2 ++ core/palettes/ContrastLight.tid | 2 ++ core/palettes/CupertinoDark.tid | 2 ++ core/palettes/DarkPhotos.tid | 2 ++ core/palettes/DesertSand.tid | 2 ++ core/palettes/GruvBoxDark.tid | 2 ++ core/palettes/Nord.tid | 2 ++ core/palettes/Rocker.tid | 2 ++ core/palettes/SolarFlare.tid | 2 ++ core/palettes/SolarizedDark.tid | 2 ++ core/palettes/SolarizedLight.tid | 2 ++ core/palettes/SpartanDay.tid | 2 ++ core/palettes/SpartanNight.tid | 2 ++ core/palettes/Twilight.tid | 2 ++ core/palettes/Vanilla.tid | 2 ++ .../tiddlers/$__editions_tw5.com_doc-macros.tid | 2 +- editions/test/tiddlers/tests/test-wikitext.js | 16 ++++++++++++++++ editions/tw5.com/tiddlers/system/doc-macros.tid | 2 +- themes/tiddlywiki/vanilla/base.tid | 5 +++++ 23 files changed, 62 insertions(+), 5 deletions(-) diff --git a/core/modules/parsers/wikiparser/rules/styleinline.js b/core/modules/parsers/wikiparser/rules/styleinline.js index cd42d8f00..653e48986 100644 --- a/core/modules/parsers/wikiparser/rules/styleinline.js +++ b/core/modules/parsers/wikiparser/rules/styleinline.js @@ -41,9 +41,6 @@ exports.parse = function() { var node = { type: "element", tag: "span", - attributes: { - "class": {type: "string", value: "tc-inline-style"} - }, children: tree }; if(classString) { @@ -52,6 +49,9 @@ exports.parse = function() { if(stylesString) { $tw.utils.addAttributeToParseTreeNode(node,"style",stylesString); } + if(!classString && !stylesString) { + $tw.utils.addClassToParseTreeNode(node,"tc-inline-style"); + } return [node]; }; diff --git a/core/palettes/Blanca.tid b/core/palettes/Blanca.tid index f86705443..0fd8e2da3 100644 --- a/core/palettes/Blanca.tid +++ b/core/palettes/Blanca.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/Blue.tid b/core/palettes/Blue.tid index e3aa21952..cc3846b50 100644 --- a/core/palettes/Blue.tid +++ b/core/palettes/Blue.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333353 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/BrightMute.tid b/core/palettes/BrightMute.tid index 64193c1ce..ddbd6b3cd 100644 --- a/core/palettes/BrightMute.tid +++ b/core/palettes/BrightMute.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/ContrastDark.tid b/core/palettes/ContrastDark.tid index ded11b835..850a5863b 100644 --- a/core/palettes/ContrastDark.tid +++ b/core/palettes/ContrastDark.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #00a external-link-foreground: #00e foreground: #000 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: <<colour foreground>> message-border: <<colour background>> message-foreground: <<colour background>> diff --git a/core/palettes/ContrastLight.tid b/core/palettes/ContrastLight.tid index d3eb2f731..ade9f43f8 100644 --- a/core/palettes/ContrastLight.tid +++ b/core/palettes/ContrastLight.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #00a external-link-foreground: #00e foreground: #fff +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: <<colour foreground>> message-border: <<colour background>> message-foreground: <<colour background>> diff --git a/core/palettes/CupertinoDark.tid b/core/palettes/CupertinoDark.tid index c956561ed..7f08f4100 100644 --- a/core/palettes/CupertinoDark.tid +++ b/core/palettes/CupertinoDark.tid @@ -32,6 +32,8 @@ external-link-foreground-hover: external-link-foreground-visited: #BF5AF2 external-link-foreground: #32D74B foreground: #FFFFFF +highlight-background: #ffff78 +highlight-foreground: #000000 menubar-background: #464646 menubar-foreground: #ffffff message-background: <<colour background>> diff --git a/core/palettes/DarkPhotos.tid b/core/palettes/DarkPhotos.tid index 4e1949c04..71fa40f2f 100644 --- a/core/palettes/DarkPhotos.tid +++ b/core/palettes/DarkPhotos.tid @@ -36,6 +36,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/DesertSand.tid b/core/palettes/DesertSand.tid index 40056962b..ddce80e27 100644 --- a/core/palettes/DesertSand.tid +++ b/core/palettes/DesertSand.tid @@ -40,6 +40,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #313163 external-link-foreground: #555592 foreground: #2D2A23 +highlight-background: #ffff00 +highlight-foreground: #000000 menubar-background: #CDC2A6 menubar-foreground: #5A5446 message-background: #ECE5CF diff --git a/core/palettes/GruvBoxDark.tid b/core/palettes/GruvBoxDark.tid index 840d8683e..3b62eb311 100644 --- a/core/palettes/GruvBoxDark.tid +++ b/core/palettes/GruvBoxDark.tid @@ -41,6 +41,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #d3869b external-link-foreground: #8ec07c foreground: #fbf1c7 +highlight-background: #ffff79 +highlight-foreground: #000000 menubar-background: #504945 menubar-foreground: <<colour foreground>> message-background: #83a598 diff --git a/core/palettes/Nord.tid b/core/palettes/Nord.tid index f825f45f2..b296ba783 100644 --- a/core/palettes/Nord.tid +++ b/core/palettes/Nord.tid @@ -41,6 +41,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #5E81AC external-link-foreground: #8FBCBB foreground: #d8dee9 +highlight-background: #ffff78 +highlight-foreground: #000000 menubar-background: #2E3440 menubar-foreground: #d8dee9 message-background: #2E3440 diff --git a/core/palettes/Rocker.tid b/core/palettes/Rocker.tid index bc7d2ded6..a91cd1b5f 100644 --- a/core/palettes/Rocker.tid +++ b/core/palettes/Rocker.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 diff --git a/core/palettes/SolarFlare.tid b/core/palettes/SolarFlare.tid index e72815657..4d81bf531 100644 --- a/core/palettes/SolarFlare.tid +++ b/core/palettes/SolarFlare.tid @@ -131,6 +131,8 @@ external-link-background-hover: inherit external-link-background-visited: inherit external-link-background: inherit external-link-foreground-hover: inherit +highlight-background: #ffff00 +highlight-foreground: #000000 message-border: #cfd6e6 modal-border: #999999 select-tag-background: diff --git a/core/palettes/SolarizedDark.tid b/core/palettes/SolarizedDark.tid index f193bff1c..eea273c30 100644 --- a/core/palettes/SolarizedDark.tid +++ b/core/palettes/SolarizedDark.tid @@ -35,6 +35,8 @@ external-link-foreground: #268bd2 external-link-foreground-hover: external-link-foreground-visited: #268bd2 foreground: #839496 +highlight-background: #ffff78 +highlight-foreground: #000000 message-background: #002b36 message-border: #586e75 message-foreground: #839496 diff --git a/core/palettes/SolarizedLight.tid b/core/palettes/SolarizedLight.tid index 4bcec81d6..3cf954bb5 100644 --- a/core/palettes/SolarizedLight.tid +++ b/core/palettes/SolarizedLight.tid @@ -35,6 +35,8 @@ external-link-foreground: #268bd2 external-link-foreground-hover: inherit external-link-foreground-visited: #268bd2 foreground: #657b83 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #fdf6e3 message-border: #93a1a1 message-foreground: #657b83 diff --git a/core/palettes/SpartanDay.tid b/core/palettes/SpartanDay.tid index 3cd8337a7..cc197144e 100644 --- a/core/palettes/SpartanDay.tid +++ b/core/palettes/SpartanDay.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: external-link-foreground-visited: external-link-foreground: foreground: rgba(0, 0, 0, 0.87) +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: <<colour background>> message-border: <<colour very-muted-foreground>> message-foreground: rgba(0, 0, 0, 0.54) diff --git a/core/palettes/SpartanNight.tid b/core/palettes/SpartanNight.tid index 1962c4782..dc47a0774 100644 --- a/core/palettes/SpartanNight.tid +++ b/core/palettes/SpartanNight.tid @@ -34,6 +34,8 @@ external-link-foreground-hover: external-link-foreground-visited: #7c318c external-link-foreground: #9e3eb3 foreground: rgba(255, 255, 255, 0.7) +highlight-background: #ffff78 +highlight-foreground: #000000 message-background: <<colour background>> message-border: <<colour very-muted-foreground>> message-foreground: rgba(255, 255, 255, 0.54) diff --git a/core/palettes/Twilight.tid b/core/palettes/Twilight.tid index ff8a0b956..4c127f822 100644 --- a/core/palettes/Twilight.tid +++ b/core/palettes/Twilight.tid @@ -43,6 +43,8 @@ external-link-foreground: rgb(179, 179, 255) external-link-foreground-hover: inherit external-link-foreground-visited: rgb(153, 153, 255) foreground: rgb(179, 179, 179) +highlight-background: #ffff78 +highlight-foreground: #000000 message-background: <<colour tag-foreground>> message-border: #96ccff message-foreground: <<colour tag-background>> diff --git a/core/palettes/Vanilla.tid b/core/palettes/Vanilla.tid index d3c7b1441..d84b4ec83 100644 --- a/core/palettes/Vanilla.tid +++ b/core/palettes/Vanilla.tid @@ -42,6 +42,8 @@ external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 +highlight-background: #ffff00 +highlight-foreground: #000000 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 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 de6376218..fcf3ddb80 100644 --- a/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid +++ b/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid @@ -117,7 +117,7 @@ C'est un exemple de tiddler. Voir [[Macros Table des matières (Exemples)|Table- <table class="doc-bad-example"> <tbody> <tr class="evenRow"> -<td><span class="tc-inline-style" style="font-size:1.5em;">⚠</span> Attention :<br> Ne faites pas comme ça !</td> +<td><span style="font-size:1.5em;">⚠</span> Attention :<br> Ne faites pas comme ça !</td> <td> $eg$ diff --git a/editions/test/tiddlers/tests/test-wikitext.js b/editions/test/tiddlers/tests/test-wikitext.js index 3213f6abf..4cab566da 100644 --- a/editions/test/tiddlers/tests/test-wikitext.js +++ b/editions/test/tiddlers/tests/test-wikitext.js @@ -63,6 +63,22 @@ describe("WikiText tests", function() { expect(wiki.renderText("text/html","text/vnd-tiddlywiki","@@color:red;\n<div>\n\nContent</div>\n@@")).toBe("<div style=\"color:red;\"><p>Content</p></div>"); expect(wiki.renderText("text/html","text/vnd-tiddlywiki","@@color:red;\n---\n@@")).toBe("<hr style=\"color:red;\">"); }); + it("handles inline style wikitext notation", function() { + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@highlighted@@ text")).toBe('<p>some <span class="tc-inline-style">highlighted</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@color:green;.tc-inline-style 1 style and 1 class@@ text")).toBe('<p>some <span class=" tc-inline-style " style="color:green;">1 style and 1 class</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@background-color:red;red@@ text")).toBe('<p>some <span style="background-color:red;">red</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@.myClass class@@ text")).toBe('<p>some <span class=" myClass ">class</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@.myClass.secondClass 2 classes@@ text")).toBe('<p>some <span class=" myClass secondClass ">2 classes</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@background:red;.myClass style and class@@ text")).toBe('<p>some <span class=" myClass " style="background:red;">style and class</span> text</p>'); + expect(wiki.renderText("text/html","text/vnd-tiddlywiki", + "some @@background:red;color:white;.myClass 2 style and 1 class@@ text")).toBe('<p>some <span class=" myClass " style="background:red;color:white;">2 style and 1 class</span> text</p>'); + }); }); })(); diff --git a/editions/tw5.com/tiddlers/system/doc-macros.tid b/editions/tw5.com/tiddlers/system/doc-macros.tid index d4c4b9506..a264198a9 100644 --- a/editions/tw5.com/tiddlers/system/doc-macros.tid +++ b/editions/tw5.com/tiddlers/system/doc-macros.tid @@ -117,7 +117,7 @@ This is an example tiddler. See [[Table-of-Contents Macros (Examples)]]. <table class="doc-bad-example"> <tbody> <tr class="evenRow"> -<td><span class="tc-inline-style" style="font-size:1.5em;">⚠</span> Warning:<br> Don't do it this way!</td> +<td><span style="font-size:1.5em;">⚠</span> Warning:<br> Don't do it this way!</td> <td> $eg$ diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 9c4a342ff..17d3ebb39 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -290,6 +290,11 @@ kbd { color: <<colour selection-foreground>>; } +.tc-inline-style { + background: <<colour highlight-background>>; + color: <<colour highlight-foreground>>; +} + form.tc-form-inline { display: inline; } From 941c09fae2a9da96fe0f4ffd96e57cd68f4b828d Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 17 Oct 2022 12:21:34 +0100 Subject: [PATCH 046/937] ScrollableWidget example shouldn't iterate through all tiddlers --- editions/tw5.com/tiddlers/widgets/ScrollableWidget.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/widgets/ScrollableWidget.tid b/editions/tw5.com/tiddlers/widgets/ScrollableWidget.tid index a0664a5da..6fda3a974 100644 --- a/editions/tw5.com/tiddlers/widgets/ScrollableWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ScrollableWidget.tid @@ -36,7 +36,7 @@ This example requires the following CSS definitions from [[$:/_tw5.com-styles]]: This wiki text shows how to display a list within the scrollable widget: <<wikitext-example-without-html "<$scrollable class='tc-scrollable-demo'> -<$list filter='[!is[system]]'> +<$list filter='[tag[Reference]]'> <$view field='title'/>: <$list filter='[all[current]links[]sort[title]]' storyview='pop'> <$link><$view field='title'/></$link> From 7b408c7adf879f5cd0f1713406bedeec4d9cc937 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 17 Oct 2022 16:50:54 +0100 Subject: [PATCH 047/937] Update release note --- editions/prerelease/tiddlers/Release 5.2.4.tid | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index 595d9cdf4..9c5ae019b 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -1,6 +1,6 @@ caption: 5.2.4 -created: 20220924141149286 -modified: 20220924141149286 +created: 20221017165036377 +modified: 20221017165036377 tags: ReleaseNotes title: Release 5.2.4 type: text/vnd.tiddlywiki @@ -16,6 +16,8 @@ type: text/vnd.tiddlywiki Improvements to the following translations: * Chinese +* Polish +* Spanish * Japanese Improvements to the translation features of TiddlyWiki: @@ -32,6 +34,9 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d62a16ee464fb9984b766b48504829a1a3eb143b">> problem with long presses on tiddler links triggering a preview on iOS/iPadOS * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6910">> consistency of button and input elements across browsers * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d825f1c875f5e46158c9c41c8c66471138c162d1">> edit preview to use the [[View Template Body Cascade]] +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6970">> detection of infinite recursion errors in widgets and filters +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/36896c3db8c9678c0385a561996248a6f00a45ff">> opening a tiddler in a new window to use the [[View Template Body Cascade]] +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6877">> default styles for [[styled runs|Styles and Classes in WikiText]] ! Widget Improvements @@ -47,12 +52,14 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]] and [[format Operator]] * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/c5d3d4c26e8fe27f272dda004aec27d6b66c4f60">> safe mode to disable wiki store indexers * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/166a1565843878083fb1eba47c73b8e67b78400d">> safe mode to prevent globally disabling parser rules - +* <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/commit/1df4c29d73073788ba3859668112e8bb46171a6c">> restriction of the LetWidget being unable to create variables whose names begin with a dollar sign +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6735">> keyboard shortcut handling to allow to global shortcuts to override all other shortcuts ! Bug Fixes -* +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/fb34df84ed41882c1c2a6ff54f0e908b43ef95a3">> "new image" keyboard shortcut not to assign journal tags +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6987">> SelectWidget class to update if it uses a filter ! Developer Improvements From 24dbf691801f51289d69cd7c1801daf10c30155c Mon Sep 17 00:00:00 2001 From: Rob Hoelz <rob@hoelz.ro> Date: Tue, 18 Oct 2022 11:08:04 -0500 Subject: [PATCH 048/937] Fix [is[variable]] operator doesn't work for "fake" variables #6303 (#6996) * Add tests for [is[variable]] and "faked" variables See GH #6303 * Make is[variable] and variables[] operators resilient to fake widgets Co-authored-by: jeremy@jermolene.com <jeremy@jermolene.com> --- core/modules/filters/is/variable.js | 4 +-- core/modules/filters/variables.js | 12 ++++++--- .../tests/data/filters/fake-variables.tid | 27 +++++++++++++++++++ 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 editions/test/tiddlers/tests/data/filters/fake-variables.tid diff --git a/core/modules/filters/is/variable.js b/core/modules/filters/is/variable.js index 1f2e5d1b3..110d9a7c8 100644 --- a/core/modules/filters/is/variable.js +++ b/core/modules/filters/is/variable.js @@ -19,13 +19,13 @@ exports.variable = function(source,prefix,options) { var results = []; if(prefix === "!") { source(function(tiddler,title) { - if(!(title in options.widget.variables)) { + if(options.widget.getVariable(title) === undefined) { results.push(title); } }); } else { source(function(tiddler,title) { - if(title in options.widget.variables) { + if(options.widget.getVariable(title) !== undefined) { results.push(title); } }); diff --git a/core/modules/filters/variables.js b/core/modules/filters/variables.js index fda40a404..c92b780d2 100644 --- a/core/modules/filters/variables.js +++ b/core/modules/filters/variables.js @@ -16,9 +16,15 @@ Filter operator for returning the names of the active variables Export our filter function */ exports.variables = function(source,operator,options) { - var names = []; - for(var variable in options.widget.variables) { - names.push(variable); + var names = [], + widget = options.widget; + while(widget && !widget.hasOwnProperty("variables")) { + widget = widget.parentWidget; + } + if(widget && widget.variables) { + for(var variable in widget.variables) { + names.push(variable); + } } return names.sort(); }; diff --git a/editions/test/tiddlers/tests/data/filters/fake-variables.tid b/editions/test/tiddlers/tests/data/filters/fake-variables.tid new file mode 100644 index 000000000..0dad85871 --- /dev/null +++ b/editions/test/tiddlers/tests/data/filters/fake-variables.tid @@ -0,0 +1,27 @@ +title: Filters/FakeVariables +description: Test for https://github.com/Jermolene/TiddlyWiki5/issues/6303 +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim +<$list variable="var" filter="[[existing variable should have output]] :filter[[..currentTiddler]is[variable]]"> +<p><<var>></p> +</$list> + +<$list variable="var" filter="[[non-existing variable should not have output]] :filter[[nonExistingVariable]is[variable]]"> +<p><<var>></p> +</$list> + +<$list variable="var" filter="[[existing variable negated should not have output]] :filter[[..currentTiddler]!is[variable]]"> +<p><<var>></p> +</$list> + +<$list variable="var" filter="[[non-existing variable negated should have output]] :filter[[nonExistingVariable]!is[variable]]"> +<p><<var>></p> +</$list> ++ +title: ExpectedResult + +<p><p>existing variable should have output</p></p><p></p><p></p><p><p>non-existing variable negated should have output</p></p> \ No newline at end of file From 5b85786f737c94ee102490c68c22a563e418dd07 Mon Sep 17 00:00:00 2001 From: FlashSystems <developer@flashsystems.de> Date: Sat, 22 Oct 2022 14:13:39 +0200 Subject: [PATCH 049/937] Fix popup position if popup is triggered from within an offsetParent element (#6887) * Fix popup location for tables This commit introduces the `popupAbsCoords` option to the $button widget and implements an absolut coordinate format. Coordinates for popups are stored in the format `(x,y,w,h)`. These coordinates are relative to the offset parent of the element that defines the popup. This commits adds a second format `@(x,y,w,h)`. Coordinates specified in this format a relative to the pages root element. The `popupAbsCoords` option of the $button widget enables the use of this coordinates. * Unify the declaration of the RegEx for parsing the popup-position The regular expression was declared in three locations with the same content. This commit supplies a new function `parseCoordinates` in `popup.js`. This function returns the parsed coordinates and understands the classic/absolute coordinates. This function is used in `reveal.js` and `action-popup.js` to parse the coordinates. * Add documentation for coordinate systems * Consolidate creating coordinate strings The Popup object now contains a `buildCoordinates` method that can be used to build coordinate strings. It takes an "enum" for the coordinate- system to use. This makes everything easily extensible and prevents the use of magic values. * Add tests for `parseCoordinates` and `buildCoordinates` * Add `tv-popup-abs-coords` to `collectDOMVariables` This will make the absolute coordinates available for the `DraggableWidget` and the `EventCatcherWidget`. * Add documentation for the `tv-popup-abs-coords` ... to the `DraggableWidget` and the `EventCatcherWidget`. --- core/modules/utils/dom/dom.js | 17 ++++- core/modules/utils/dom/popup.js | 69 ++++++++++++++++-- core/modules/widgets/action-popup.js | 16 ++--- core/modules/widgets/button.js | 5 +- core/modules/widgets/reveal.js | 19 +++-- editions/test/tiddlers/tests/test-popup.js | 71 +++++++++++++++++++ .../tiddlers/concepts/CoordinateSystems.tid | 42 +++++++++++ .../tiddlers/mechanisms/PopupMechanism.tid | 1 + .../tiddlers/widgets/ActionPopupWidget.tid | 7 +- .../tw5.com/tiddlers/widgets/ButtonWidget.tid | 3 +- .../tiddlers/widgets/DraggableWidget.tid | 3 +- .../tiddlers/widgets/EventCatcherWidget.tid | 7 +- .../dynannotate/modules/dynannotate.js | 2 +- 13 files changed, 228 insertions(+), 34 deletions(-) create mode 100644 editions/test/tiddlers/tests/test-popup.js create mode 100644 editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid diff --git a/core/modules/utils/dom/dom.js b/core/modules/utils/dom/dom.js index 330d184cc..84bbb1068 100644 --- a/core/modules/utils/dom/dom.js +++ b/core/modules/utils/dom/dom.js @@ -294,8 +294,21 @@ exports.collectDOMVariables = function(selectedNode,domNode,event) { }); if(selectedNode.offsetLeft) { - // 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 with a (relative and absolute) popup coordinate string for the selected node + var nodeRect = { + left: selectedNode.offsetLeft, + top: selectedNode.offsetTop, + width: selectedNode.offsetWidth, + height: selectedNode.offsetHeight + }; + variables["tv-popup-coords"] = $tw.popup.buildCoordinates($tw.popup.coordinatePrefix.csOffsetParent,nodeRect); + + var absRect = $tw.utils.extend({}, nodeRect); + for (var currentNode = selectedNode.offsetParent; currentNode; currentNode = currentNode.offsetParent) { + absRect.left += currentNode.offsetLeft; + absRect.top += currentNode.offsetTop; + } + variables["tv-popup-abs-coords"] = $tw.popup.buildCoordinates($tw.popup.coordinatePrefix.csAbsolute,absRect); // Add variables for offset of selected node variables["tv-selectednode-posx"] = selectedNode.offsetLeft.toString(); diff --git a/core/modules/utils/dom/popup.js b/core/modules/utils/dom/popup.js index 5eed80c88..0a898156e 100644 --- a/core/modules/utils/dom/popup.js +++ b/core/modules/utils/dom/popup.js @@ -22,6 +22,19 @@ var Popup = function(options) { this.popups = []; // Array of {title:,wiki:,domNode:} objects }; +/* +Global regular expression for parsing the location of a popup. +This is also used by the Reveal widget. +*/ +Popup.popupLocationRegExp = /^(@?)\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/ + +/* +Objekt containing the available prefixes for coordinates build with the `buildCoordinates` function: + - csOffsetParent: Uses a coordinate system based on the offset parent (no prefix). + - csAbsolute: Use an absolute coordinate system (prefix "@"). +*/ +Popup.prototype.coordinatePrefix = { csOffsetParent: "", csAbsolute: "@" } + /* Trigger a popup open or closed. Parameters are in a hashmap: title: title of the tiddler where the popup details are stored @@ -136,8 +149,17 @@ Popup.prototype.show = function(options) { height: options.domNode.offsetHeight }; } - var popupRect = "(" + rect.left + "," + rect.top + "," + - rect.width + "," + rect.height + ")"; + if(options.absolute && options.domNode) { + // Walk the offsetParent chain and add the position of the offsetParents to make + // the position absolute to the root node of the page. + var currentNode = options.domNode.offsetParent; + while(currentNode) { + rect.left += currentNode.offsetLeft; + rect.top += currentNode.offsetTop; + currentNode = currentNode.offsetParent; + } + } + var popupRect = $tw.popup.buildCoordinates(options.absolute?$tw.popup.coordinatePrefix.csAbsolute:$tw.popup.coordinatePrefix.csOffsetParent,rect); if(options.noStateReference) { options.wiki.setText(options.title,"text",undefined,popupRect); } else { @@ -175,10 +197,49 @@ Popup.prototype.cancel = function(level) { Returns true if the specified title and text identifies an active popup */ Popup.prototype.readPopupState = function(text) { - var popupLocationRegExp = /^\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/; - return popupLocationRegExp.test(text); + return Popup.popupLocationRegExp.test(text); }; +/* +Parses a coordinate string in the format `(x,y,w,h)` or `@(x,y,z,h)` and returns +an object containing the position, width and height. The absolute-Mark is boolean +value that indicates the coordinate system of the coordinates. If they start with +an `@`, `absolute` is set and the coordinates are relative to the root element. If +the initial `@` is missing, they are relative to the offset parent element and +`absoute` is false. +*/ +Popup.prototype.parseCoordinates = function(coordinates) { + var match = Popup.popupLocationRegExp.exec(coordinates); + if(match) { + return { + absolute: (match[1] === "@"), + left: parseFloat(match[2]), + top: parseFloat(match[3]), + width: parseFloat(match[4]), + height: parseFloat(match[5]) + }; + } else { + return false; + } +} + +/* +Builds a coordinate string from a coordinate system identifier and an object +containing the left, top, width and height values. +Use constants defined in the coordinatePrefix property to specify a coordinate +system. +If one of the parameters is invalid for building a coordinate string `(0,0,0,0)` +will be returned. +*/ +Popup.prototype.buildCoordinates = function(prefix,position) { + var coord = prefix + "(" + position.left + "," + position.top + "," + position.width + "," + position.height + ")"; + if (Popup.popupLocationRegExp.test(coord)) { + return coord; + } else { + return "(0,0,0,0)"; + } +} + exports.Popup = Popup; })(); diff --git a/core/modules/widgets/action-popup.js b/core/modules/widgets/action-popup.js index 2903532b6..2d47540d6 100644 --- a/core/modules/widgets/action-popup.js +++ b/core/modules/widgets/action-popup.js @@ -57,20 +57,20 @@ Invoke the action associated with this widget */ ActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) { // Trigger the popup - var popupLocationRegExp = /^\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/, - match = popupLocationRegExp.exec(this.actionCoords || ""); - if(match) { + var coordinates = $tw.popup.parseCoordinates(this.actionCoords || ""); + if(coordinates) { $tw.popup.triggerPopup({ domNode: null, domNodeRect: { - left: parseFloat(match[1]), - top: parseFloat(match[2]), - width: parseFloat(match[3]), - height: parseFloat(match[4]) + left: coordinates.left, + top: coordinates.top, + width: coordinates.width, + height: coordinates.height }, title: this.actionState, wiki: this.wiki, - floating: this.floating + floating: this.floating, + absolute: coordinates.absolute }); } else { $tw.popup.cancel(0); diff --git a/core/modules/widgets/button.js b/core/modules/widgets/button.js index a32820e8b..f266d47bf 100644 --- a/core/modules/widgets/button.js +++ b/core/modules/widgets/button.js @@ -173,6 +173,7 @@ ButtonWidget.prototype.triggerPopup = function(event) { if(this.popupTitle) { $tw.popup.triggerPopup({ domNode: this.domNodes[0], + absolute: (this.popupAbsCoords === "yes"), title: this.popupTitle, wiki: this.wiki, noStateReference: true @@ -180,6 +181,7 @@ ButtonWidget.prototype.triggerPopup = function(event) { } else { $tw.popup.triggerPopup({ domNode: this.domNodes[0], + absolute: (this.popupAbsCoords === "yes"), title: this.popup, wiki: this.wiki }); @@ -223,6 +225,7 @@ ButtonWidget.prototype.execute = function() { this.setField = this.getAttribute("setField"); this.setIndex = this.getAttribute("setIndex"); this.popupTitle = this.getAttribute("popupTitle"); + this.popupAbsCoords = this.getAttribute("popupAbsCoords", "no"); this.tabIndex = this.getAttribute("tabindex"); this.isDisabled = this.getAttribute("disabled","no"); // Make child widgets @@ -252,7 +255,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["default"]) { + 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.popupAbsCoords || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled || changedAttributes["default"]) { this.refreshSelf(); return true; } else if(changedAttributes["class"]) { diff --git a/core/modules/widgets/reveal.js b/core/modules/widgets/reveal.js index 46e55e99e..0c82e8598 100755 --- a/core/modules/widgets/reveal.js +++ b/core/modules/widgets/reveal.js @@ -94,6 +94,13 @@ RevealWidget.prototype.positionPopup = function(domNode) { left = Math.max(0,left); top = Math.max(0,top); } + if (this.popup.absolute) { + // Traverse the offsetParent chain and correct the offset to make it relative to the parent node. + for (var offsetParentDomNode = domNode.offsetParent; offsetParentDomNode; offsetParentDomNode = offsetParentDomNode.offsetParent) { + left -= offsetParentDomNode.offsetLeft; + top -= offsetParentDomNode.offsetTop; + } + } domNode.style.left = left + "px"; domNode.style.top = top + "px"; }; @@ -183,19 +190,11 @@ RevealWidget.prototype.compareStateText = function(state) { }; RevealWidget.prototype.readPopupState = function(state) { - var popupLocationRegExp = /^\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/, - match = popupLocationRegExp.exec(state); + this.popup = $tw.popup.parseCoordinates(state); // Check if the state matches the location regexp - if(match) { + if(this.popup) { // If so, we're open this.isOpen = true; - // Get the location - this.popup = { - left: parseFloat(match[1]), - top: parseFloat(match[2]), - width: parseFloat(match[3]), - height: parseFloat(match[4]) - }; } else { // If not, we're closed this.isOpen = false; diff --git a/editions/test/tiddlers/tests/test-popup.js b/editions/test/tiddlers/tests/test-popup.js new file mode 100644 index 000000000..360e7f17f --- /dev/null +++ b/editions/test/tiddlers/tests/test-popup.js @@ -0,0 +1,71 @@ +/*\ +title: test-popup.js +type: application/javascript +tags: [[$:/tags/test-spec]] + +Tests some utility function of the Popup prototype. + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +describe("Popup tests", function() { + + it("parseCoordinates should parse valid coordinates", function() { + var popup = new $tw.utils.Popup({ + rootElement: $tw.fakeDocument.createElement("div") + }); + + expect(popup.parseCoordinates("(1,2,3,4)")).toEqual({absolute: false, left: 1, top: 2, width: 3, height: 4}); + expect(popup.parseCoordinates("(1.5,2.6,3.7,4.8)")).toEqual({absolute: false, left: 1.5, top: 2.6, width: 3.7, height: 4.8}); + expect(popup.parseCoordinates("@(1,2,3,4)")).toEqual({absolute: true, left: 1, top: 2, width: 3, height: 4}); + expect(popup.parseCoordinates("@(1.5,2.6,3.7,4.8)")).toEqual({absolute: true, left: 1.5, top: 2.6, width: 3.7, height: 4.8}); + }); + + it("parseCoordinates should not parse invalid coordinates", function() { + var popup = new $tw.utils.Popup({ + rootElement: $tw.fakeDocument.createElement("div") + }); + + expect(popup.parseCoordinates("#(1,2,3,4)")).toEqual(false); + expect(popup.parseCoordinates("(1,2,3,4")).toEqual(false); + expect(popup.parseCoordinates("(1,2,3)")).toEqual(false); + }); + + it("buildCoordinates should create valid coordinates", function() { + var popup = new $tw.utils.Popup({ + rootElement: $tw.fakeDocument.createElement("div") + }); + + var coordinates = { + left: 1.5, + top: 2.6, + width: 3.7, + height: 4.8 + }; + + expect(popup.buildCoordinates(popup.coordinatePrefix.csOffsetParent, coordinates)).toEqual("(1.5,2.6,3.7,4.8)"); + expect(popup.buildCoordinates(popup.coordinatePrefix.csAbsolute, coordinates)).toEqual("@(1.5,2.6,3.7,4.8)"); + }); + + it("buildCoordinates should detect invalid input", function() { + var popup = new $tw.utils.Popup({ + rootElement: $tw.fakeDocument.createElement("div") + }); + + var coordinates = { + left: "invalid", + top: 2.6, + width: 3.7, + height: 4.8 + }; + + expect(popup.buildCoordinates(popup.coordinatePrefix.csOffsetParent, coordinates)).toEqual("(0,0,0,0)"); + expect(popup.buildCoordinates("dummy", coordinates)).toEqual("(0,0,0,0)"); + }); +}); + +})(); diff --git a/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid b/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid new file mode 100644 index 000000000..9b66f941b --- /dev/null +++ b/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid @@ -0,0 +1,42 @@ +created: 20220810201659784 +modified: 20220810201659784 +tags: Concepts +title: Coordinate Systems +type: text/vnd.tiddlywiki + +TiddlyWiki (primarily the RevealWidget) supports two coordinate systems for positioning popups (see PopupMechanism to learn more about popups). + +<<.from-version "5.2.4">> We introduced absolute coordinates that may not work with all extensions and plugins. For maximum backwards compatibility, use absolute coordinates only where necessary. + +!! Relative coordinate system + +The default coordinate system is relative to the nearest positioned ancestor element. This is either: + +* an element with a non-static position, or +* a ''td'', ''th'', ''table'' in case the element itself is static positioned. + +For tiddlers the nearest positioned ancestor element mostly is the body of the tiddler. Read the next chapter to learn about the exceptions. + +Relative coordinates are expressed in the form ''(x,y,w,h)''. Where ''x'' and ''y'' represent the position and ''w'' and ''h'' the width and height of the element. + +!! Absolute coordinate system + +The relative coordinate system works flawless most of the time. Problems occure if the target element (for example, a popup) and the source element (the triggering button) do not share the same positioned ancherstor element. This is often the case if the popup is declared outside a table and the triggering button is declared within a table cell. In this case the coordiante systems have different origins and the popup will be displayed in the wrong location. + +Absolute coordinates can fix this problem by using the root element of the page (the upper-left corner of the page) as the origin of the coordinate system. Absolute coordinates are expressed in the form ''@(x,y,w,h)''. Where ''x'' and ''y'' represent the position and ''w'' and ''h'' the width and height of the element. The leading ''@''-symbol marks these coordinates as absolute. + +The ButtonWidget has an option (''popupAbsCoords'') to put absolute coordinates into the state tiddler. The DraggableWidget and the EventCatcherWidget provide the absolute coordinate of an event within the attribute `tv-popup-abs-coords`. + + +!! Example + +The following example shows a popup that is triggerd from within a table cell. The table cell is the nearest positioned ancestor element. The popup was defined outside the table cell. The button using relative coordinates will open the popup in the wrong location because the button and the popup do not agree on the same coordinate system. Using absolute coordinates fixes this problem. + +<<wikitext-example-without-html '<$reveal type="popup" state="$:/state/CoordinateSampleReveal"> +<div class="tc-drop-down"> +Popup +</div> +</$reveal> + +| Table Row 1 |<$button popup="$:/state/CoordinateSampleReveal">Relative coordinates</$button>| +| Table Row 2 |<$button popup="$:/state/CoordinateSampleReveal" popupAbsCoords="yes">Absolute coordinates</$button>|'>> diff --git a/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid b/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid index 60566a329..79f3de4c5 100644 --- a/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid +++ b/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid @@ -8,6 +8,7 @@ The popup mechanism allows blocks of content to be selectively displayed and pos * [[StateTiddlers|StateMechanism]] to record whether a popup is currently displayed or not * The RevealWidget to selectively display the popup content +** <<.from-version "5.2.4">> For positioning the popups relative or absolute coordinates can be used. See [[Coordinate Systems]] for more information about usage and format. ** For "sticky" popups — those that don't close when clicking inside one — set the ''class'' attribute to `tc-popup-keep` * The ButtonWidget to trigger the display of the popup by setting the state tiddler appropriately diff --git a/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid b/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid index e423b6576..590e25a92 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid @@ -1,6 +1,6 @@ caption: action-popup created: 20200303114556528 -modified: 20210501203451387 +modified: 20220815205132124 tags: Widgets ActionWidgets title: ActionPopupWidget type: text/vnd.tiddlywiki @@ -15,10 +15,11 @@ The ''action-popup'' widget is invisible. Any content within it is ignored. |!Attribute |!Description | |$state |The title of the state tiddler for the popup | -|$coords |Optional coordinates for the handle to which popup is positioned (in the format `(x,y,w,h)`) | +|$coords |Optional coordinates for the handle to which popup is positioned (see [[Coordinate Systems]] for the supported formats) | |$floating |<<.from-version "5.2.0">> Optional. Defaults to `no`. Set to `yes` to create a popup that must be closed explicitly. | -<<.from-version "5.1.23">> If the ''$coords'' attribute is missing or empty then all popups are cancelled. +<<.from-version "5.1.23">> If the ''$coords'' attribute is missing or empty then all popups are cancelled.<br/> +<<.from-version "5.2.4">> The ''$coords'' attribute supports absolute and relative coordinates. See [[Coordinate Systems]] for more information. <<.tip "Delete the state tiddler for a floating popup to close it.">> diff --git a/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid b/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid index e94504659..da61838af 100644 --- a/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid @@ -1,6 +1,6 @@ caption: button created: 20131024141900000 -modified: 20211009121239795 +modified: 20220810192251345 tags: Widgets TriggeringWidgets title: ButtonWidget type: text/vnd.tiddlywiki @@ -37,6 +37,7 @@ The content of the `<$button>` widget is displayed within the button. |default |Default value if <<.attr set>> tiddler is missing for testing against <<.attr setTo>> to determine <<.attr selectedClass>> | |popup |Title of a state tiddler for a popup that is toggled when the button is clicked. See PopupMechanism for details | |popupTitle |Title of a state tiddler for a popup that is toggled when the button is clicked. In difference to the <<.attr popup>> attribute, ''no'' TextReference is used. See PopupMechanism for details | +|popupAbsCoords |<<.from-version "5.2.4">> If set to ''yes'' writes absolute coordinates to the tiddler referenced by the <<.attr popup>>. If set to ''no'' (the default) uses relative coordinates. See [[Coordinate Systems]] for details | |aria-label |Optional [[Accessibility]] label | |tooltip |Optional tooltip | |class |An optional CSS class name to be assigned to the HTML element| diff --git a/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid b/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid index fc65c4e74..c25b15791 100644 --- a/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid @@ -41,7 +41,8 @@ The LinkWidget incorporates the functionality of the DraggableWidget via the ''d |!Variables |!Description | |`modifier` |The [[modifier Variable]] contains the Modifier Key held while dragging | |`dom-*` |All DOM attributes of the node being dragged are made available as variables, with the prefix `dom-` | -|`tv-popup-coords` |A co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node that's being dragged where the event originated | +|`tv-popup-coords` |A relative co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | +|`tv-popup-abs-coords` |<<.from-version "5.2.4">> An absolute co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | |`tv-selectednode-posx` |`x` offset position of the dragged DOM node | |`tv-selectednode-posy` |`y` offset position of the dragged DOM node | |`tv-selectednode-width` |`offsetWidth` of the dragged DOM node | diff --git a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid index f0c8c257c..5c2568a19 100644 --- a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid @@ -1,5 +1,5 @@ created: 20201123113532200 -modified: 20220507184043398 +modified: 20221012194222875 tags: Widgets TriggeringWidgets title: EventCatcherWidget type: text/vnd.tiddlywiki @@ -10,7 +10,7 @@ type: text/vnd.tiddlywiki //This is an advanced widget intended for use by those familiar with HTML, CSS and JavaScript handling of DOM events.// -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. +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: @@ -47,7 +47,8 @@ The following variables are made available to the actions: |`event-mousebutton` |The mouse button (if any) used to trigger the event (can be "left", "right" or "middle"). Note that not all event types support the mousebutton property | |`event-type` |The type property of the JavaScript event | |`event-detail-*` |Any properties in the detail attribute of the event are made available with the prefix `event-detail-` | -|`tv-popup-coords` |A co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated | +|`tv-popup-coords` |A relative co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | +|`tv-popup-abs-coords` |<<.from-version "5.2.4">> An absolute co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | |`tv-widgetnode-width` |<<.from-version "5.2.3">> `offsetWidth` of the DOM node created by the eventcatcher widget | |`tv-widgetnode-height` |<<.from-version "5.2.3">> `offsetHeight` of the DOM node created by the eventcatcher widget | |`tv-selectednode-posx` |`x` offset position of the selected DOM node | diff --git a/plugins/tiddlywiki/dynannotate/modules/dynannotate.js b/plugins/tiddlywiki/dynannotate/modules/dynannotate.js index 9a913384d..bd898ebba 100644 --- a/plugins/tiddlywiki/dynannotate/modules/dynannotate.js +++ b/plugins/tiddlywiki/dynannotate/modules/dynannotate.js @@ -191,7 +191,7 @@ DynannotateWidget.prototype.applyAnnotations = function() { "tv-selection-posy": (bounds.top).toString(), "tv-selection-width": (bounds.width).toString(), "tv-selection-height": (bounds.height).toString(), - "tv-selection-coords": "(" + bounds.left + "," + bounds.top + "," + bounds.width + "," + bounds.height + ")" + "tv-selection-coords": $tw.popup.buildCoordinates($tw.popup.coordinatePrefix.csOffsetParent,bounds) }); if(self.hasAttribute("popup")) { $tw.popup.triggerPopup({ From b9d27e9fd5f5420dac375762670182275f33e0aa Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 22 Oct 2022 13:22:15 +0100 Subject: [PATCH 050/937] Revert "Fix popup position if popup is triggered from within an offsetParent element (#6887)" This reverts commit 5b85786f737c94ee102490c68c22a563e418dd07. --- core/modules/utils/dom/dom.js | 17 +---- core/modules/utils/dom/popup.js | 69 ++---------------- core/modules/widgets/action-popup.js | 16 ++--- core/modules/widgets/button.js | 5 +- core/modules/widgets/reveal.js | 19 ++--- editions/test/tiddlers/tests/test-popup.js | 71 ------------------- .../tiddlers/concepts/CoordinateSystems.tid | 42 ----------- .../tiddlers/mechanisms/PopupMechanism.tid | 1 - .../tiddlers/widgets/ActionPopupWidget.tid | 7 +- .../tw5.com/tiddlers/widgets/ButtonWidget.tid | 3 +- .../tiddlers/widgets/DraggableWidget.tid | 3 +- .../tiddlers/widgets/EventCatcherWidget.tid | 7 +- .../dynannotate/modules/dynannotate.js | 2 +- 13 files changed, 34 insertions(+), 228 deletions(-) delete mode 100644 editions/test/tiddlers/tests/test-popup.js delete mode 100644 editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid diff --git a/core/modules/utils/dom/dom.js b/core/modules/utils/dom/dom.js index 84bbb1068..330d184cc 100644 --- a/core/modules/utils/dom/dom.js +++ b/core/modules/utils/dom/dom.js @@ -294,21 +294,8 @@ exports.collectDOMVariables = function(selectedNode,domNode,event) { }); if(selectedNode.offsetLeft) { - // Add variables with a (relative and absolute) popup coordinate string for the selected node - var nodeRect = { - left: selectedNode.offsetLeft, - top: selectedNode.offsetTop, - width: selectedNode.offsetWidth, - height: selectedNode.offsetHeight - }; - variables["tv-popup-coords"] = $tw.popup.buildCoordinates($tw.popup.coordinatePrefix.csOffsetParent,nodeRect); - - var absRect = $tw.utils.extend({}, nodeRect); - for (var currentNode = selectedNode.offsetParent; currentNode; currentNode = currentNode.offsetParent) { - absRect.left += currentNode.offsetLeft; - absRect.top += currentNode.offsetTop; - } - variables["tv-popup-abs-coords"] = $tw.popup.buildCoordinates($tw.popup.coordinatePrefix.csAbsolute,absRect); + // 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(); diff --git a/core/modules/utils/dom/popup.js b/core/modules/utils/dom/popup.js index 0a898156e..5eed80c88 100644 --- a/core/modules/utils/dom/popup.js +++ b/core/modules/utils/dom/popup.js @@ -22,19 +22,6 @@ var Popup = function(options) { this.popups = []; // Array of {title:,wiki:,domNode:} objects }; -/* -Global regular expression for parsing the location of a popup. -This is also used by the Reveal widget. -*/ -Popup.popupLocationRegExp = /^(@?)\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/ - -/* -Objekt containing the available prefixes for coordinates build with the `buildCoordinates` function: - - csOffsetParent: Uses a coordinate system based on the offset parent (no prefix). - - csAbsolute: Use an absolute coordinate system (prefix "@"). -*/ -Popup.prototype.coordinatePrefix = { csOffsetParent: "", csAbsolute: "@" } - /* Trigger a popup open or closed. Parameters are in a hashmap: title: title of the tiddler where the popup details are stored @@ -149,17 +136,8 @@ Popup.prototype.show = function(options) { height: options.domNode.offsetHeight }; } - if(options.absolute && options.domNode) { - // Walk the offsetParent chain and add the position of the offsetParents to make - // the position absolute to the root node of the page. - var currentNode = options.domNode.offsetParent; - while(currentNode) { - rect.left += currentNode.offsetLeft; - rect.top += currentNode.offsetTop; - currentNode = currentNode.offsetParent; - } - } - var popupRect = $tw.popup.buildCoordinates(options.absolute?$tw.popup.coordinatePrefix.csAbsolute:$tw.popup.coordinatePrefix.csOffsetParent,rect); + var popupRect = "(" + rect.left + "," + rect.top + "," + + rect.width + "," + rect.height + ")"; if(options.noStateReference) { options.wiki.setText(options.title,"text",undefined,popupRect); } else { @@ -197,49 +175,10 @@ Popup.prototype.cancel = function(level) { Returns true if the specified title and text identifies an active popup */ Popup.prototype.readPopupState = function(text) { - return Popup.popupLocationRegExp.test(text); + var popupLocationRegExp = /^\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/; + return popupLocationRegExp.test(text); }; -/* -Parses a coordinate string in the format `(x,y,w,h)` or `@(x,y,z,h)` and returns -an object containing the position, width and height. The absolute-Mark is boolean -value that indicates the coordinate system of the coordinates. If they start with -an `@`, `absolute` is set and the coordinates are relative to the root element. If -the initial `@` is missing, they are relative to the offset parent element and -`absoute` is false. -*/ -Popup.prototype.parseCoordinates = function(coordinates) { - var match = Popup.popupLocationRegExp.exec(coordinates); - if(match) { - return { - absolute: (match[1] === "@"), - left: parseFloat(match[2]), - top: parseFloat(match[3]), - width: parseFloat(match[4]), - height: parseFloat(match[5]) - }; - } else { - return false; - } -} - -/* -Builds a coordinate string from a coordinate system identifier and an object -containing the left, top, width and height values. -Use constants defined in the coordinatePrefix property to specify a coordinate -system. -If one of the parameters is invalid for building a coordinate string `(0,0,0,0)` -will be returned. -*/ -Popup.prototype.buildCoordinates = function(prefix,position) { - var coord = prefix + "(" + position.left + "," + position.top + "," + position.width + "," + position.height + ")"; - if (Popup.popupLocationRegExp.test(coord)) { - return coord; - } else { - return "(0,0,0,0)"; - } -} - exports.Popup = Popup; })(); diff --git a/core/modules/widgets/action-popup.js b/core/modules/widgets/action-popup.js index 2d47540d6..2903532b6 100644 --- a/core/modules/widgets/action-popup.js +++ b/core/modules/widgets/action-popup.js @@ -57,20 +57,20 @@ Invoke the action associated with this widget */ ActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) { // Trigger the popup - var coordinates = $tw.popup.parseCoordinates(this.actionCoords || ""); - if(coordinates) { + var popupLocationRegExp = /^\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/, + match = popupLocationRegExp.exec(this.actionCoords || ""); + if(match) { $tw.popup.triggerPopup({ domNode: null, domNodeRect: { - left: coordinates.left, - top: coordinates.top, - width: coordinates.width, - height: coordinates.height + left: parseFloat(match[1]), + top: parseFloat(match[2]), + width: parseFloat(match[3]), + height: parseFloat(match[4]) }, title: this.actionState, wiki: this.wiki, - floating: this.floating, - absolute: coordinates.absolute + floating: this.floating }); } else { $tw.popup.cancel(0); diff --git a/core/modules/widgets/button.js b/core/modules/widgets/button.js index f266d47bf..a32820e8b 100644 --- a/core/modules/widgets/button.js +++ b/core/modules/widgets/button.js @@ -173,7 +173,6 @@ ButtonWidget.prototype.triggerPopup = function(event) { if(this.popupTitle) { $tw.popup.triggerPopup({ domNode: this.domNodes[0], - absolute: (this.popupAbsCoords === "yes"), title: this.popupTitle, wiki: this.wiki, noStateReference: true @@ -181,7 +180,6 @@ ButtonWidget.prototype.triggerPopup = function(event) { } else { $tw.popup.triggerPopup({ domNode: this.domNodes[0], - absolute: (this.popupAbsCoords === "yes"), title: this.popup, wiki: this.wiki }); @@ -225,7 +223,6 @@ ButtonWidget.prototype.execute = function() { this.setField = this.getAttribute("setField"); this.setIndex = this.getAttribute("setIndex"); this.popupTitle = this.getAttribute("popupTitle"); - this.popupAbsCoords = this.getAttribute("popupAbsCoords", "no"); this.tabIndex = this.getAttribute("tabindex"); this.isDisabled = this.getAttribute("disabled","no"); // Make child widgets @@ -255,7 +252,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.popupAbsCoords || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled || changedAttributes["default"]) { + 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"]) { diff --git a/core/modules/widgets/reveal.js b/core/modules/widgets/reveal.js index 0c82e8598..46e55e99e 100755 --- a/core/modules/widgets/reveal.js +++ b/core/modules/widgets/reveal.js @@ -94,13 +94,6 @@ RevealWidget.prototype.positionPopup = function(domNode) { left = Math.max(0,left); top = Math.max(0,top); } - if (this.popup.absolute) { - // Traverse the offsetParent chain and correct the offset to make it relative to the parent node. - for (var offsetParentDomNode = domNode.offsetParent; offsetParentDomNode; offsetParentDomNode = offsetParentDomNode.offsetParent) { - left -= offsetParentDomNode.offsetLeft; - top -= offsetParentDomNode.offsetTop; - } - } domNode.style.left = left + "px"; domNode.style.top = top + "px"; }; @@ -190,11 +183,19 @@ RevealWidget.prototype.compareStateText = function(state) { }; RevealWidget.prototype.readPopupState = function(state) { - this.popup = $tw.popup.parseCoordinates(state); + var popupLocationRegExp = /^\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/, + match = popupLocationRegExp.exec(state); // Check if the state matches the location regexp - if(this.popup) { + if(match) { // If so, we're open this.isOpen = true; + // Get the location + this.popup = { + left: parseFloat(match[1]), + top: parseFloat(match[2]), + width: parseFloat(match[3]), + height: parseFloat(match[4]) + }; } else { // If not, we're closed this.isOpen = false; diff --git a/editions/test/tiddlers/tests/test-popup.js b/editions/test/tiddlers/tests/test-popup.js deleted file mode 100644 index 360e7f17f..000000000 --- a/editions/test/tiddlers/tests/test-popup.js +++ /dev/null @@ -1,71 +0,0 @@ -/*\ -title: test-popup.js -type: application/javascript -tags: [[$:/tags/test-spec]] - -Tests some utility function of the Popup prototype. - -\*/ -(function(){ - -/*jslint node: true, browser: true */ -/*global $tw: false */ -"use strict"; - -describe("Popup tests", function() { - - it("parseCoordinates should parse valid coordinates", function() { - var popup = new $tw.utils.Popup({ - rootElement: $tw.fakeDocument.createElement("div") - }); - - expect(popup.parseCoordinates("(1,2,3,4)")).toEqual({absolute: false, left: 1, top: 2, width: 3, height: 4}); - expect(popup.parseCoordinates("(1.5,2.6,3.7,4.8)")).toEqual({absolute: false, left: 1.5, top: 2.6, width: 3.7, height: 4.8}); - expect(popup.parseCoordinates("@(1,2,3,4)")).toEqual({absolute: true, left: 1, top: 2, width: 3, height: 4}); - expect(popup.parseCoordinates("@(1.5,2.6,3.7,4.8)")).toEqual({absolute: true, left: 1.5, top: 2.6, width: 3.7, height: 4.8}); - }); - - it("parseCoordinates should not parse invalid coordinates", function() { - var popup = new $tw.utils.Popup({ - rootElement: $tw.fakeDocument.createElement("div") - }); - - expect(popup.parseCoordinates("#(1,2,3,4)")).toEqual(false); - expect(popup.parseCoordinates("(1,2,3,4")).toEqual(false); - expect(popup.parseCoordinates("(1,2,3)")).toEqual(false); - }); - - it("buildCoordinates should create valid coordinates", function() { - var popup = new $tw.utils.Popup({ - rootElement: $tw.fakeDocument.createElement("div") - }); - - var coordinates = { - left: 1.5, - top: 2.6, - width: 3.7, - height: 4.8 - }; - - expect(popup.buildCoordinates(popup.coordinatePrefix.csOffsetParent, coordinates)).toEqual("(1.5,2.6,3.7,4.8)"); - expect(popup.buildCoordinates(popup.coordinatePrefix.csAbsolute, coordinates)).toEqual("@(1.5,2.6,3.7,4.8)"); - }); - - it("buildCoordinates should detect invalid input", function() { - var popup = new $tw.utils.Popup({ - rootElement: $tw.fakeDocument.createElement("div") - }); - - var coordinates = { - left: "invalid", - top: 2.6, - width: 3.7, - height: 4.8 - }; - - expect(popup.buildCoordinates(popup.coordinatePrefix.csOffsetParent, coordinates)).toEqual("(0,0,0,0)"); - expect(popup.buildCoordinates("dummy", coordinates)).toEqual("(0,0,0,0)"); - }); -}); - -})(); diff --git a/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid b/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid deleted file mode 100644 index 9b66f941b..000000000 --- a/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid +++ /dev/null @@ -1,42 +0,0 @@ -created: 20220810201659784 -modified: 20220810201659784 -tags: Concepts -title: Coordinate Systems -type: text/vnd.tiddlywiki - -TiddlyWiki (primarily the RevealWidget) supports two coordinate systems for positioning popups (see PopupMechanism to learn more about popups). - -<<.from-version "5.2.4">> We introduced absolute coordinates that may not work with all extensions and plugins. For maximum backwards compatibility, use absolute coordinates only where necessary. - -!! Relative coordinate system - -The default coordinate system is relative to the nearest positioned ancestor element. This is either: - -* an element with a non-static position, or -* a ''td'', ''th'', ''table'' in case the element itself is static positioned. - -For tiddlers the nearest positioned ancestor element mostly is the body of the tiddler. Read the next chapter to learn about the exceptions. - -Relative coordinates are expressed in the form ''(x,y,w,h)''. Where ''x'' and ''y'' represent the position and ''w'' and ''h'' the width and height of the element. - -!! Absolute coordinate system - -The relative coordinate system works flawless most of the time. Problems occure if the target element (for example, a popup) and the source element (the triggering button) do not share the same positioned ancherstor element. This is often the case if the popup is declared outside a table and the triggering button is declared within a table cell. In this case the coordiante systems have different origins and the popup will be displayed in the wrong location. - -Absolute coordinates can fix this problem by using the root element of the page (the upper-left corner of the page) as the origin of the coordinate system. Absolute coordinates are expressed in the form ''@(x,y,w,h)''. Where ''x'' and ''y'' represent the position and ''w'' and ''h'' the width and height of the element. The leading ''@''-symbol marks these coordinates as absolute. - -The ButtonWidget has an option (''popupAbsCoords'') to put absolute coordinates into the state tiddler. The DraggableWidget and the EventCatcherWidget provide the absolute coordinate of an event within the attribute `tv-popup-abs-coords`. - - -!! Example - -The following example shows a popup that is triggerd from within a table cell. The table cell is the nearest positioned ancestor element. The popup was defined outside the table cell. The button using relative coordinates will open the popup in the wrong location because the button and the popup do not agree on the same coordinate system. Using absolute coordinates fixes this problem. - -<<wikitext-example-without-html '<$reveal type="popup" state="$:/state/CoordinateSampleReveal"> -<div class="tc-drop-down"> -Popup -</div> -</$reveal> - -| Table Row 1 |<$button popup="$:/state/CoordinateSampleReveal">Relative coordinates</$button>| -| Table Row 2 |<$button popup="$:/state/CoordinateSampleReveal" popupAbsCoords="yes">Absolute coordinates</$button>|'>> diff --git a/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid b/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid index 79f3de4c5..60566a329 100644 --- a/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid +++ b/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid @@ -8,7 +8,6 @@ The popup mechanism allows blocks of content to be selectively displayed and pos * [[StateTiddlers|StateMechanism]] to record whether a popup is currently displayed or not * The RevealWidget to selectively display the popup content -** <<.from-version "5.2.4">> For positioning the popups relative or absolute coordinates can be used. See [[Coordinate Systems]] for more information about usage and format. ** For "sticky" popups — those that don't close when clicking inside one — set the ''class'' attribute to `tc-popup-keep` * The ButtonWidget to trigger the display of the popup by setting the state tiddler appropriately diff --git a/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid b/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid index 590e25a92..e423b6576 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid @@ -1,6 +1,6 @@ caption: action-popup created: 20200303114556528 -modified: 20220815205132124 +modified: 20210501203451387 tags: Widgets ActionWidgets title: ActionPopupWidget type: text/vnd.tiddlywiki @@ -15,11 +15,10 @@ The ''action-popup'' widget is invisible. Any content within it is ignored. |!Attribute |!Description | |$state |The title of the state tiddler for the popup | -|$coords |Optional coordinates for the handle to which popup is positioned (see [[Coordinate Systems]] for the supported formats) | +|$coords |Optional coordinates for the handle to which popup is positioned (in the format `(x,y,w,h)`) | |$floating |<<.from-version "5.2.0">> Optional. Defaults to `no`. Set to `yes` to create a popup that must be closed explicitly. | -<<.from-version "5.1.23">> If the ''$coords'' attribute is missing or empty then all popups are cancelled.<br/> -<<.from-version "5.2.4">> The ''$coords'' attribute supports absolute and relative coordinates. See [[Coordinate Systems]] for more information. +<<.from-version "5.1.23">> If the ''$coords'' attribute is missing or empty then all popups are cancelled. <<.tip "Delete the state tiddler for a floating popup to close it.">> diff --git a/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid b/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid index da61838af..e94504659 100644 --- a/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid @@ -1,6 +1,6 @@ caption: button created: 20131024141900000 -modified: 20220810192251345 +modified: 20211009121239795 tags: Widgets TriggeringWidgets title: ButtonWidget type: text/vnd.tiddlywiki @@ -37,7 +37,6 @@ The content of the `<$button>` widget is displayed within the button. |default |Default value if <<.attr set>> tiddler is missing for testing against <<.attr setTo>> to determine <<.attr selectedClass>> | |popup |Title of a state tiddler for a popup that is toggled when the button is clicked. See PopupMechanism for details | |popupTitle |Title of a state tiddler for a popup that is toggled when the button is clicked. In difference to the <<.attr popup>> attribute, ''no'' TextReference is used. See PopupMechanism for details | -|popupAbsCoords |<<.from-version "5.2.4">> If set to ''yes'' writes absolute coordinates to the tiddler referenced by the <<.attr popup>>. If set to ''no'' (the default) uses relative coordinates. See [[Coordinate Systems]] for details | |aria-label |Optional [[Accessibility]] label | |tooltip |Optional tooltip | |class |An optional CSS class name to be assigned to the HTML element| diff --git a/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid b/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid index c25b15791..fc65c4e74 100644 --- a/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid @@ -41,8 +41,7 @@ The LinkWidget incorporates the functionality of the DraggableWidget via the ''d |!Variables |!Description | |`modifier` |The [[modifier Variable]] contains the Modifier Key held while dragging | |`dom-*` |All DOM attributes of the node being dragged are made available as variables, with the prefix `dom-` | -|`tv-popup-coords` |A relative co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | -|`tv-popup-abs-coords` |<<.from-version "5.2.4">> An absolute co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | +|`tv-popup-coords` |A co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node that's being dragged where the event originated | |`tv-selectednode-posx` |`x` offset position of the dragged DOM node | |`tv-selectednode-posy` |`y` offset position of the dragged DOM node | |`tv-selectednode-width` |`offsetWidth` of the dragged DOM node | diff --git a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid index 5c2568a19..f0c8c257c 100644 --- a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid @@ -1,5 +1,5 @@ created: 20201123113532200 -modified: 20221012194222875 +modified: 20220507184043398 tags: Widgets TriggeringWidgets title: EventCatcherWidget type: text/vnd.tiddlywiki @@ -10,7 +10,7 @@ type: text/vnd.tiddlywiki //This is an advanced widget intended for use by those familiar with HTML, CSS and JavaScript handling of DOM events.// -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. +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: @@ -47,8 +47,7 @@ The following variables are made available to the actions: |`event-mousebutton` |The mouse button (if any) used to trigger the event (can be "left", "right" or "middle"). Note that not all event types support the mousebutton property | |`event-type` |The type property of the JavaScript event | |`event-detail-*` |Any properties in the detail attribute of the event are made available with the prefix `event-detail-` | -|`tv-popup-coords` |A relative co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | -|`tv-popup-abs-coords` |<<.from-version "5.2.4">> An absolute co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | +|`tv-popup-coords` |A co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated | |`tv-widgetnode-width` |<<.from-version "5.2.3">> `offsetWidth` of the DOM node created by the eventcatcher widget | |`tv-widgetnode-height` |<<.from-version "5.2.3">> `offsetHeight` of the DOM node created by the eventcatcher widget | |`tv-selectednode-posx` |`x` offset position of the selected DOM node | diff --git a/plugins/tiddlywiki/dynannotate/modules/dynannotate.js b/plugins/tiddlywiki/dynannotate/modules/dynannotate.js index bd898ebba..9a913384d 100644 --- a/plugins/tiddlywiki/dynannotate/modules/dynannotate.js +++ b/plugins/tiddlywiki/dynannotate/modules/dynannotate.js @@ -191,7 +191,7 @@ DynannotateWidget.prototype.applyAnnotations = function() { "tv-selection-posy": (bounds.top).toString(), "tv-selection-width": (bounds.width).toString(), "tv-selection-height": (bounds.height).toString(), - "tv-selection-coords": $tw.popup.buildCoordinates($tw.popup.coordinatePrefix.csOffsetParent,bounds) + "tv-selection-coords": "(" + bounds.left + "," + bounds.top + "," + bounds.width + "," + bounds.height + ")" }); if(self.hasAttribute("popup")) { $tw.popup.triggerPopup({ From 3f55f827a612742da481fb4597313aad9faf9591 Mon Sep 17 00:00:00 2001 From: Saq Imtiaz <saq.imtiaz@gmail.com> Date: Fri, 28 Oct 2022 13:58:58 +0200 Subject: [PATCH 051/937] Extend page template with filter assigned classes (#6976) * Extend page template with filter assigned classes * feat: added dynamic class support for tiddler templates and documentation --- core/ui/EditTemplate.tid | 2 +- core/ui/PageTemplate.tid | 5 +---- core/ui/ViewTemplate.tid | 2 +- .../SystemTag_ $__tags_ClassFilters_PageTemplate.tid | 9 +++++++++ .../SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid | 9 +++++++++ 5 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_PageTemplate.tid create mode 100644 editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid diff --git a/core/ui/EditTemplate.tid b/core/ui/EditTemplate.tid index 57151fe38..b63a02ee2 100644 --- a/core/ui/EditTemplate.tid +++ b/core/ui/EditTemplate.tid @@ -23,7 +23,7 @@ title: $:/core/ui/EditTemplate <div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} - class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}} + class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/TiddlerTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}} role="region" aria-label={{$:/language/EditTemplate/Caption}}> <$fieldmangler> diff --git a/core/ui/PageTemplate.tid b/core/ui/PageTemplate.tid index a432cc76a..c9e929551 100644 --- a/core/ui/PageTemplate.tid +++ b/core/ui/PageTemplate.tid @@ -3,9 +3,6 @@ name: {{$:/language/PageTemplate/Name}} description: {{$:/language/PageTemplate/Description}} \whitespace trim -\define containerClasses() -tc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$ -\end \import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]] <$vars @@ -17,7 +14,7 @@ tc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$ storyviewTitle={{$:/view}} languageTitle={{{ [{$:/language}get[name]] }}}> -<div class=<<containerClasses>>> +<div class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/PageTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-page-container [[tc-page-view-]addsuffix<storyviewTitle>] [[tc-language-]addsuffix<languageTitle>] :and[unique[]join[ ]] }}} > <$navigator story="$:/StoryList" history="$:/HistoryList" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}> diff --git a/core/ui/ViewTemplate.tid b/core/ui/ViewTemplate.tid index 7cb8bec3c..f0aba9c97 100644 --- a/core/ui/ViewTemplate.tid +++ b/core/ui/ViewTemplate.tid @@ -7,7 +7,7 @@ $:/state/folded/$(currentTiddler)$ \define cancel-delete-tiddler-actions(message) <$action-sendmessage $message="tm-$message$-tiddler"/> \import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]] <$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify "$:/state/popup/tiddler-info">>> -<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}} role="article"> +<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/TiddlerTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}} role="article"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]" variable="listItem"> <$transclude tiddler=<<listItem>>/> </$list> diff --git a/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_PageTemplate.tid b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_PageTemplate.tid new file mode 100644 index 000000000..dd6a7c699 --- /dev/null +++ b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_PageTemplate.tid @@ -0,0 +1,9 @@ +caption: $:/tags/ClassFilters/PageTemplate +created: 20221020035315795 +description: marks filters evaluated to dynamically add classes to the page template. +modified: 20221020035945262 +tags: SystemTags +title: SystemTag: $:/tags/ClassFilters/PageTemplate +type: text/vnd.tiddlywiki + +The [[system tag|SystemTags]] `$:/tags/ClassFilters/PageTemplate` marks filters marks filters evaluated to dynamically add their output as CSS classes to the page template. \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid new file mode 100644 index 000000000..20e552905 --- /dev/null +++ b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid @@ -0,0 +1,9 @@ +caption: $:/tags/ClassFilters/TiddlerTemplate +created: 20221020035738692 +description: marks filters evaluated to dynamically add classes to the page template. +modified: 20221020035933363 +tags: SystemTags +title: SystemTag: $:/tags/ClassFilters/TiddlerTemplate +type: text/vnd.tiddlywiki + +The [[system tag|SystemTags]] `$:/tags/ClassFilters/TiddlerTemplate` marks filters marks filters evaluated to dynamically add their output as CSS classes to the tiddler template. \ No newline at end of file From 6af3eb539b6d77e4902ca470e62a5b7f7a44ad23 Mon Sep 17 00:00:00 2001 From: btheado <brian.theado@gmail.com> Date: Sun, 30 Oct 2022 12:10:12 -0400 Subject: [PATCH 052/937] Adds a javascript widget tutorial to the dev tiddlywiki edition (#7016) * Initial widget tutorials extracted from https://btheado.github.io/tw-widget-tutorial/ * Fixes for refresh behavior change --- editions/dev/tiddlers/HelloThere.tid | 3 +- .../Child widgets tutorial.tid | 140 ++++++++++++++++++ .../Do nothing widget demo.tid | 22 +++ .../Do nothing widget tutorial.tid | 25 ++++ .../Hello World demo.tid | 23 +++ .../Hello World widget tutorial.tid | 18 +++ .../Javascript Widget Tutorial.tid | 37 +++++ .../Undefined widget demo.tid | 18 +++ .../Undefined widget tutorial.tid | 11 ++ .../Widget attributes demo I.tid | 48 ++++++ .../Widget attributes demo II.tid | 48 ++++++ .../Widget attributes tutorial part I.tid | 50 +++++++ .../Widget attributes tutorial part II.tid | 33 +++++ .../Widget refresh demo I.tid | 44 ++++++ .../Widget refresh demo II.tid | 40 +++++ .../Widget refresh demo III.tid | 50 +++++++ .../Widget refresh tutorial part I.tid | 47 ++++++ .../Widget refresh tutorial part II.tid | 37 +++++ .../Widget refresh tutorial part III.tid | 26 ++++ .../javascript-widget-tutorial/domwidget.js | 47 ++++++ .../domwidget.js.meta | 6 + .../javascript-widget-tutorial/donothing.js | 16 ++ .../donothing.js.meta | 6 + .../hello-attribute-optimized.js | 51 +++++++ .../hello-attribute-optimized.js.meta | 6 + .../hello-attribute.js | 47 ++++++ .../hello-attribute.js.meta | 6 + .../javascript-widget-tutorial/hello.js | 35 +++++ .../javascript-widget-tutorial/hello.js.meta | 6 + .../refreshcount.js | 43 ++++++ .../refreshcount.js.meta | 6 + .../tiddlerfield-norefresh.js | 36 +++++ .../tiddlerfield-norefresh.js.meta | 6 + .../tiddlerfield.js | 46 ++++++ .../tiddlerfield.js.meta | 6 + editions/dev/tiddlywiki.info | 3 +- 36 files changed, 1090 insertions(+), 2 deletions(-) create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Child widgets tutorial.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Do nothing widget demo.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Do nothing widget tutorial.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Hello World demo.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Hello World widget tutorial.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Javascript Widget Tutorial.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Undefined widget demo.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Undefined widget tutorial.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes demo I.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes demo II.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes tutorial part I.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes tutorial part II.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo I.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo II.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo III.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part I.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part II.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part III.tid create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/domwidget.js create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/domwidget.js.meta create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/donothing.js create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/donothing.js.meta create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute-optimized.js create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute-optimized.js.meta create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute.js create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute.js.meta create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/hello.js create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/hello.js.meta create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/refreshcount.js create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/refreshcount.js.meta create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield-norefresh.js create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield-norefresh.js.meta create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield.js create mode 100644 editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield.js.meta diff --git a/editions/dev/tiddlers/HelloThere.tid b/editions/dev/tiddlers/HelloThere.tid index caa8ed435..e3b8979a8 100644 --- a/editions/dev/tiddlers/HelloThere.tid +++ b/editions/dev/tiddlers/HelloThere.tid @@ -1,5 +1,5 @@ created: 20190115173333457 -modified: 20190115173723915 +modified: 20221029175754753 tags: TableOfContents title: HelloThere type: text/vnd.tiddlywiki @@ -15,6 +15,7 @@ Welcome to the developer documentation for TiddlyWiki (https://tiddlywiki.com/). ** [[Using ES2016 for Writing Plugins]] ** [[Adding Babel Polyfill to TiddlyWiki]] ** [[TiddlyWiki Drag and Drop Interoperability]] +** [[Javascript Widget Tutorial]] * The original developer documentation from https://tiddlywiki.com: ** [[TiddlyWiki for Developers]] ** [[TiddlyWiki Coding Style Guidelines]] diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Child widgets tutorial.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Child widgets tutorial.tid new file mode 100644 index 000000000..f6b1a63d1 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Child widgets tutorial.tid @@ -0,0 +1,140 @@ +created: 20190202160512541 +modified: 20190222231130254 +title: Child widgets tutorial +type: text/vnd.tiddlywiki + +\define showTrees(wikitext) +<table> +<thead> +<tr><th>wiki text</th><th>html</th><th>renders as</th></tr> +</thead> +<tbody> +<tr> +<td>`$wikitext$`</td> +<td> +<$wikify name=html text="""$wikitext$""" output=html mode=inline> +<$text text=<<html>>/> +</$wikify> +</td> +<td>$wikitext$</td> +</tr> +</tbody> +</table> + +<table> +<thead> +<tr><th>parse tree</th><th>widget tree</th></tr> +</thead> +<tbody> +<tr> +<td style="vertical-align: text-top"> +<pre><code> +<$wikify name=parsetree text="""$wikitext$""" output=parsetree mode=inline> +<<parsetree>> +</$wikify> +</code></pre> +</td> +<td style="vertical-align: text-top"> +<pre><code> +<$wikify name=widgettree text="""$wikitext$""" output=widgettree mode=inline> +<<widgettree>> +</$wikify> +</code></pre> +</td> +</tr> +</tbody> +</table> +\end + +! Introduction + +Until now the examples have covered only simple, leaf widgets, but widgets can be arranged into a hierarchy. Compared to a leaf-only widget, widget classes which support having children must contain code to instantiate the children. + +Not all widgets need to support having children. Widgets whose only purpose is to integrate third party javascript libraries, for example may not need it. + +! wiki text ⇨ parse tree ⇨ widget tree ⇨ DOM tree + +# [[wiki text|https://tiddlywiki.com/#WikiText]] - Users write content in tiddlers using wiki text. +# [[parse tree|https://tiddlywiki.com/dev/#ParsingMechanism]] - A parse tree is a JSON data structure describing the wiki text. Wiki text can be converted into a parse tree using `this.wiki.parseText`. +# ''widget tree'' - Most items in the parse tree correspond to one or more items in the widget tree. The `this.makeChildWidgets` method is used to convert the parse tree into a widget tree. +# [[DOM tree|https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction]] - A DOM tree is a standard javascript datastructure used by browsers to display a web page. The `this.renderChildren` method is used to instantiate the widget class and then render each widget in the widget tree. If a given widget will be visible in the browser, then one or more DOM nodes will be created. + +!Examples + +!! Simple trees without nesting + +[[Widgets in wiki text|https://tiddlywiki.com/#Widgets%20in%20WikiText]] have a syntax similar to html (i.e. `<$list/>`). But all [[wiki markup|https://tiddlywiki.com/#WikiText]] is seen by the tiddlywiki code as widgets. + +Even a simple string with no special syntax will be treated as a widget. In this case a widget of type `text`: + +<<showTrees """hello""">> + +The above bare string of text is mostly just a synonym for this widget syntax: + +<<showTrees """<$text text=hello/>""">> + +Some of the details of the parseTree and widgetTree are different in the two examples, but the general structure is the same and the rendered output is the same. + +In these two simple examples, there is no nesting and so no child widgets are created. + +!! Trees with one level of nesting + +This next example shows the structure for bold wiki syntax. It is still simple, but does introduce one level of nesting: `element`→`text` + +The wiki syntax for bold converts to the standard html element `strong`. Any standard html element is represented in tiddlywiki as a widget of type `element`: + +<<showTrees """''bold''""">> + +Another example showing one level of nesting (`link`→`text`): + +<<showTrees """<$link to=atiddler>link</$link>""">> + +!!Widgets with no DOM contribution +Not all widgets contribute items to the DOM. The purpose of some widgets is to affect the display of descendant widgets by changing some state. The `$set` widget for example sets a variable which will be accessible to the descendant widgets: + +<<showTrees """<$set name=myvar value=hi/>""">> + +Nothing is rendered and there is no html, but the parse tree and widget tree contain information about the variable. + +!! Dynamic widget children using this.wiki.parseText + +In all the examples so far, there has been a close mapping between the nesting structure of the parse tree and the widget tree. If the item is in the parse tree, then it is in the widget tree. If the parse tree item has children, then the widget tree has the same number of children. + +However, there are several examples of widgets in which more levels of nesting are created dynamically during the widget rendering process + +The `$macrocall` widget is one example: + +<<showTrees """<$macrocall $name=now/>""" >> + +The parse tree has just a single type=$macrocall element with no children. The widget tree has that same type=$macrocall element, but it also has a child widget which wasn't in the parse tree. + +In all cases, the `$macrocall` widget calls the given macro and then calls `this.wiki.parseText` on the output. This results in a new parse tree which is used to make the child widgets. + +In this particular case, the `now` macro is called. It returns a simple string of text, so when it is parsed the result causes the creation of a single child text widget containing the current date and time. + +!! Widgets which do not support nesting + +Just as some widgets can cause widget trees to have more nesting than the parse tree, some widgets can cause widget trees to have less nesting. + +This happens when there is no use for the widget to have any children. The `$text` widget, for example, has no use for displaying any descendants. + +This behavior is accomplished by not calling the `makeChildWidgets` method. Without that method call, the child widgets are not created from the child parse tree items. For example: + +<$macrocall $name=showTrees wikitext="""<$text text="hi">ignored child text</$text>"""/> + +Since the `$text` widget does not have a call to `makeChildWidgets`, 'ignored child text' above is present in the parse tree, but not in the widget tree. + +!Reference + +|!method|!when to call|!what it does| +|`makeChildWidgets`|directly or indirectly from `render` method|converts child parse tree items into widget tree items| +|`renderChildren`|directly or indirectly from `render` method, after the `makeChildWidgets` call|calls the `render` method of the child widget| +|`refreshChildren`|directly or indirectly from `refresh` method, only needed if `refreshSelf` is not called|calls the `refresh` method of of the child widgets so they can check if refresh is needed| +|`this.wiki.parseText`|pass the output parse tree to `makeChildWidgets`|converts the given text to a parse tree...only needed for dynamically constructed parsetree| + +|!example call|!purpose|!widgets using this approach| +|`this.makeChildWidgets()`|construct child widgets from the static parse tree|[[$link|$:/core/modules/widgets/link.js]], [[$button|$:/core/modules/widgets/button.js]], etc.| +|`this.makeChildWidgets(parseTreeNodes)`|construct child widgets from a dynamic parse tree|[[$list|$:/core/modules/widgets/list.js]], [[$transclude|$:/core/modules/widgets/transclude.js]], [[$macrocall|$:/core/modules/widgets/macrocall.js]], etc| +|`this.renderChildren(parent, nextSibling)`|when the widget adds nothing to the dom, just pass the `render` arguments through to the children|[[$set|$:/core/modules/widgets/set.js]], [[$importvariables|$:/core/modules/widgets/importvariables.js]], [[$tiddler|$:/core/modules/widgets/tiddler.js]], [[$wikify|$:/core/modules/widgets/wikify.js]], etc.| +|`this.renderChildren(domNode, null)`|passes the dom node generated by this widget into the children|[[$link|$:/core/modules/widgets/link.js]], [[$button|$:/core/modules/widgets/button.js]], etc| + diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Do nothing widget demo.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Do nothing widget demo.tid new file mode 100644 index 000000000..0d40db9c5 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Do nothing widget demo.tid @@ -0,0 +1,22 @@ +created: 20190201120100249 +modified: 20190201222600576 +tags: +title: Do nothing widget demo +type: text/vnd.tiddlywiki + +<!-- The innerwiki doesn't refresh on its own when tiddlers on the outside change, so use the list widget to force a dependency --> +<$list name=refresh filter=[[donothing.js]get[text]]> +<$innerwiki width="600" height="400" style="width:100%;"> + <$data title="$:/DefaultTiddlers" text="[[do nothing widget]]"/> + <$data $tiddler=donothing.js/> + <$data title="do nothing widget" text=""" +``` +<$donothing/> +``` + +Renders as: + +<$donothing/> +"""/> +</$innerwiki> +</$list> diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Do nothing widget tutorial.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Do nothing widget tutorial.tid new file mode 100644 index 000000000..2155ab528 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Do nothing widget tutorial.tid @@ -0,0 +1,25 @@ +created: 20190201232102417 +modified: 20190202145547621 +tags: +title: Do nothing widget tutorial +type: text/vnd.tiddlywiki + +In order to define a widget in a tiddler, the tiddler must satisfy these requirements: + +* type field is application/javascript +* module-type field is widget +* the text field contains the javascript code + +The [[donothing.js]] tiddler fulfills the requirements and its code looks like this: +{{donothing.js}} +That code does 2 key things: + +* Imports the core Widget class ([[$:/core/modules/widgets/widget.js]]) +* exports the class in an attribute with the name we want our widget to have (`donothing`) + +Here's what it looks like: +{{Do nothing widget demo}} +And it worked. No error message this time. + +''Exercise'': Modify [[donothing.js]] and [[Do nothing widget demo]] so the widget is named `noop` instead of `donothing` + diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Hello World demo.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Hello World demo.tid new file mode 100644 index 000000000..43c8cbfd7 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Hello World demo.tid @@ -0,0 +1,23 @@ +created: 20190201114718313 +modified: 20190201231556294 +tags: +title: Hello World demo +type: text/vnd.tiddlywiki + +<!-- The innerwiki doesn't refresh on its own when tiddlers on the outside change, so use the list widget to force a dependency --> +<$list name=refresh filter=[[hello.js]get[text]]> +<$innerwiki width="600" height="400" style="width:100%;"> + <$data title="$:/DefaultTiddlers" text="[[hello world widget]]"/> + <$data $tiddler=hello.js/> + <$data title="hello world widget" text=""" +``` +<$hello/> +``` + +Renders as: + +<$hello/> +"""/> + +</$innerwiki> +</$list> diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Hello World widget tutorial.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Hello World widget tutorial.tid new file mode 100644 index 000000000..e663255f1 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Hello World widget tutorial.tid @@ -0,0 +1,18 @@ +created: 20190201232200698 +modified: 20190216175629825 +tags: +title: Hello World widget tutorial +type: text/vnd.tiddlywiki + +Now let's create a widget which actually has output. + +When tiddlywiki encounters a widget definition like `<$hello>` it will create an object which is an instance of the class which is exported by the widget code. + +In addition to creating an instance of the class, tiddlywiki will call the render method of the resulting object. The render method is expected to create a dom node which will be display in place of the widget. + +In the `donothing` example the core widget was exported. The core widget class doesn't have a render method which creates a dom node and that's why there is no output. Getting output requires writing a widget class which inherits from the core `Widget` class. Code in the render method of this class will display the hello world message. + +The [[hello.js]] tiddler has code which accomplishes that: +{{hello.js}} +The code for importing the core widget class remains, but now we also have code to create our own class which inherits from it. In addition an implementation of the `render` method is included. Here is the result: +{{Hello World demo}} diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Javascript Widget Tutorial.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Javascript Widget Tutorial.tid new file mode 100644 index 000000000..f6ee01182 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Javascript Widget Tutorial.tid @@ -0,0 +1,37 @@ +created: 20190202035524804 +modified: 20221029161501848 +tags: +title: Javascript Widget Tutorial +type: text/vnd.tiddlywiki + +! Introduction +This tutorial provides step-by-step, interactive examples of how to write code for tiddlywiki widgets. The demo javascript code can be modified without having to reload the entire wiki. + +Intended audience: + +# Those who know tiddlywiki well and know programming and javascript and want to write their own widget. I don't make any effort to explain javascript here. For that you will need other resources. +# Those who know tiddlywiki well and don't know javascript, but want to understand more about how tiddlywiki works. You should be able to skim through and interact with the demos and learn something. + +!The tutorial +*[[Undefined widget tutorial]] +*[[Do nothing widget tutorial]] +*[[Hello World widget tutorial]] +*[[Widget refresh tutorial part I]] +*[[Widget refresh tutorial part II]] +*[[Widget refresh tutorial part III]] +*[[Widget attributes tutorial part I]] +*[[Widget attributes tutorial part II]] +*[[Child widgets tutorial]] + +! Notes + +tiddlywiki doesn't support dynamically reloading javascript. If you change a javascript tiddler, then you need to save and reload the wiki before the changes will take affect. + +To avoid the need for such reloads, the excellent [[innerwiki plugin|https://tiddlywiki.com/prerelease/plugins/tiddlywiki/innerwiki/]] is used. This allows an inner wiki to be created from a subset of tiddlers in the outer wiki. Each time the inner wiki is refreshed, its entire wiki is reloaded and the javascript changes in the inner wiki will take affect. + +Without the need for reloads, a tiddlywiki instance with the [[innerwiki plugin|https://tiddlywiki.com/prerelease/plugins/tiddlywiki/innerwiki/]] installed works great as a playground for interacting with tiddlywiki javascript. + +! Other documentation on writing TW widgets + +*WidgetModules +*[[Widgets]] \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Undefined widget demo.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Undefined widget demo.tid new file mode 100644 index 000000000..cadcf13bf --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Undefined widget demo.tid @@ -0,0 +1,18 @@ +created: 20190201212238781 +modified: 20190201213112748 +tags: +title: Undefined widget demo +type: text/vnd.tiddlywiki + +<$innerwiki width="600" height="400" style="width:100%;"> + <$data title="$:/DefaultTiddlers" text="[[Undefined widget]]"/> + <$data title="Undefined widget" text=""" +``` +<$donothing/> +``` + +Renders as: + +<$donothing/> +"""/> +</$innerwiki> diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Undefined widget tutorial.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Undefined widget tutorial.tid new file mode 100644 index 000000000..1d049b649 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Undefined widget tutorial.tid @@ -0,0 +1,11 @@ +created: 20190201232001970 +modified: 20190202145655413 +tags: +title: Undefined widget tutorial +type: text/vnd.tiddlywiki + +Let's start be defining a minimal widget which does nothing. It doesn't support any attributes, no child elements, and it doesn't output anything. The name of the widget will be `donothing`. If it does nothing, then how can we verify after writing the code that we accomplished anything? Well, let's see what happens when an undefined widget is referenced. + +{{Undefined widget demo}} + +Since we haven't written the code, the attempt to render the widget gives an undefined widget error. So we will know the donothing code accomplishes something if we don't get the undefined widget error when rendering. \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes demo I.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes demo I.tid new file mode 100644 index 000000000..78fb19967 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes demo I.tid @@ -0,0 +1,48 @@ +created: 20190204020507195 +modified: 20190204031520013 +tags: +title: Widget attributes demo I +type: text/vnd.tiddlywiki + +<!-- The innerwiki doesn't refresh on its own when tiddlers on the outside change, so use the list widget to force a dependency --> +<$list name=refresh filter=[[hello-attribute.js]get[text]]> +<$innerwiki width="600" height="400" style="width:100%;"> + <$data title="$:/DefaultTiddlers" text="[[hello world widget]]"/> + <$data $tiddler=hello-attribute.js/> + <$data title="hello world widget" text=""" +``` +<$hello/> +``` + +Renders as: + +<$hello/> + +--- + +``` +<$hello message="pale blue dot"/> +``` + +Renders as: + +<$hello message="pale blue dot"/> + +--- + +<$edit-text focus=yes tiddler=test tag=input/> + +``` +<$hello message={{test!!text}}/> +``` + +Renders as: + +<$hello message={{test!!text}}/> + +"""/> + + <$data title="test" text="Alice"/> + +</$innerwiki> +</$list> diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes demo II.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes demo II.tid new file mode 100644 index 000000000..334387e0b --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes demo II.tid @@ -0,0 +1,48 @@ +created: 20190205024953535 +modified: 20190205025028737 +tags: +title: Widget attributes demo II +type: text/vnd.tiddlywiki + +<!-- The innerwiki doesn't refresh on its own when tiddlers on the outside change, so use the list widget to force a dependency --> +<$list name=refresh filter=[[hello-attribute-optimized.js]get[text]]> +<$innerwiki width="600" height="400" style="width:100%;"> + <$data title="$:/DefaultTiddlers" text="[[hello world widget]]"/> + <$data $tiddler=hello-attribute-optimized.js/> + <$data title="hello world widget" text=""" +``` +<$hello/> +``` + +Renders as: + +<$hello/> + +--- + +``` +<$hello message="pale blue dot"/> +``` + +Renders as: + +<$hello message="pale blue dot"/> + +--- + +<$edit-text focus=yes tiddler=test tag=input/> + +``` +<$hello message={{test!!text}}/> +``` + +Renders as: + +<$hello message={{test!!text}}/> + +"""/> + + <$data title="test" text="Alice"/> + +</$innerwiki> +</$list> diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes tutorial part I.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes tutorial part I.tid new file mode 100644 index 000000000..9f9dfaad9 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes tutorial part I.tid @@ -0,0 +1,50 @@ +created: 20190202035425715 +modified: 20190205023518575 +tags: +title: Widget attributes tutorial part I +type: text/vnd.tiddlywiki + +So far none of the widgets we've implemented have had any code for handling widget attributes A vast majority of useful widgets will need to support attributes in order to make them useful. + +As an example, let's change the Hello World widget so it can greet not just the world, but whoever/whatever the user wants. To do that we can add support for an attribute named `what` and call it like `<$hello what="pale blue dot"/>`. + +The tiddlywiki widget class provides methods `computeAttributes` and `getAttribute` which can together be used by the widget code to discover what values are passed into the widget. + +The `computeAttributes` and `getAttribute` methods can be called like this (the second parameter to `getAttribute` will be used as the default value if the user doesn't provide that attribute in the widget call): + +```javascript +this.computeAttributes(); +var message = this.getAttribute("message", "World"); +``` + +Then the `message` variable can be used to construct the Hello XXX string: + +```javascript +var textNode = this.document.createTextNode("Hello, " + message + "!"); +``` + +The original [[hello.js]] code only implements a `render` method. The `refresh` method is not needed because the output from the widget can never be different...it will always be "Hello, World!". + +Even with a `message` attribute, you might think the `render` by itself is enough. After all, the value of the input parameter `message` can only be changed by modifying the wiki text which means the tiddler will be redisplayed from scratch. + +However, tiddlywiki has a syntax which allows parameter values to vary without modifying the wiki text. See https://tiddlywiki.com/#Widgets%20in%20WikiText for details. As one example, if the widget were called like `<$hello message={{MyTiddler!!field}}/>`, then every time the `field` field of `MyTiddler` were modified, only the `refresh` method would be called. Therefore, in order to get the widget display to update, the refresh method needs to be implemented. + +If the `computeAttributes` and `getAttribute` calls are placed in the `render` method then we can implement a performance unoptimized version of refresh as was done in [[Widget refresh tutorial part II]]: + +```javascript +/* +A widget with optimized performance will selectively refresh, but here we refresh always +*/ +MyWidget.prototype.refresh = function(changedTiddlers) { + // Regenerate and rerender the widget and + // replace the existing DOM node + this.refreshSelf(); + return true; +}; +``` + +The full code can be seen at [[hello-attribute.js]] and here is the result ([[Widget attributes demo I]]): + +{{Widget attributes demo I}} + +The third example above is the only one which requires the refresh method in order to behave properly. diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes tutorial part II.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes tutorial part II.tid new file mode 100644 index 000000000..bc0c25fc2 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget attributes tutorial part II.tid @@ -0,0 +1,33 @@ +created: 20190205023543910 +modified: 20190217012121130 +tags: +title: Widget attributes tutorial part II +type: text/vnd.tiddlywiki + +This example will build on the previous one. The only modification will be to add a check to the `refresh` method. The `refreshSelf` will only be called if a change to the attributes is detected. + +The `computeAttributes` method returns a Javascript object containing properties for each attribute which has changed. So a check like `if (changedAttributes.attr1 || changedAttributes.attr2 || changedAttributes.attr3)` etc. can be used to detect the change. See the refresh method in [[$:/core/modules/widgets/view.js]] for an example showing the check for multiple attributes. + +For this example, `message` is the only attribute implemented. + +```javascript +/* +Refresh if the attribute value changed since render +*/ +MyWidget.prototype.refresh = function(changedTiddlers) { + // Find which attributes have changed + var changedAttributes = this.computeAttributes(); + if (changedAttributes.message) { + this.refreshSelf(); + return true; + } else { + return false; + } +}; +``` + +The full code can be seen at [[hello-attribute-optimized.js]] and here is the result ([[Widget attributes demo II]]): + +{{Widget attributes demo II}} + +The visible behavior here should be identical to the unoptimized behavior of the previous tutorial. diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo I.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo I.tid new file mode 100644 index 000000000..0040093e3 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo I.tid @@ -0,0 +1,44 @@ +created: 20190201233806976 +modified: 20221029194854112 +tags: +title: Widget refresh demo I +type: text/vnd.tiddlywiki + +<!-- The innerwiki doesn't refresh on its own when tiddlers on the outside change, so use the list widget to force a dependency --> +<$list name=refresh filter=[[tiddlerfield-norefresh.js]get[text]]> +<$innerwiki width="600" height="400" style="width:100%;"> + <$data title="$:/DefaultTiddlers" text="[[tiddler field widget]]"/> + <$data title="test" text="type new text here"/> + <$data $tiddler=tiddlerfield-norefresh.js/> + <$data title="tiddler field widget" text=""" +<$edit-text focus=yes tiddler=test tag=input/> +<$button set="!!refresh" setTo={{test}}>Force refresh</$button> +<$list filter="[{!!refresh}]"> + +<div> +<div style="display:inline-block;width: 49%;vertical-align: text-top;word-wrap: break-word;}"> + +``` +<$tiddlerfield/> +``` + +Renders as: + +<$tiddlerfield/> +</div> +<div style="display:inline-block;width: 49%;vertical-align: text-top;word-wrap: break-word;}"> + +``` +<$view tiddler="test"/> +``` + +Renders as: + +<$view tiddler="test"/> +</div> +</div> +</$list> +"""/> + +</$innerwiki> +</$list> diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo II.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo II.tid new file mode 100644 index 000000000..60997a9ca --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo II.tid @@ -0,0 +1,40 @@ +created: 20190202032354223 +modified: 20190217005540498 +tags: +title: Widget refresh demo II +type: text/vnd.tiddlywiki + +<!-- The innerwiki doesn't refresh on its own when tiddlers on the outside change, so use the list widget to force a dependency --> +<$list name=refresh filter=[[tiddlerfield.js]get[text]]> +<$innerwiki width="600" height="400" style="width:100%;"> + <$data title="$:/DefaultTiddlers" text="[[tiddler field widget]]"/> + <$data title="test" text="type new text here"/> + <$data $tiddler=tiddlerfield.js/> + <$data title="tiddler field widget" text=""" +<$edit-text focus=yes tiddler=test tag=input/> + +<div> +<div style="display:inline-block;width: 49%;vertical-align: text-top;word-wrap: break-word;}"> + +``` +<$tiddlerfield/> +``` + +Renders as: + +<$tiddlerfield/> +</div> +<div style="display:inline-block;width: 49%;vertical-align: text-top;word-wrap: break-word;}"> + +``` +<$view tiddler="test"/> +``` + +Renders as: + +<$view tiddler="test"/> +</div> +"""/> + +</$innerwiki> +</$list> diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo III.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo III.tid new file mode 100644 index 000000000..0c6fec3dd --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh demo III.tid @@ -0,0 +1,50 @@ +created: 20190202122928187 +modified: 20190216191939585 +tags: +title: Widget refresh demo III +type: text/vnd.tiddlywiki + +<!-- The innerwiki doesn't refresh on its own when tiddlers on the outside change, so use the list widget to force a dependency --> +<$list name=refresh filter=[[refreshcount.js]get[text]]> +<$innerwiki width="600" height="400" style="width:100%;"> + <$data title="$:/DefaultTiddlers" text="[[refresh count widget]]"/> + <$data title="test" text="Text field of tiddler='test'"/> + <$data $tiddler=refreshcount.js/> + <$data title="refresh count widget" text=""" + +*<$button set="test!!test" setTo="hello">Modify a different tiddler</$button> +*<$button set="!!test" setTo="hello">Modify this tiddler</$button> +*<$edit-text focus=yes tiddler=test tag=input/> + +<div> +<div style="display:inline-block;width: 49%;vertical-align: text-top;word-wrap: break-word;}"> + +``` +<$refreshcount/> +``` + +Renders as: + +<$refreshcount/> +</div> + +<div style="display:inline-block;width: 49%;vertical-align: text-top;word-wrap: break-word;}"> + +``` +<$list filter="[[test]get[text]]"> +<<currentTiddler>><br> +<$refreshcount/> +</$list> +``` + +Renders as: + +<$list filter="[[test]get[text]]"> +<<currentTiddler>><br> +<$refreshcount/> +</$list> +"""/> +</div> +</div> +</$innerwiki> +</$list> diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part I.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part I.tid new file mode 100644 index 000000000..4665e6535 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part I.tid @@ -0,0 +1,47 @@ +created: 20190201232847949 +modified: 20221029203553291 +tags: +title: Widget refresh tutorial part I +type: text/vnd.tiddlywiki + +But what if we want to display dynamic content? How can we display information and keep it up to date as it changes? Let's display the content of a tiddler field. + +The [[tiddlerfield-norefresh.js]] which defines the `tiddlerfield` widget is almost the same as [[hello.js]] except for this part: + +```javascript +MyWidget.prototype.render = function(parent,nextSibling) { + this.parentDomNode = parent; + var text = this.wiki.getTiddlerText("test", "<empty>") + var textNode = this.document.createTextNode(text); + parent.insertBefore(textNode,nextSibling); + this.domNodes.push(textNode); +}; +``` + +Instead of creating the text dom node from a static string, the text field of the `test` tiddler is used. This is similar to using the view widget like this: `<$view tiddler="test"/>` + +Here's how it looks (see [[Widget refresh demo I]] to look at the code): + +{{Widget refresh demo I}} + +Notice if you change the text in the input box, the output from the `tiddlerfield` widget doesn't change, but the output of the `view` widget does. Only after the ''Force refresh'' button is clicked does the output of `tiddlerfield` update to match the input box contents. + +What's going on here? The render method of the widget code is only called by tiddlywiki core when the widget is first created. After that, it isn't called again unless the widget is completely destroyed and then created again. + +The tiddlywiki ~ViewWidget has a properly written `refresh` method so typing in the input box will cause its content to update. However, the `tiddlerfield` widget does not have a `refresh` method at all. It has no way of being notified that the `test` tiddler content has changed. Its output will not change until the ''Force refresh'' button is clicked. + +See the next example for an implementation of the `refresh` method for the `tiddlerfield` widget. + +The code for the refresh button looks like this: + +``` +<$button set="!!refresh" setTo={{test}}>Force refresh</$button> +``` + +and the widgets are enclosed in a list widget like this: + +``` +<$list filter="[{!!refresh}]">...</$list> +``` + +When the button is clicked the field `refresh` in the containing tiddler is modified and it causes the children of the list widget to be created from scratch. The render method is called and the output of the `tiddlerfield` widget updates. diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part II.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part II.tid new file mode 100644 index 000000000..dfb86a640 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part II.tid @@ -0,0 +1,37 @@ +created: 20190201232910076 +modified: 20190217014335419 +tags: +title: Widget refresh tutorial part II +type: text/vnd.tiddlywiki + +This example is like [[Widget refresh tutorial part I]] except the widget output will be automatically refreshed when the tiddler field changes. + +[[tiddlerfield.js]] is the same as [[tiddlerfield-norefresh.js]], except this `refresh` method is added: + +```javascript +/* +A widget with optimized performance will selectively refresh, but here we refresh always +*/ +MyWidget.prototype.refresh = function(changedTiddlers) { + // Regenerate and rerender the widget and + // replace the existing DOM node + this.refreshSelf(); + return true; +}; +``` + +The `refreshSelf` method called above is implemented by the core widget class and it takes care of cleaning the old dom node and calling the render function. + +Here is the result ([[Widget refresh demo II]]): + +{{Widget refresh demo II}} + +And now any typing into the input box will cause both the `tiddlerfield` and the `view` widget output to refresh immediately. + +Note this is a naive version of `refresh`. It unconditionally refreshes itself. This is far from optimal since the `refresh` method for all visible widgets is called every time the tiddler store changes. But the way we've defined our widget, the output ONLY depends on the tiddler titled `text`. + +In tiddlywiki the tiddler store is used for everything and almost any interaction will result in an update to the store. This means almost any interaction will cause the refresh method to be called. If you type into the search box, for example, the `tiddlerfield` widget will be refreshed with every keystroke. + +Adding and removing dom elements is a relatively expensive operation, so if someone has used the list widget to create a few hundred instances of this widget, then such tiddlywiki interactions might gain a noticable lag. Therefore, it usually makes sense to avoid modifying the dom when possible by writing a smarter `refresh` method. + +''Exercise'' - change the refresh method above to only call `refreshSelf` when the `changedTiddlers` input array contains `test` as one of its entries (Hint: see the refresh method in $:/core/modules/widgets/view.js for an example). diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part III.tid b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part III.tid new file mode 100644 index 000000000..f8729b784 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/Widget refresh tutorial part III.tid @@ -0,0 +1,26 @@ +created: 20190202034841184 +modified: 20221029201023638 +tags: +title: Widget refresh tutorial part III +type: text/vnd.tiddlywiki + +This tutorial is intended to demonstrate a few examples of when calls to the `refresh` method happen vs. when a widget is recreated from scratch. + +This is accomplished with a [[refreshcount.js]] widget which sets a counter to zero when the widget is created and increments the counter every time the `refresh` method is called. Here is the full code: + +{{refreshcount.js}} + +These are the key parts of the code from above: + +```javascript +this.refreshCount = 0; +this.document.createTextNode(this.refreshCount + " refreshes"); +this.refreshCount++; +``` + +In the following example (see [[Widget refresh demo III]] for the code), two instances of the `refreshcount` widget are created. One at the top level and the other inside a list widget whose filter results depend on the value in the `text` field of the `test` widget. The tiddler store can be modified in a few ways via two buttons and an input box: +{{Widget refresh demo III}} + +* ''Modify a different tiddler'' - every time this button is clicked, both counters increment, indicating the `refresh` method is being called +* ''Modify this tiddler'' - clicking this button modifies the tiddler itself. In earlier ~TiddlyWiki versions that caused both widgets to be recreated from scratch and the counters are thereby reset to zero. Since [[version 5.2.0|https://tiddlywiki.com/#Release%205.2.0]] modifying another field in this tiddler does not cause the widgets to be recreated and the counters are not reset. +* ''Text field of tiddler='test''' - typing text into the input box causes the counter in the standalone `refreshcount` widget to be incremented. But the other instance of the widget is embedded inside a list widget whose filter output depends on the value of the tiddler field which is being modified. This causes it to recreate its children from scratch and the counter is reset every time. So with every keystroke, the counter on the left is incremented, but the counter on the right goes to/stays at zero. \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/domwidget.js b/editions/dev/tiddlers/javascript-widget-tutorial/domwidget.js new file mode 100644 index 000000000..243839764 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/domwidget.js @@ -0,0 +1,47 @@ +/*\ + +Library function for creating widget using a dom creating function + +\*/ +(function() { + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +function createDomWidget(domCreatorFunction) { + + var MyWidget = function(parseTreeNode, options) { + this.initialise(parseTreeNode, options); + }; + + /* + Inherit from the base widget class + */ + MyWidget.prototype = new Widget(); + + /* + Render this widget into the DOM + */ + MyWidget.prototype.render = function(parent, nextSibling) { + this.parentDomNode = parent; + var domNode = domCreatorFunction(this.document); + parent.insertBefore(domNode, nextSibling); + this.domNodes.push(domNode); + }; + + /* + A widget with optimized performance will selectively refresh, but here we refresh always + */ + MyWidget.prototype.refresh = function(changedTiddlers) { + // Regenerate and rerender the widget and replace the existing DOM node + this.refreshSelf(); + return true; + }; + + return MyWidget; +} +module.exports = createDomWidget; +})(); diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/domwidget.js.meta b/editions/dev/tiddlers/javascript-widget-tutorial/domwidget.js.meta new file mode 100644 index 000000000..55235998f --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/domwidget.js.meta @@ -0,0 +1,6 @@ +created: 20190201025244440 +modified: 20190201030708723 +module-type: library +tags: +title: domwidget.js +type: application/javascript \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/donothing.js b/editions/dev/tiddlers/javascript-widget-tutorial/donothing.js new file mode 100644 index 000000000..b1899b645 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/donothing.js @@ -0,0 +1,16 @@ +/*\ + +Do nothing widget + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +exports.donothing = Widget; + +})(); diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/donothing.js.meta b/editions/dev/tiddlers/javascript-widget-tutorial/donothing.js.meta new file mode 100644 index 000000000..a8e70b03c --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/donothing.js.meta @@ -0,0 +1,6 @@ +created: 20190201115945945 +modified: 20190201222441271 +module-type: widget +tags: +title: donothing.js +type: application/javascript \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute-optimized.js b/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute-optimized.js new file mode 100644 index 000000000..71cec1762 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute-optimized.js @@ -0,0 +1,51 @@ +/*\ + +Hello, World widget + +\*/ +(function() { + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +var MyWidget = function(parseTreeNode, options) { + this.initialise(parseTreeNode, options); +}; + +/* +Inherit from the base widget class +*/ +MyWidget.prototype = new Widget(); + +/* +Render this widget into the DOM +*/ +MyWidget.prototype.render = function(parent, nextSibling) { + this.parentDomNode = parent; + this.computeAttributes(); + var message = this.getAttribute("message", "World"); + var textNode = this.document.createTextNode("Hello, " + message + "!"); + parent.insertBefore(textNode, nextSibling); + this.domNodes.push(textNode); +}; + +/* +Refresh if the attribute value changed since render +*/ +MyWidget.prototype.refresh = function(changedTiddlers) { + // Find which attributes have changed + var changedAttributes = this.computeAttributes(); + if (changedAttributes.message) { + this.refreshSelf(); + return true; + } else { + return false; + } +}; + +exports.hello = MyWidget; + +})(); diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute-optimized.js.meta b/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute-optimized.js.meta new file mode 100644 index 000000000..e195f4bfa --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute-optimized.js.meta @@ -0,0 +1,6 @@ +created: 20190205024846183 +modified: 20190205025110882 +module-type: widget +tags: +title: hello-attribute-optimized.js +type: application/javascript \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute.js b/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute.js new file mode 100644 index 000000000..3e91aa122 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute.js @@ -0,0 +1,47 @@ +/*\ + +Hello, World widget + +\*/ +(function() { + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +var MyWidget = function(parseTreeNode, options) { + this.initialise(parseTreeNode, options); +}; + +/* +Inherit from the base widget class +*/ +MyWidget.prototype = new Widget(); + +/* +Render this widget into the DOM +*/ +MyWidget.prototype.render = function(parent, nextSibling) { + this.parentDomNode = parent; + this.computeAttributes(); + var message = this.getAttribute("message", "World"); + var textNode = this.document.createTextNode("Hello, " + message + "!"); + parent.insertBefore(textNode, nextSibling); + this.domNodes.push(textNode); +}; + +/* +A widget with optimized performance will selectively refresh, but here we refresh always +*/ +MyWidget.prototype.refresh = function(changedTiddlers) { + // Regenerate and rerender the widget and + // replace the existing DOM node + this.refreshSelf(); + return true; +}; + +exports.hello = MyWidget; + +})(); diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute.js.meta b/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute.js.meta new file mode 100644 index 000000000..008086c2a --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/hello-attribute.js.meta @@ -0,0 +1,6 @@ +created: 20190204020011193 +modified: 20190204030332147 +module-type: widget +tags: +title: hello-attribute.js +type: application/javascript \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/hello.js b/editions/dev/tiddlers/javascript-widget-tutorial/hello.js new file mode 100644 index 000000000..91afbd8f4 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/hello.js @@ -0,0 +1,35 @@ +/*\ + +Hello, World widget + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +var MyWidget = function(parseTreeNode,options) { + this.initialise(parseTreeNode,options); +}; + +/* +Inherit from the base widget class +*/ +MyWidget.prototype = new Widget(); + +/* +Render this widget into the DOM +*/ +MyWidget.prototype.render = function(parent,nextSibling) { + this.parentDomNode = parent; + var textNode = this.document.createTextNode("Hello, World!"); + parent.insertBefore(textNode,nextSibling); + this.domNodes.push(textNode); +}; + +exports.hello = MyWidget; + +})(); diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/hello.js.meta b/editions/dev/tiddlers/javascript-widget-tutorial/hello.js.meta new file mode 100644 index 000000000..2518f08ec --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/hello.js.meta @@ -0,0 +1,6 @@ +created: 20190201114558816 +modified: 20190201224846870 +module-type: widget +tags: +title: hello.js +type: application/javascript \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/refreshcount.js b/editions/dev/tiddlers/javascript-widget-tutorial/refreshcount.js new file mode 100644 index 000000000..b8ee53d89 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/refreshcount.js @@ -0,0 +1,43 @@ +/*\ + +widget to count the number of times this widget refreshes + +\*/ +(function() { + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +var MyWidget = function(parseTreeNode, options) { + this.refreshCount = 0; + this.initialise(parseTreeNode, options); +}; + +/* +Inherit from the base widget class +*/ +MyWidget.prototype = new Widget(); + +/* +Render this widget into the DOM +*/ +MyWidget.prototype.render = function(parent, nextSibling) { + this.parentDomNode = parent; + var textNode = this.document.createTextNode(this.refreshCount + " refreshes"); + parent.insertBefore(textNode, nextSibling); + this.domNodes.push(textNode); +}; + +MyWidget.prototype.refresh = function(changedTiddlers) { + // Regenerate and rerender the widget and replace the existing DOM node + this.refreshCount++; + this.refreshSelf(); + return true; +}; + +exports.refreshcount = MyWidget; + +})(); diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/refreshcount.js.meta b/editions/dev/tiddlers/javascript-widget-tutorial/refreshcount.js.meta new file mode 100644 index 000000000..86831cb85 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/refreshcount.js.meta @@ -0,0 +1,6 @@ +created: 20190201005026324 +modified: 20190202143451303 +module-type: widget +tags: +title: refreshcount.js +type: application/javascript \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield-norefresh.js b/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield-norefresh.js new file mode 100644 index 000000000..59f179b5d --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield-norefresh.js @@ -0,0 +1,36 @@ +/*\ + +Hello, World widget + +\*/ +(function() { + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +var MyWidget = function(parseTreeNode, options) { + this.initialise(parseTreeNode, options); +}; + +/* +Inherit from the base widget class +*/ +MyWidget.prototype = new Widget(); + +/* +Render this widget into the DOM +*/ +MyWidget.prototype.render = function(parent, nextSibling) { + this.parentDomNode = parent; + var text = this.wiki.getTiddlerText("test", "<empty>") + var textNode = this.document.createTextNode(text); + parent.insertBefore(textNode, nextSibling); + this.domNodes.push(textNode); +}; + +exports.tiddlerfield = MyWidget; + +})(); diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield-norefresh.js.meta b/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield-norefresh.js.meta new file mode 100644 index 000000000..bab1ed0cb --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield-norefresh.js.meta @@ -0,0 +1,6 @@ +created: 20190201233714872 +modified: 20190202030615781 +module-type: widget +tags: +title: tiddlerfield-norefresh.js +type: application/javascript \ No newline at end of file diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield.js b/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield.js new file mode 100644 index 000000000..c19e84f60 --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield.js @@ -0,0 +1,46 @@ +/*\ + +Hello, World widget + +\*/ +(function() { + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var Widget = require("$:/core/modules/widgets/widget.js").widget; + +var MyWidget = function(parseTreeNode, options) { + this.initialise(parseTreeNode, options); +}; + +/* +Inherit from the base widget class +*/ +MyWidget.prototype = new Widget(); + +/* +Render this widget into the DOM +*/ +MyWidget.prototype.render = function(parent, nextSibling) { + this.parentDomNode = parent; + var text = this.wiki.getTiddlerText("test", "<empty>") + var textNode = this.document.createTextNode(text); + parent.insertBefore(textNode, nextSibling); + this.domNodes.push(textNode); +}; + +/* +A widget with optimized performance will selectively refresh, but here we refresh always +*/ +MyWidget.prototype.refresh = function(changedTiddlers) { + // Regenerate and rerender the widget and + // replace the existing DOM node + this.refreshSelf(); + return true; +}; + +exports.tiddlerfield = MyWidget; + +})(); diff --git a/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield.js.meta b/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield.js.meta new file mode 100644 index 000000000..b5160e75a --- /dev/null +++ b/editions/dev/tiddlers/javascript-widget-tutorial/tiddlerfield.js.meta @@ -0,0 +1,6 @@ +created: 20190202032530728 +modified: 20190202032700995 +module-type: widget +tags: +title: tiddlerfield.js +type: application/javascript \ No newline at end of file diff --git a/editions/dev/tiddlywiki.info b/editions/dev/tiddlywiki.info index 186ff45ee..1a8207f1e 100644 --- a/editions/dev/tiddlywiki.info +++ b/editions/dev/tiddlywiki.info @@ -5,7 +5,8 @@ "tiddlywiki/nodewebkitsaver", "tiddlywiki/github-fork-ribbon", "tiddlywiki/menubar", - "tiddlywiki/internals" + "tiddlywiki/internals", + "tiddlywiki/innerwiki" ], "themes": [ "tiddlywiki/vanilla", From f54ecc23f3562a7931334576a7a02ab4f7cedf3c Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 31 Oct 2022 12:03:47 +0000 Subject: [PATCH 053/937] Fix wikification of tiddler titles in advanced search filter dropdown Closes #7017 Thanks @ericshulman --- core/ui/AdvancedSearch/FilterButtons/dropdown.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/ui/AdvancedSearch/FilterButtons/dropdown.tid b/core/ui/AdvancedSearch/FilterButtons/dropdown.tid index b5c3c2ecc..b1d400aeb 100644 --- a/core/ui/AdvancedSearch/FilterButtons/dropdown.tid +++ b/core/ui/AdvancedSearch/FilterButtons/dropdown.tid @@ -15,7 +15,7 @@ tags: $:/tags/AdvancedSearch/FilterButton <div class="tc-block-dropdown-wrapper"> <div class="tc-block-dropdown tc-edit-type-dropdown"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/Filter]]"> -<$link to={{!!filter}}><$transclude field="description"/></$link> +<$link to={{!!filter}}><$let tv-wikilinks="no"><$transclude field="description"/></$let></$link> </$list> </div> </div> From 30af537b9102369ed70213dad42ec5361c4c985e Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 1 Nov 2022 09:45:08 +0000 Subject: [PATCH 054/937] Update release note --- editions/prerelease/tiddlers/Release 5.2.4.tid | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index 9c5ae019b..f6da952af 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -1,6 +1,6 @@ caption: 5.2.4 -created: 20221017165036377 -modified: 20221017165036377 +created: 20221101094408196 +modified: 20221101094408196 tags: ReleaseNotes title: Release 5.2.4 type: text/vnd.tiddlywiki @@ -49,6 +49,7 @@ Improvements to the translation features of TiddlyWiki: ! Hackability Improvements +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6976">> support for [[SystemTag: $:/tags/ClassFilters/TiddlerTemplate]] and [[SystemTag: $:/tags/ClassFilters/PageTemplate]] to assign dynamic CSS classes to both tiddler frames and the page template * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]] and [[format Operator]] * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/c5d3d4c26e8fe27f272dda004aec27d6b66c4f60">> safe mode to disable wiki store indexers * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/166a1565843878083fb1eba47c73b8e67b78400d">> safe mode to prevent globally disabling parser rules @@ -60,6 +61,8 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/fb34df84ed41882c1c2a6ff54f0e908b43ef95a3">> "new image" keyboard shortcut not to assign journal tags * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6987">> SelectWidget class to update if it uses a filter +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6303">> issue with availability of variables within filter runs +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7017">> issue with wikification within the advanced search filter dropdown ! Developer Improvements From 8fe2f6086dc1829152ffa2fe866cf7f032eb4b18 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 1 Nov 2022 09:48:08 +0000 Subject: [PATCH 055/937] Update release notes credits --- editions/prerelease/tiddlers/Release 5.2.4.tid | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index f6da952af..b80ecd52a 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -84,14 +84,20 @@ Improvements to the translation features of TiddlyWiki: <<.contributors """ bestony +btheado BramChen +EvidentlyCube +FlashSystems flibbles fu-sen +joebordes +hoelzro Marxsal oflg pmario rmunn roma0104 +saqimtiaz tw-FRed twMat xcazin From 62f26d6630e4668af2c33b481230ae421ae6779e Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 1 Nov 2022 10:07:54 +0000 Subject: [PATCH 056/937] Improve genesis widget examples --- editions/prerelease/tiddlers/Release 5.2.4.tid | 2 +- .../tw5.com/tiddlers/widgets/GenesisWidget.tid | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index b80ecd52a..3f38343a8 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -34,8 +34,8 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d62a16ee464fb9984b766b48504829a1a3eb143b">> problem with long presses on tiddler links triggering a preview on iOS/iPadOS * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6910">> consistency of button and input elements across browsers * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d825f1c875f5e46158c9c41c8c66471138c162d1">> edit preview to use the [[View Template Body Cascade]] -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6970">> detection of infinite recursion errors in widgets and filters * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/36896c3db8c9678c0385a561996248a6f00a45ff">> opening a tiddler in a new window to use the [[View Template Body Cascade]] +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6970">> detection of infinite recursion errors in widgets and filters * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6877">> default styles for [[styled runs|Styles and Classes in WikiText]] ! Widget Improvements diff --git a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid index 9b324e8fa..a9d2cf713 100644 --- a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid @@ -1,6 +1,6 @@ caption: genesis -created: 20220924140702430 -modified: 20220924140702430 +created: 20221101100729587 +modified: 20221101100729587 tags: Widgets title: GenesisWidget type: text/vnd.tiddlywiki @@ -27,3 +27,15 @@ Note that attributes explicitly specified take precedence over attributes with t <$macrocall $name='wikitext-example-without-html' src='<$genesis $type="div" class="tc-thing" label="Squeak">Mouse</$genesis>'/> + +<$macrocall $name='wikitext-example-without-html' +src="""\define my-banner(mode:"inline",caption) +<$genesis $type={{{ [<__mode__>match[inline]then[span]else[div]] }}} class="tc-mybanner"> +<<__caption__>> +</$genesis> +\end + +<<my-banner caption:"I'm in a SPAN">> + +<<my-banner mode:"block" caption:"I'm in a DIV">> +"""/> From 3be9b1381472c8e096cb23d175094e85af36507b Mon Sep 17 00:00:00 2001 From: Cameron Fischer <fischer.cameron@gmail.com> Date: Wed, 2 Nov 2022 13:26:08 -0400 Subject: [PATCH 057/937] Fix for #4767: lazy-loading deletes tiddler bodies (#7014) --- core/modules/server/routes/put-tiddler.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/modules/server/routes/put-tiddler.js b/core/modules/server/routes/put-tiddler.js index ed3b48fcc..ff1bd2737 100644 --- a/core/modules/server/routes/put-tiddler.js +++ b/core/modules/server/routes/put-tiddler.js @@ -30,6 +30,16 @@ exports.handler = function(request,response,state) { if(fields.revision) { delete fields.revision; } + // If this is a skinny tiddler, it means the client never got the full + // version of the tiddler to edit. So we must preserve whatever text + // already exists on the server, or else we'll inadvertently delete it. + if(fields._is_skinny !== undefined) { + var tiddler = state.wiki.getTiddler(title); + if(tiddler) { + fields.text = tiddler.fields.text; + } + delete fields._is_skinny; + } state.wiki.addTiddler(new $tw.Tiddler(fields,{title: title})); var changeCount = state.wiki.getChangeCount(title).toString(); response.writeHead(204, "OK",{ From 965bd090a905f5756e79124b698c894f7f72ad5b Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 5 Nov 2022 09:10:31 +0000 Subject: [PATCH 058/937] list-links macro: add "field" parameter See https://talk.tiddlywiki.org/t/choosing-what-field-to-show-with-list-links/5039?u=jeremyruston --- core/wiki/macros/list.tid | 12 ++++++------ editions/tw5.com/tiddlers/macros/ListMacro.tid | 4 +++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/core/wiki/macros/list.tid b/core/wiki/macros/list.tid index 2856f3c32..6b6a32b10 100644 --- a/core/wiki/macros/list.tid +++ b/core/wiki/macros/list.tid @@ -1,21 +1,21 @@ title: $:/core/macros/list tags: $:/tags/Macro -\define list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage) +\define list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage,field:"caption") \whitespace trim -<$type$ class="$class$"> +<$genesis $type=<<__type__>> class=<<__class__>>> <$list filter="$filter$" emptyMessage=<<__emptyMessage__>>> -<$subtype$> +<$genesis $type=<<__subtype__>>> <$link to={{!!title}}> <$let tv-wikilinks="no"> -<$transclude field="caption"> +<$transclude field=<<__field__>>> <$view field="title"/> </$transclude> </$let> </$link> -</$subtype$> +</$genesis> </$list> -</$type$> +</$genesis> \end \define list-links-draggable-drop-actions() diff --git a/editions/tw5.com/tiddlers/macros/ListMacro.tid b/editions/tw5.com/tiddlers/macros/ListMacro.tid index 7ee39ee12..21eb169dc 100644 --- a/editions/tw5.com/tiddlers/macros/ListMacro.tid +++ b/editions/tw5.com/tiddlers/macros/ListMacro.tid @@ -1,6 +1,6 @@ caption: list-links created: 20140917083515996 -modified: 20190206000000000 +modified: 20221105090835041 tags: Macros [[Core Macros]] title: list-links Macro type: text/vnd.tiddlywiki @@ -15,6 +15,8 @@ Note: Each first [[step|Filter Step]] of a [[filter run|Filter Run]] not given a ;filter : A [[filter|Filters]] selecting which tiddlers to include +;caption +: The name of the field to transclude for each list item, defaultingt to `caption` ;type : An HTML element to use for the overall list element, defaulting to `ul` ;subtype From e8148ff97808546d8d3fbe05e7d67e44f0d88316 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 5 Nov 2022 09:41:43 +0000 Subject: [PATCH 059/937] Missed off 965bd090a905f5756e79124b698c894f7f72ad5b Thanks @pmario @saqimtiaz --- core/wiki/macros/list.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/wiki/macros/list.tid b/core/wiki/macros/list.tid index 6b6a32b10..2d82b601a 100644 --- a/core/wiki/macros/list.tid +++ b/core/wiki/macros/list.tid @@ -4,7 +4,7 @@ tags: $:/tags/Macro \define list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage,field:"caption") \whitespace trim <$genesis $type=<<__type__>> class=<<__class__>>> -<$list filter="$filter$" emptyMessage=<<__emptyMessage__>>> +<$list filter=<<__filter__>> emptyMessage=<<__emptyMessage__>>> <$genesis $type=<<__subtype__>>> <$link to={{!!title}}> <$let tv-wikilinks="no"> From ae12e8fb69a494b650490587da815281ff28e6a7 Mon Sep 17 00:00:00 2001 From: tw-FRed <95534072+tw-FRed@users.noreply.github.com> Date: Sat, 5 Nov 2022 18:44:41 +0100 Subject: [PATCH 060/937] Help Plugin: Update links to community resources (#7023) * Promote Talk TiddlyWiki * Change link to GG to https --- plugins/tiddlywiki/help/tabs/Support.tid | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/tiddlywiki/help/tabs/Support.tid b/plugins/tiddlywiki/help/tabs/Support.tid index 3a5e955d7..0e3bc25f3 100644 --- a/plugins/tiddlywiki/help/tabs/Support.tid +++ b/plugins/tiddlywiki/help/tabs/Support.tid @@ -4,9 +4,13 @@ caption: Support ~TiddlyWiki is an open source project with a vibrant community of users and developers. We're always happy to help new users get the most from ~TiddlyWiki. -Join the ~TiddlyWiki mailing list: +Join the ~TiddlyWiki forum: -http://groups.google.com/group/TiddlyWiki +https://talk.tiddlywiki.org/ + +For the convenience of existing users, we also continue to operate the original TiddlyWiki group (hosted on Google Groups since 2005): + +https://groups.google.com/group/TiddlyWiki Post bug reports to the ~TiddlyWiki ~GitHub repository: From 72f06581b6b178ad8c085ad8179f127a5235cf17 Mon Sep 17 00:00:00 2001 From: Xavier Cazin <cazinx@gmail.com> Date: Tue, 8 Nov 2022 19:09:42 +0100 Subject: [PATCH 061/937] More consistency in fr-FR captions for cascade examples in ControlPanel (#7025) --- languages/fr-FR/ControlPanel.multids | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/languages/fr-FR/ControlPanel.multids b/languages/fr-FR/ControlPanel.multids index 0f93509bd..0a8248773 100644 --- a/languages/fr-FR/ControlPanel.multids +++ b/languages/fr-FR/ControlPanel.multids @@ -36,7 +36,7 @@ EditorTypes/Hint: Ces tiddlers déterminent l'éditeur à utiliser pour éditer EditorTypes/Type/Caption: Type EditTemplateBody/Caption: Édition du corps EditTemplateBody/Hint: Cette cascade de règles est utilisée par le template d'édition par défaut pour choisir dynamiquement le template à appliquer pour éditer le corps d'un tiddler. -FieldEditor/Caption: Éditeur de champ +FieldEditor/Caption: Édition des champs FieldEditor/Hint: Cette cascade de règles sert à choisir dynamiquement le template de rendu d'un champ de tiddler en fonction de son nom. Il est utilisé dans le template d'édition. Info/Caption: Info Info/Hint: Information sur ce TiddlyWiki @@ -198,7 +198,7 @@ Settings/TitleLinks/Yes/Description: Afficher les titres des tiddlers comme des Settings/MissingLinks/Caption: Liens wiki Settings/MissingLinks/Hint: Peut-on pointer vers des tiddlers qui n'existent pas encore ? Settings/MissingLinks/Description: Active les liens vers les tiddlers inexistants -StoryTiddler/Caption: Tiddler dans le déroulé +StoryTiddler/Caption: Tiddlers du déroulé StoryTiddler/Hint: Cette cascade de règles sert à choisir dynamiquement le template d'affichage d'un tiddler dans le déroulé. StoryView/Caption: Vue sur le déroulé StoryView/Prompt: Vue courante : @@ -227,5 +227,5 @@ Toolbars/ViewToolbar/Hint: Choix des boutons à afficher pour les tiddlers en mo Tools/Download/Full/Caption: Télécharger le wiki complet ViewTemplateBody/Caption: Visualisation du corps ViewTemplateBody/Hint: Cette cascade de règles est utilisée par le template de visualisation par défaut pour choisir dynamiquement le template d'affichage du corps d'un tiddler. -ViewTemplateTitle/Caption: Template de visualisation du titre +ViewTemplateTitle/Caption: Visualisation du titre ViewTemplateTitle/Hint: Cette cascade de règles est utilisée par le template de visualisation par défaut pour choisir dynamiquement le template d'affichage du titre d'un tiddler. From 344110e2890caf711ab8f3c4f4deaa7d86771231 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 9 Nov 2022 13:56:28 +0000 Subject: [PATCH 062/937] Rearrange ordering of MP4 extension so that it defaults to video not audio Previously using the --load command to import an MP4 file would cause it to be recognised as autio/mp4 instead of video/mp4 --- boot/boot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot/boot.js b/boot/boot.js index 6bfa6495a..c64b881f4 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -2403,11 +2403,11 @@ $tw.boot.initStartup = function(options) { $tw.utils.registerFileType("application/x-font-ttf","base64",".woff"); $tw.utils.registerFileType("application/font-woff2","base64",".woff2"); $tw.utils.registerFileType("audio/ogg","base64",".ogg"); + $tw.utils.registerFileType("audio/mp4","base64",[".mp4",".m4a"]); $tw.utils.registerFileType("video/ogg","base64",[".ogm",".ogv",".ogg"]); $tw.utils.registerFileType("video/webm","base64",".webm"); $tw.utils.registerFileType("video/mp4","base64",".mp4"); $tw.utils.registerFileType("audio/mp3","base64",".mp3"); - $tw.utils.registerFileType("audio/mp4","base64",[".mp4",".m4a"]); $tw.utils.registerFileType("text/markdown","utf8",[".md",".markdown"],{deserializerType:"text/x-markdown"}); $tw.utils.registerFileType("text/x-markdown","utf8",[".md",".markdown"]); $tw.utils.registerFileType("application/enex+xml","utf8",".enex"); From fedc23d73cce7cb79047fe6769e1f6999acfb40d Mon Sep 17 00:00:00 2001 From: Jeremy Ruston <jeremy@jermolene.com> Date: Sat, 12 Nov 2022 17:09:31 +0000 Subject: [PATCH 063/937] Introduce Twitter Archivist Plugin --- bin/build-site.sh | 9 + .../tiddlers/DefaultTiddlers.tid | 3 + .../twitter-archivist/tiddlers/HelloThere.tid | 3 + .../tiddlers/SiteSubtitle.tid | 3 + .../twitter-archivist/tiddlers/SiteTitle.tid | 3 + editions/twitter-archivist/tiddlywiki.info | 16 ++ .../tiddlywiki/twitter-archivist/archivist.js | 264 ++++++++++++++++++ .../configTiddlerInfoMode.tid | 2 + .../twitter-archivist/loadtwitterarchive.js | 53 ++++ .../tiddlywiki/twitter-archivist/macros.tid | 204 ++++++++++++++ .../tiddlywiki/twitter-archivist/plugin.info | 6 + .../tiddlywiki/twitter-archivist/readme.tid | 55 ++++ .../tiddlywiki/twitter-archivist/startup.js | 38 +++ .../tiddlywiki/twitter-archivist/styles.tid | 47 ++++ .../twitter-archivist/template-archive.tid | 3 + .../twitter-archivist/template-tweet.tid | 3 + .../twitter-archivist/template-tweeter.tid | 3 + .../view-template-body-cascade.tid | 7 + 18 files changed, 722 insertions(+) create mode 100644 editions/twitter-archivist/tiddlers/DefaultTiddlers.tid create mode 100644 editions/twitter-archivist/tiddlers/HelloThere.tid create mode 100644 editions/twitter-archivist/tiddlers/SiteSubtitle.tid create mode 100644 editions/twitter-archivist/tiddlers/SiteTitle.tid create mode 100644 editions/twitter-archivist/tiddlywiki.info create mode 100644 plugins/tiddlywiki/twitter-archivist/archivist.js create mode 100644 plugins/tiddlywiki/twitter-archivist/configTiddlerInfoMode.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/loadtwitterarchive.js create mode 100644 plugins/tiddlywiki/twitter-archivist/macros.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/plugin.info create mode 100644 plugins/tiddlywiki/twitter-archivist/readme.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/startup.js create mode 100644 plugins/tiddlywiki/twitter-archivist/styles.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/template-archive.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/template-tweet.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/template-tweeter.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/view-template-body-cascade.tid diff --git a/bin/build-site.sh b/bin/build-site.sh index eca15dd63..0dff6d0b1 100755 --- a/bin/build-site.sh +++ b/bin/build-site.sh @@ -233,6 +233,15 @@ node $TW5_BUILD_TIDDLYWIKI \ --build index \ || exit 1 +# /editions/twitter-archivist/index.html Twitter Archivist edition +node $TW5_BUILD_TIDDLYWIKI \ + ./editions/twitter-archivist \ + --verbose \ + --load $TW5_BUILD_OUTPUT/build.tid \ + --output $TW5_BUILD_OUTPUT/editions/twitter-archivist/ \ + --build index \ + || exit 1 + ###################################################### # # Plugin demos diff --git a/editions/twitter-archivist/tiddlers/DefaultTiddlers.tid b/editions/twitter-archivist/tiddlers/DefaultTiddlers.tid new file mode 100644 index 000000000..a3c362aff --- /dev/null +++ b/editions/twitter-archivist/tiddlers/DefaultTiddlers.tid @@ -0,0 +1,3 @@ +title: $:/DefaultTiddlers + +HelloThere \ No newline at end of file diff --git a/editions/twitter-archivist/tiddlers/HelloThere.tid b/editions/twitter-archivist/tiddlers/HelloThere.tid new file mode 100644 index 000000000..d1bb60ca7 --- /dev/null +++ b/editions/twitter-archivist/tiddlers/HelloThere.tid @@ -0,0 +1,3 @@ +title: HelloThere + +{{$:/plugins/tiddlywiki/twitter-archivist/readme}} diff --git a/editions/twitter-archivist/tiddlers/SiteSubtitle.tid b/editions/twitter-archivist/tiddlers/SiteSubtitle.tid new file mode 100644 index 000000000..d6b1cd1d4 --- /dev/null +++ b/editions/twitter-archivist/tiddlers/SiteSubtitle.tid @@ -0,0 +1,3 @@ +title: $:/SiteTitle + +Get Your Tweets Into ~TiddlyWiki \ No newline at end of file diff --git a/editions/twitter-archivist/tiddlers/SiteTitle.tid b/editions/twitter-archivist/tiddlers/SiteTitle.tid new file mode 100644 index 000000000..910c8747d --- /dev/null +++ b/editions/twitter-archivist/tiddlers/SiteTitle.tid @@ -0,0 +1,3 @@ +title: $:/SiteTitle + +Twitter Archivist \ No newline at end of file diff --git a/editions/twitter-archivist/tiddlywiki.info b/editions/twitter-archivist/tiddlywiki.info new file mode 100644 index 000000000..681467706 --- /dev/null +++ b/editions/twitter-archivist/tiddlywiki.info @@ -0,0 +1,16 @@ +{ + "description": "Twitter Archivist Edition", + "plugins": [ + "tiddlywiki/twitter-archivist" + ], + "languages": [ + ], + "themes": [ + "tiddlywiki/vanilla", + "tiddlywiki/snowwhite" + ], + "build": { + "index": [ + "--rendertiddler","$:/core/save/all","index.html","text/plain"] + } +} \ No newline at end of file diff --git a/plugins/tiddlywiki/twitter-archivist/archivist.js b/plugins/tiddlywiki/twitter-archivist/archivist.js new file mode 100644 index 000000000..2162ee556 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/archivist.js @@ -0,0 +1,264 @@ +/*\ +title: $:/plugins/tiddlywiki/twitter-archivist/archivist.js +type: application/javascript +module-type: utils + +Utility class for manipulating Twitter archives + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +function TwitterArchivist(options) { + options = options || {}; + this.source = options.source; +} + +TwitterArchivist.prototype.loadArchive = async function(options) { + options = options || {}; + const wiki = options.wiki; + await this.source.init(); + // Process the manifest and profile + const manifestData = await this.loadTwitterJsData("data/manifest.js","window.__THAR_CONFIG = ",""), + profileData = await this.loadTwitterJsData("data/profile.js","window.YTD.profile.part0 = ",""), + accountData = await this.loadTwitterJsData("data/account.js","window.YTD.account.part0 = ",""), + username = manifestData.userInfo.userName, + user_id = manifestData.userInfo.accountId; + wiki.addTiddler({ + title: "Twitter Archive for @" + username, + tags: "$:/tags/TwitterArchive", + user_id: user_id, + username: username, + displayname: manifestData.userInfo.displayName, + generation_date: $tw.utils.stringifyDate(new Date(manifestData.archiveInfo.generationDate)), + account_created_date: $tw.utils.stringifyDate(new Date(accountData[0].account.createdAt)), + bio: profileData[0].profile.description.bio, + website: profileData[0].profile.description.website, + location: profileData[0].profile.description.location + }); + // Process the media + await this.source.processFiles("data/tweets_media","base64",function(mediaItem) { + var ext = mediaItem.filename.split(".").slice(-1)[0]; + if("jpg png".split(" ").indexOf(ext) !== -1) { + var extensionInfo = $tw.utils.getFileExtensionInfo("." + ext), + type = extensionInfo ? extensionInfo.type : null; + wiki.addTiddler({ + title: "Tweet Media - " + mediaItem.filename, + tags: "$:/tags/TweetMedia", + status_id: mediaItem.filename.split("-")[0], + text: mediaItem.contents, + type: type + }); + } + }); + // Process the favourites + const likeData = await this.loadTwitterJsData("data/like.js","window.YTD.like.part0 = ",""); + $tw.utils.each(likeData,function(like) { + // Create the tweet tiddler + var tiddler = { + title: "Tweet - " + like.like.tweetId, + text: "\\rules only html entity extlink\n" + (like.like.fullText || "").replace("\n","<br>"), + status_id: like.like.tweetId, + liked_by: user_id, + tags: "$:/tags/Tweet" + }; + wiki.addTiddler(tiddler); + }); + // Process the tweets + const tweetData = await this.loadTwitterJsData("data/tweets.js","window.YTD.tweets.part0 = ",""); + $tw.utils.each(tweetData,function(tweet) { + // Compile the tags for the tweet + var tags = ["$:/tags/Tweet"]; + // Create tiddlers for each mentioned tweeter, and hyperlink the mention in the test + var rawText = tweet.tweet.full_text, + posText = 0, + text = ""; + var mentions = []; + $tw.utils.each(tweet.tweet.entities.user_mentions,function(mention) { + var title = "Tweeter - " + mention.id_str; + tags.push(title); + wiki.addTiddler({ + title: title, + screenname: "@" + mention.screen_name, + tags: "$:/tags/Tweeter", + user_id: mention.id_str, + name: mention.name + }); + text = text + + $tw.utils.htmlEncode(rawText.substring(posText,mention.indices[0])) + + "<$link to=\"" + title + "\">" + + $tw.utils.htmlEncode(rawText.substring(mention.indices[0],mention.indices[1])) + + "</$link>"; + posText = mention.indices[1]; + mentions.push(mention.id_str); + }); + if(posText < rawText.length) { + text = text + $tw.utils.htmlEncode(rawText.substring(posText)); + } + text = text.replace("\n","<br>"); + // Create the tweet tiddler + var tiddler = { + title: "Tweet - " + tweet.tweet.id_str, + text: "\\rules only html entity extlink\n" + text, + status_id: tweet.tweet.id_str, + user_id: user_id, + favorite_count: tweet.tweet.favorite_count, + retweet_count: tweet.tweet.retweet_count, + tags: tags, + created: $tw.utils.stringifyDate(new Date(tweet.tweet.created_at)), + modified: $tw.utils.stringifyDate(new Date(tweet.tweet.created_at)) + }; + if(tweet.tweet.in_reply_to_status_id_str) { + tiddler.in_reply_to_status_id = tweet.tweet.in_reply_to_status_id_str; + } + if(mentions.length > 0) { + tiddler.mention_user_ids = $tw.utils.stringifyList(mentions); + } + wiki.addTiddler(tiddler); + }); +}; + +TwitterArchivist.prototype.loadTwitterJsData = async function(filePath,prefix,suffix) { + var tweetFileData = await this.source.loadTwitterJsData(filePath); + if(prefix) { + if(tweetFileData.slice(0,prefix.length) !== prefix) { + throw "Reading Twitter JS file " + filePath + " missing prefix '" + prefix + "'"; + } + tweetFileData = tweetFileData.slice(prefix.length); + } + if(suffix) { + if(tweetFileData.slice(-suffix.length) !== suffix) { + throw "Reading Twitter JS file " + filePath + " missing suffix '" + suffix + "'"; + } + tweetFileData = tweetFileData.slice(0,tweetFileData.length - suffix.length); + } + return JSON.parse(tweetFileData); +}; + +function TwitterArchivistSourceNodeJs(options) { + options = options || {}; + this.archivePath = options.archivePath; +} + +TwitterArchivistSourceNodeJs.prototype.init = async function() { +}; + +TwitterArchivistSourceNodeJs.prototype.processFiles = async function(dirPath,encoding,callback) { + var fs = require("fs"), + path = require("path"), + dirPath = path.resolve(this.archivePath,dirPath), + filenames = fs.readdirSync(dirPath); + $tw.utils.each(filenames,function(filename) { + callback({ + filename: filename, + contents: fs.readFileSync(path.resolve(dirPath,filename),encoding) + }); + }); +}; + +TwitterArchivistSourceNodeJs.prototype.loadTwitterJsData = async function(filePath) { + var fs = require("fs"), + path = require("path"); + return fs.readFileSync(path.resolve(this.archivePath,filePath),"utf8"); +}; + +function TwitterArchivistSourceBrowser(options) { + options = options || {}; +} + +TwitterArchivistSourceBrowser.prototype.init = async function() { + // Open directory + this.rootDirHandle = await window.showDirectoryPicker(); +}; + +TwitterArchivistSourceBrowser.prototype.processFiles = async function(dirPath,encoding,callback) { + const dirHandle = await this.walkDirectory(dirPath.split("/")); + for await (const [filename, fileHandle] of dirHandle.entries()) { + const contents = await fileHandle.getFile(); + callback({ + filename: filename, + contents: arrayBufferToBase64(await contents.arrayBuffer()) + }); + } +}; + +TwitterArchivistSourceBrowser.prototype.loadTwitterJsData = async function(filePath) { + const filePathParts = filePath.split("/"); + const dirHandle = await this.walkDirectory(filePathParts.slice(0,-1)); + const fileHandle = await dirHandle.getFileHandle(filePathParts.slice(-1)[0]); + const contents = await fileHandle.getFile(); + return await contents.text(); +}; + +TwitterArchivistSourceBrowser.prototype.walkDirectory = async function(arrayDirectoryEntries) { + var entries = arrayDirectoryEntries.slice(0), + dirHandle = this.rootDirHandle; + while(entries.length > 0) { + dirHandle = await dirHandle.getDirectoryHandle(entries[0]); + entries.shift(); + } + return dirHandle; +}; + +// Thanks to MatheusFelipeMarinho +// https://github.com/MatheusFelipeMarinho/venom/blob/43ead0bfffa57a536a5cff67dd909e55da9f0915/src/lib/wapi/helper/array-buffer-to-base64.js#L55 +function arrayBufferToBase64(arrayBuffer) { + var base64 = ''; + var encodings = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + + var bytes = new Uint8Array(arrayBuffer); + var byteLength = bytes.byteLength; + var byteRemainder = byteLength % 3; + var mainLength = byteLength - byteRemainder; + + var a, b, c, d; + var chunk; + + // Main loop deals with bytes in chunks of 3 + for (var i = 0; i < mainLength; i = i + 3) { + // Combine the three bytes into a single integer + chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; + + // Use bitmasks to extract 6-bit segments from the triplet + a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18 + b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12 + c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6 + d = chunk & 63; // 63 = 2^6 - 1 + + // Convert the raw binary segments to the appropriate ASCII encoding + base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]; + } + + // Deal with the remaining bytes and padding + if (byteRemainder == 1) { + chunk = bytes[mainLength]; + + a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2 + + // Set the 4 least significant bits to zero + b = (chunk & 3) << 4; // 3 = 2^2 - 1 + + base64 += encodings[a] + encodings[b] + '=='; + } else if (byteRemainder == 2) { + chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]; + + a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10 + b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4 + + // Set the 2 least significant bits to zero + c = (chunk & 15) << 2; // 15 = 2^4 - 1 + + base64 += encodings[a] + encodings[b] + encodings[c] + '='; + } + return base64; +} + +exports.TwitterArchivist = TwitterArchivist; +exports.TwitterArchivistSourceNodeJs = TwitterArchivistSourceNodeJs; +exports.TwitterArchivistSourceBrowser = TwitterArchivistSourceBrowser; + +})(); diff --git a/plugins/tiddlywiki/twitter-archivist/configTiddlerInfoMode.tid b/plugins/tiddlywiki/twitter-archivist/configTiddlerInfoMode.tid new file mode 100644 index 000000000..3b3716299 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/configTiddlerInfoMode.tid @@ -0,0 +1,2 @@ +title: $:/config/TiddlerInfo/Mode +text: sticky diff --git a/plugins/tiddlywiki/twitter-archivist/loadtwitterarchive.js b/plugins/tiddlywiki/twitter-archivist/loadtwitterarchive.js new file mode 100644 index 000000000..497b82bf5 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/loadtwitterarchive.js @@ -0,0 +1,53 @@ +/*\ +title: $:/plugins/tiddlywiki/twitter-archivist/loadtwitterarchive.js +type: application/javascript +module-type: command + +Read tiddlers from an unzipped Twitter archive + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var widget = require("$:/core/modules/widgets/widget.js"); + +exports.info = { + name: "loadtwitterarchive", + synchronous: false +}; + +var Command = function(params,commander,callback) { + this.params = params; + this.commander = commander; + this.callback = callback; +}; + +Command.prototype.execute = function() { + var self = this; + if(this.params.length < 1) { + return "Missing path to Twitter archive"; + } + var archivePath = this.params[0]; + // Load tweets + var archiveSource = new $tw.utils.TwitterArchivistSourceNodeJs({ + archivePath: archivePath + }), + archivist = new $tw.utils.TwitterArchivist({ + source: archiveSource + }); + archivist.loadArchive({ + wiki: this.commander.wiki + }).then(function() { + self.callback(null); + }).catch(function(err) { + self.callback(err); + }); + return null; +}; + +exports.Command = Command; + +})(); diff --git a/plugins/tiddlywiki/twitter-archivist/macros.tid b/plugins/tiddlywiki/twitter-archivist/macros.tid new file mode 100644 index 000000000..c0003274d --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/macros.tid @@ -0,0 +1,204 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/macros +tags: $:/tags/Macro + +\define skinny-tabs(tabNames,tabCaptions,defaultTab,state) +<$let + currTab={{{ [<__state__>get[text]else<__defaultTab__>] }}} +> + <div class="tc-tab-set"> + <div class="tc-tab-buttons"> + <$list filter="[enlist<__tabNames__>]" variable="tab" counter="tabCounter"> + <$let + caption={{{ [enlist<__tabCaptions__>nth<tabCounter>] }}} + > + <$list filter="[<tab>match<currTab>]" variable="ignore"> + <$button aria-checked="true" class="tc-tab-selected" role="switch"> + <$action-setfield $tiddler=<<__state__>> $value=<<tab>>/> + <$text text=<<caption>>/> + </$button> + </$list> + <$list filter="[<tab>!match<currTab>]" variable="ignore"> + <$button role="switch"> + <$action-setfield $tiddler=<<__state__>> $value=<<tab>>/> + <$text text=<<caption>>/> + </$button> + </$list> + </$let> + </$list> + </div> + <div class="tc-tab-divider"></div> + <div class="tc-tab-content"> + <$list filter="[enlist<__tabNames__>]" variable="tab" counter="tabCounter"> + <$list filter="[<tab>match<currTab>]" variable="ignore"> + <div class="tc-reveal"> + <$macrocall $name=<<currTab>>/> + </div> + </$list> + <$list filter="[<tab>!match<currTab>]" variable="ignore"> + <div class="tc-reveal" hidden="true"></div> + </$list> + </$list> + </div> + </div> +</$let> +\end + +\define list-archives() +\whitespace trim +<ul> +<$list filter="[tag[$:/tags/TwitterArchive]sort[displayname]]"> + <li> + <$link><$text text=<<currentTiddler>>/></$link> + </li> +</$list> +</ul> +\end + +\define show-archive() +<$let + user_id={{!!user_id}} +> + <div class="tc-twitter-archive"> + <table> + <tbody> + <<show-archive-attribute "Username" "username" prefix:"@">> + <<show-archive-attribute "Display Name" "displayname">> + <<show-archive-attribute "Bio" "bio">> + <<show-archive-attribute "Location" "location">> + <<show-archive-attribute "Website" "website">> + <<show-archive-calculated-attribute "Number of Tweets" "[tag[$:/tags/Tweet]field:user_id<user_id>count[]]">> + <<show-archive-calculated-attribute "Number of Favorites Received" "[tag[$:/tags/Tweet]field:user_id<user_id>] :reduce[<currentTiddler>get[favorite_count]else[0]add<accumulator>]">> + <<show-archive-calculated-attribute "Number of Retweets Received" "[tag[$:/tags/Tweet]field:user_id<user_id>] :reduce[<currentTiddler>get[retweet_count]else[0]add<accumulator>]">> + <<show-archive-calculated-attribute "Number of Tweeters Mentioned" "[tag[$:/tags/Tweeter]count[]]">> + <<show-archive-attribute "User ID" "user_id">> + <<show-archive-attribute "Account Creation Date" "account_created_date" format:"date" template:"DDth mmm YYYY 0hh:0mm:0ss">> + <<show-archive-attribute "Archive Generation Date" "generation_date" format:"date" template:"DDth mmm YYYY 0hh:0mm:0ss">> + </tbody> + </table> + <$macrocall $name="skinny-tabs" tabNames="show-archive-tweets show-favorited-tweets" tabCaptions="Tweets Favourites" defaultTab="show-archive-tweets" state=<<qualify "$:/state/skinny-tabs/archive">>/> + </div> +</$let> +\end + +\define show-archive-tweets() +<$let user_id={{!!user_id}}> + <$list filter="[tag[$:/tags/Tweet]field:user_id<user_id>!sort[created]limit[50]]"> + <<show-tweet>> + </$list> +</$let> +\end + +\define show-favorited-tweets() +<$let user_id={{!!user_id}}> + <$list filter="[tag[$:/tags/Tweet]field:liked_by<user_id>limit[50]]"> + <<show-tweet>> + </$list> +</$let> +\end + +\define show-archive-attribute(caption,field,prefix,format:"text",template) +<tr> + <th> + <$text text=<<__caption__>>/> + </th> + <td> + <$text text={{{ [<__prefix__>] }}}/> + <$view field=<<__field__>> format=<<__format__>> template=<<__template__>>/> + </td> +</tr> +\end + +\define show-archive-calculated-attribute(caption,filter) +<tr> + <th> + <$text text=<<__caption__>>/> + </th> + <td> + <$text text={{{ [subfilter<__filter__>] }}}/> + </td> +</tr> +\end + +\define show-tweet() +<div class="tc-twitter-tweet"> + <div class="tc-twitter-tweet-header"> + <$let user_id={{{ [<__archive__>get[user_id]] }}}> + <$list filter="[{!user_id}match<user_id>]" variable="ignore"> + <span class="tc-twitter-tweet-header-displayname"> + <$text text={{{ [<__archive__>get[displayname]] }}}/> + </span> + <span class="tc-twitter-tweet-header-username"> + @<$text text={{{ [<__archive__>get[username]] }}}/> + </span> + • + </$list> + </$let> + <$link to=<<currentTiddler>>> + <span class="tc-twitter-tweet-header-date"> + <$view field="created" format="date" template="DDth mmm YYYY 0hh:0mm:0ss"/> + </span> + </$link> + </div> + <$list filter="[<__title__>get[in_reply_to_status_id]addprefix[Tweet - ]is[tiddler]]" variable="replyTo"> + <div class="tc-twitter-tweet-reply-to"> + Reply to <$link to=<<replyTo>>><$text text=<<replyTo>>/></$link> + </div> + </$list> + <div class="tc-twitter-tweet-body"> + <$transclude field="text"/> + </div> + <div class="tc-twitter-tweet-media"> + <$let status_id={{!!status_id}}> + <$list filter="[tag[$:/tags/TweetMedia]field:status_id<status_id>]" variable="mediaItem"> + <$transclude tiddler=<<mediaItem>>/> + </$list> + </$let> + </div> + <div class="tc-twitter-tweet-footer"> + <$list filter="[<currentTiddler>has[retweet_count]]" variable="ignore"> + <span class="tc-twitter-tweet-footer-retweets"> + Retweets: <$view field="retweet_count" format="text"/> + </span> + </$list> + <$list filter="[<currentTiddler>has[favorite_count]]" variable="ignore"> + <span class="tc-twitter-tweet-footer-likes"> + Likes: <$view field="favorite_count" format="text"/> + </span> + </$list> + <span class="tc-twitter-tweet-footer-twitter-link"> + <a href={{{ [{!!status_id}addprefix[https://twitter.com/i/web/status/]] }}} rel="noopener noreferrer" target="_blank">View on Twitter</a> + </span> + </div> +</div> +\end + +\define show-tweet-thread(archive) +<div class="tc-twitter-tweet-thread"> + <$list filter="[<currentTiddler>has[in_reply_to_status_id]]" variable="ignore"> + <div class="tc-twitter-tweet-reply"> + <$tiddler tiddler={{{ [<currentTiddler>get[in_reply_to_status_id]addprefix[Tweet - ]] }}}> + <$macrocall $name="show-tweet"/> + </$tiddler> + </div> + </$list> + <$macrocall $name="show-tweet"/> +</div> +\end + +\define show-tweeter() +<table> + <tbody> + <tr><th>Username</th><td><$text text={{!!screenname}}/></td></tr> + <tr><th>Display Name</th><td><$text text={{!!name}}/></td></tr> + <tr><th>User ID</th><td><$text text={{!!user_id}}/></td></tr> + </tbody> +</table> +<a href={{{ [{!!user_id}addprefix[https://twitter.com/intent/user?user_id=]] }}} rel="noopener noreferrer" target="_blank">View on Twitter</a> +<$macrocall $name="skinny-tabs" tabNames="show-tweeter-mentions" tabCaptions="Mentions" defaultTab="show-tweeter-mentions" state=<<qualify "$:/state/skinny-tabs/tweeter-mentions">>/> +\end + +\define show-tweeter-mentions() +<$list filter="[tag[$:/tags/Tweet]tag<currentTiddler>]"> + <$macrocall $name="show-tweet" archive=<<currentTiddler>> title=<<currentTiddler>>/> +</$list> +\end diff --git a/plugins/tiddlywiki/twitter-archivist/plugin.info b/plugins/tiddlywiki/twitter-archivist/plugin.info new file mode 100644 index 000000000..016e746e7 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/plugin.info @@ -0,0 +1,6 @@ +{ + "title": "$:/plugins/tiddlywiki/twitter-archivist", + "name": "Twitter Archivist", + "description": "Twitter archiving tools", + "list": "readme" +} diff --git a/plugins/tiddlywiki/twitter-archivist/readme.tid b/plugins/tiddlywiki/twitter-archivist/readme.tid new file mode 100644 index 000000000..f5dad5e6f --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/readme.tid @@ -0,0 +1,55 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/readme + +! Introduction + +The Twitter Archivist imports the tweets and associated media from a [[Twitter Archive|https://help.twitter.com/en/managing-your-account/how-to-download-your-twitter-archive]] as individual tiddlers. + +The Twitter Archivist plugin is available from the official plugin library for installation in your own wikis. + +! Limitations + +This initial version of the Twitter Archivist has several shortcomings that may be addressed in the future: + +* Does not handle editable tweets +* Does not handle direct messages + +! Limitations of Twitter Archives + +The Twitter Archive format itself has many shortcomings which affect this tool: + +* Retweets come through as old-school RTs, which means that they are often truncated +* Likes only have minimal information, lacking date, author and mentions +* External links go to the t.co shortener +* Twitter archives can be delivered in multiple parts, but this tool has only been tested with single archives. It is hoped that cumulatively importing each of the archives in turn should work + +A future version of this tool may use the Twitter API to get around these restrictions. + +! Getting Started + +First, request your Tweet archive from Twitter. Once it is available, download and unzip it. + +The Twitter Archivist can operate in the browser or under Node.js. + +!! In the Browser + +To import a Twitter archive in the browser, click the button below and navigate to the root of the archive: + +<$button> +<$action-sendmessage $message="tm-load-twitter-archive"/> +Open Twitter archive +</$button> + +!! Under Node.js + +To import a Twitter archive under Node.js, use the `--loadtwitterarchive` command: + +``` +tiddlywiki editions/twitter-archivist/ --loadtwitterarchive '/path/to/archive' --build index +``` + +! Imported Archives + +Any imported archives will show here: + +<<list-archives>> + diff --git a/plugins/tiddlywiki/twitter-archivist/startup.js b/plugins/tiddlywiki/twitter-archivist/startup.js new file mode 100644 index 000000000..b87453dda --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/startup.js @@ -0,0 +1,38 @@ +/*\ +title: $:/plugins/tiddlywiki/twitter-archivist/startup.js +type: application/javascript +module-type: startup + +Twitter initialisation + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +// Export name and synchronous status +exports.name = "twitter-archivist"; +exports.after = ["startup"]; +exports.synchronous = true; + +exports.startup = function() { + $tw.rootWidget.addEventListener("tm-load-twitter-archive",function(event) { + // Load tweets + var archiveSource = new $tw.utils.TwitterArchivistSourceBrowser({ + }), + archivist = new $tw.utils.TwitterArchivist({ + source: archiveSource + }); + archivist.loadArchive({ + wiki: $tw.wiki + }).then(function() { + alert("Archived tweets imported"); + }).catch(function(err) { + alert("Error importing archived tweets: " + err); + }); + }); +}; + +})(); diff --git a/plugins/tiddlywiki/twitter-archivist/styles.tid b/plugins/tiddlywiki/twitter-archivist/styles.tid new file mode 100644 index 000000000..7ed95a0c1 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/styles.tid @@ -0,0 +1,47 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/styles +tags: [[$:/tags/Stylesheet]] +code-body: yes + +\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock + +.tc-twitter-tweet { + border: 1px solid <<colour muted-foreground>>; + border-radius: 8px; + margin: 1em 0; + padding: 1em; +} + +.tc-twitter-tweet-reply { + font-size: 0.7em; +} + +.tc-twitter-tweet-reply .tc-twitter-tweet { + margin: 0.5em 0 0.5em 1em; + padding: 0.5em; +} + +.tc-twitter-tweet-header-displayname { + font-weight: bold; +} + +.tc-twitter-tweet-header-username, +.tc-twitter-tweet-header-date { + color: #536471; +} + +.tc-twitter-tweet-reply-to { + font-size: 0.7em; +} + +.tc-twitter-tweet-body { + margin: 0.25em 0; + line-height: 1.3; +} + +.tc-twitter-tweet-reply .tc-twitter-tweet-body { + margin: 0.5em 0; +} + +.tc-twitter-tweet-footer { + font-size: 0.8em; +} \ No newline at end of file diff --git a/plugins/tiddlywiki/twitter-archivist/template-archive.tid b/plugins/tiddlywiki/twitter-archivist/template-archive.tid new file mode 100644 index 000000000..40e2c7100 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/template-archive.tid @@ -0,0 +1,3 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/template/archive + +<<show-archive>> diff --git a/plugins/tiddlywiki/twitter-archivist/template-tweet.tid b/plugins/tiddlywiki/twitter-archivist/template-tweet.tid new file mode 100644 index 000000000..48d0d023b --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/template-tweet.tid @@ -0,0 +1,3 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/template/tweet + +<<show-tweet-thread>> diff --git a/plugins/tiddlywiki/twitter-archivist/template-tweeter.tid b/plugins/tiddlywiki/twitter-archivist/template-tweeter.tid new file mode 100644 index 000000000..bff644922 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/template-tweeter.tid @@ -0,0 +1,3 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/template/tweeter + +<<show-tweeter>> diff --git a/plugins/tiddlywiki/twitter-archivist/view-template-body-cascade.tid b/plugins/tiddlywiki/twitter-archivist/view-template-body-cascade.tid new file mode 100644 index 000000000..ffc18c3d4 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/view-template-body-cascade.tid @@ -0,0 +1,7 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/view-template-body-cascade +tags: $:/tags/ViewTemplateBodyFilter +list-before: + +[tag[$:/tags/Tweet]then[$:/plugins/tiddlywiki/twitter-archivist/template/tweet]] +[tag[$:/tags/TwitterArchive]then[$:/plugins/tiddlywiki/twitter-archivist/template/archive]] +[tag[$:/tags/Tweeter]then[$:/plugins/tiddlywiki/twitter-archivist/template/tweeter]] From 34353f40654946048dfec59d63fc7e9c0a86e700 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 13 Nov 2022 11:18:47 +0000 Subject: [PATCH 064/937] Twitter Archivist: Fix display of tweet author Also: * Cleaner user interface * Added data model spec * Added todo list * Icons for archives --- .../tiddlers/DefaultTiddlers.tid | 3 +- .../twitter-archivist/tiddlers/HelloThere.tid | 8 ++- .../twitter-archivist/Twitter Archives.tid | 5 ++ .../tiddlywiki/twitter-archivist/archivist.js | 2 + .../tiddlywiki/twitter-archivist/macros.tid | 43 +++++++------ .../tiddlywiki/twitter-archivist/plugin.info | 2 +- .../tiddlywiki/twitter-archivist/readme.tid | 50 +++++---------- plugins/tiddlywiki/twitter-archivist/spec.tid | 61 +++++++++++++++++++ plugins/tiddlywiki/twitter-archivist/todo.tid | 14 +++++ .../tiddlywiki/twitter-archivist/usage.tid | 18 ++++++ 10 files changed, 149 insertions(+), 57 deletions(-) create mode 100644 plugins/tiddlywiki/twitter-archivist/Twitter Archives.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/spec.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/todo.tid create mode 100644 plugins/tiddlywiki/twitter-archivist/usage.tid diff --git a/editions/twitter-archivist/tiddlers/DefaultTiddlers.tid b/editions/twitter-archivist/tiddlers/DefaultTiddlers.tid index a3c362aff..b88bde5f1 100644 --- a/editions/twitter-archivist/tiddlers/DefaultTiddlers.tid +++ b/editions/twitter-archivist/tiddlers/DefaultTiddlers.tid @@ -1,3 +1,4 @@ title: $:/DefaultTiddlers -HelloThere \ No newline at end of file +[[Twitter Archives]] +HelloThere diff --git a/editions/twitter-archivist/tiddlers/HelloThere.tid b/editions/twitter-archivist/tiddlers/HelloThere.tid index d1bb60ca7..3aceef65c 100644 --- a/editions/twitter-archivist/tiddlers/HelloThere.tid +++ b/editions/twitter-archivist/tiddlers/HelloThere.tid @@ -1,3 +1,9 @@ title: HelloThere -{{$:/plugins/tiddlywiki/twitter-archivist/readme}} +!!! Welcome to the Twitter Archivist for TiddlyWiki + +<$tiddler tiddler="$:/plugins/tiddlywiki/twitter-archivist"> + <$set name="tabsList" filter="[list<currentTiddler>]"> + <$macrocall $name="tabs" state=<<qualify "$:/state/tabs/twitter-archivist">> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template="$:/core/ui/PluginInfo"/> + </$set> +</$tiddler> diff --git a/plugins/tiddlywiki/twitter-archivist/Twitter Archives.tid b/plugins/tiddlywiki/twitter-archivist/Twitter Archives.tid new file mode 100644 index 000000000..2b7aca018 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/Twitter Archives.tid @@ -0,0 +1,5 @@ +title: Twitter Archives +color: #1D9CF0 +icon: $:/core/images/twitter + +<<list-archives>> diff --git a/plugins/tiddlywiki/twitter-archivist/archivist.js b/plugins/tiddlywiki/twitter-archivist/archivist.js index 2162ee556..02384f102 100644 --- a/plugins/tiddlywiki/twitter-archivist/archivist.js +++ b/plugins/tiddlywiki/twitter-archivist/archivist.js @@ -29,6 +29,8 @@ TwitterArchivist.prototype.loadArchive = async function(options) { user_id = manifestData.userInfo.accountId; wiki.addTiddler({ title: "Twitter Archive for @" + username, + icon: "$:/core/images/twitter", + color: "#1D9CF0", tags: "$:/tags/TwitterArchive", user_id: user_id, username: username, diff --git a/plugins/tiddlywiki/twitter-archivist/macros.tid b/plugins/tiddlywiki/twitter-archivist/macros.tid index c0003274d..a45592c10 100644 --- a/plugins/tiddlywiki/twitter-archivist/macros.tid +++ b/plugins/tiddlywiki/twitter-archivist/macros.tid @@ -45,13 +45,22 @@ tags: $:/tags/Macro \define list-archives() \whitespace trim -<ul> -<$list filter="[tag[$:/tags/TwitterArchive]sort[displayname]]"> - <li> - <$link><$text text=<<currentTiddler>>/></$link> - </li> +<$list filter="[tag[$:/tags/TwitterArchive]limit[1]]" emptyMessage=<<list-archives-empty>> variable="ignore"> + <ul> + <$list filter="[tag[$:/tags/TwitterArchive]sort[displayname]]"> + <li> + <$link><$text text=<<currentTiddler>>/></$link> + </li> + </$list> + </ul> </$list> -</ul> +\end + +\define list-archives-empty() +<p style="background:#ff3;color:#333;padding:8px;font-weight:bold;"> +No Twitter Archives are currently loaded +</p> +<$transclude tiddler="$:/plugins/tiddlywiki/twitter-archivist/usage" mode="block"/> \end \define show-archive() @@ -122,24 +131,24 @@ tags: $:/tags/Macro \define show-tweet() <div class="tc-twitter-tweet"> <div class="tc-twitter-tweet-header"> - <$let user_id={{{ [<__archive__>get[user_id]] }}}> - <$list filter="[{!user_id}match<user_id>]" variable="ignore"> + <$list filter="[<currentTiddler>has[user_id]]" variable="ignore"> + <$let archive={{{ [tag[$:/tags/TwitterArchive]field:user_id{!!user_id}] }}}> <span class="tc-twitter-tweet-header-displayname"> - <$text text={{{ [<__archive__>get[displayname]] }}}/> + <$text text={{{ [<archive>get[displayname]] }}}/> </span> <span class="tc-twitter-tweet-header-username"> - @<$text text={{{ [<__archive__>get[username]] }}}/> + @<$text text={{{ [<archive>get[username]] }}}/> </span> • - </$list> - </$let> + </$let> + </$list> <$link to=<<currentTiddler>>> <span class="tc-twitter-tweet-header-date"> <$view field="created" format="date" template="DDth mmm YYYY 0hh:0mm:0ss"/> </span> </$link> </div> - <$list filter="[<__title__>get[in_reply_to_status_id]addprefix[Tweet - ]is[tiddler]]" variable="replyTo"> + <$list filter="[<currentTiddler>get[in_reply_to_status_id]addprefix[Tweet - ]is[tiddler]]" variable="replyTo"> <div class="tc-twitter-tweet-reply-to"> Reply to <$link to=<<replyTo>>><$text text=<<replyTo>>/></$link> </div> @@ -148,11 +157,9 @@ tags: $:/tags/Macro <$transclude field="text"/> </div> <div class="tc-twitter-tweet-media"> - <$let status_id={{!!status_id}}> - <$list filter="[tag[$:/tags/TweetMedia]field:status_id<status_id>]" variable="mediaItem"> - <$transclude tiddler=<<mediaItem>>/> - </$list> - </$let> + <$list filter="[tag[$:/tags/TweetMedia]field:status_id{!!status_id}]" variable="mediaItem"> + <$transclude tiddler=<<mediaItem>>/> + </$list> </div> <div class="tc-twitter-tweet-footer"> <$list filter="[<currentTiddler>has[retweet_count]]" variable="ignore"> diff --git a/plugins/tiddlywiki/twitter-archivist/plugin.info b/plugins/tiddlywiki/twitter-archivist/plugin.info index 016e746e7..3ee51243c 100644 --- a/plugins/tiddlywiki/twitter-archivist/plugin.info +++ b/plugins/tiddlywiki/twitter-archivist/plugin.info @@ -2,5 +2,5 @@ "title": "$:/plugins/tiddlywiki/twitter-archivist", "name": "Twitter Archivist", "description": "Twitter archiving tools", - "list": "readme" + "list": "readme usage spec todo" } diff --git a/plugins/tiddlywiki/twitter-archivist/readme.tid b/plugins/tiddlywiki/twitter-archivist/readme.tid index f5dad5e6f..db89466e0 100644 --- a/plugins/tiddlywiki/twitter-archivist/readme.tid +++ b/plugins/tiddlywiki/twitter-archivist/readme.tid @@ -4,14 +4,23 @@ title: $:/plugins/tiddlywiki/twitter-archivist/readme The Twitter Archivist imports the tweets and associated media from a [[Twitter Archive|https://help.twitter.com/en/managing-your-account/how-to-download-your-twitter-archive]] as individual tiddlers. -The Twitter Archivist plugin is available from the official plugin library for installation in your own wikis. +The first step is to request your Tweet archive from Twitter. Once it is available, download file compressed file and unzip it. -! Limitations +! Installation -This initial version of the Twitter Archivist has several shortcomings that may be addressed in the future: +For browser-based wikis, drag and drop this link to install the Twitter Archivist plugin in your own wikis (note that a reload will be required after installing the plugin and saving the wiki): -* Does not handle editable tweets -* Does not handle direct messages +{{$:/plugins/tiddlywiki/twitter-archivist||$:/core/ui/Components/plugin-info}} + +For Node.js-based wikis, add `tiddlywiki/twitter-archivist` to the `plugin` section of `tiddlywiki.info`: + +``` +... + "plugins": [ + "tiddlywiki/twitter-archivist" + ], +... +``` ! Limitations of Twitter Archives @@ -19,37 +28,6 @@ The Twitter Archive format itself has many shortcomings which affect this tool: * Retweets come through as old-school RTs, which means that they are often truncated * Likes only have minimal information, lacking date, author and mentions -* External links go to the t.co shortener * Twitter archives can be delivered in multiple parts, but this tool has only been tested with single archives. It is hoped that cumulatively importing each of the archives in turn should work A future version of this tool may use the Twitter API to get around these restrictions. - -! Getting Started - -First, request your Tweet archive from Twitter. Once it is available, download and unzip it. - -The Twitter Archivist can operate in the browser or under Node.js. - -!! In the Browser - -To import a Twitter archive in the browser, click the button below and navigate to the root of the archive: - -<$button> -<$action-sendmessage $message="tm-load-twitter-archive"/> -Open Twitter archive -</$button> - -!! Under Node.js - -To import a Twitter archive under Node.js, use the `--loadtwitterarchive` command: - -``` -tiddlywiki editions/twitter-archivist/ --loadtwitterarchive '/path/to/archive' --build index -``` - -! Imported Archives - -Any imported archives will show here: - -<<list-archives>> - diff --git a/plugins/tiddlywiki/twitter-archivist/spec.tid b/plugins/tiddlywiki/twitter-archivist/spec.tid new file mode 100644 index 000000000..7e837c523 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/spec.tid @@ -0,0 +1,61 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/spec + +! Twitter Archivist Data Model + +The Twitter Archivist imports the following tiddlers: + +* A single tiddler tagged <<tag "$:/tags/TwitterArchive">> containing details about the archive +* Tweets/favourites represented by tiddlers tagged <<tag "$:/tags/Tweet">> +* Twitter users represented by tiddlers tagged <<tag "$:/tags/Tweeter">> +* Tweet images/videos represented by tiddlers tagged <<tag "$:/tags/TweetMedia">> + +!! Twitter Archive Tiddler Fields + +|!Field |!Description | +|''account_created_date'' |Date of account creation (in TiddlyWiki format) | +|''bio'' |Account biography | +|''displayname'' |Account displayname | +|''generation_date'' |Date of archive generation (in TiddlyWiki format) | +|''location'' |Account location | +|''tags'' |`$:/tags/TwitterArchive` | +|''title'' |Formed from `Twitter Archive for @` concatenated with the account username | +|''user_id'' |Unique numeric identifier for account | +|''username'' |Account username | +|''website'' |Account website | + +!! Tweet Tiddler Fields + +|!Field |!Description | +|''created'' |Tweet creation date (in TiddlyWiki format) | +|''favorite_count'' |Number of favourites received by this tweet | +|''modified'' |Tweet creation date (in TiddlyWiki format) | +|''retweet_count'' |Number of retweets received by this tweet | +|''status_id'' |Unique numeric identifier for tweet | +|''tags'' |`$:/tags/Tweet` along with the titles of any tweeters mentioned in the tweet | +|''text'' |The text of the tweet (see below) | +|''title'' |Formed from `Tweet - ` concatenated with the tweet ID | +|''user_id'' |Unique numeric identifier for tweeter of this tweet | + +The text of the tweet includes the following changes: + +* The pragma `\rules only html entity extlink` is prepended to restrict the parse rules recognised within the text +* Mentions are linked to the associated tweeter tiddler +* Line breaks are replaced by `<br/>` + +!! Tweeter Tiddler Fields + +|!Field |!Description | +|''name'' |Account displayname | +|''screenname'' |Account screenname (including the @) | +|''tags'' |`$:/tags/Tweeter` | +|''title'' |Formed from `Tweeter - ` concatenated with the account ID | +|''user_id'' |Unique numeric identifier for account | + +!! Tweet Media Fields + +|!Field |!Description | +|''status_id'' |Identifier of tweet associated with this media item | +|''tags'' |`$:/tags/TweetMedia` | +|''text'' |The body of the media item | +|''title'' |Formed from `Tweet Media - ` concatenated with the ID of the associated tweet and a further unique identifier | +|''type'' |`image/jpg`, `image/png` or `video/mp4` | diff --git a/plugins/tiddlywiki/twitter-archivist/todo.tid b/plugins/tiddlywiki/twitter-archivist/todo.tid new file mode 100644 index 000000000..af53e677a --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/todo.tid @@ -0,0 +1,14 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/todo + +!! Done + +* Fixed display of tweet account information +* Data model documentation + +!! To Do + +* Expand t.co URLs +* Import direct messages +* Control over which media types are imported +* `_canonical_uri` support for media +* Handle editable tweets diff --git a/plugins/tiddlywiki/twitter-archivist/usage.tid b/plugins/tiddlywiki/twitter-archivist/usage.tid new file mode 100644 index 000000000..8981a5680 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/usage.tid @@ -0,0 +1,18 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/usage + +! In the Browser + +To import a Twitter archive in the browser, click the button below and navigate to the root of the archive: + +<$button> +<$action-sendmessage $message="tm-load-twitter-archive"/> +Open Twitter archive +</$button> + +! Under Node.js + +To import a Twitter archive under Node.js, use the `--loadtwitterarchive` command: + +``` +tiddlywiki editions/twitter-archivist/ --loadtwitterarchive '/path/to/archive' --build index +``` From af6c0170868c2cd699f57cef814205368a234c51 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 13 Nov 2022 19:05:09 +0000 Subject: [PATCH 065/937] Twitter Archivist: Expand t.co URLs in tweets --- .../tiddlywiki/twitter-archivist/archivist.js | 63 ++++++++++++++----- plugins/tiddlywiki/twitter-archivist/spec.tid | 1 + plugins/tiddlywiki/twitter-archivist/todo.tid | 3 +- 3 files changed, 52 insertions(+), 15 deletions(-) diff --git a/plugins/tiddlywiki/twitter-archivist/archivist.js b/plugins/tiddlywiki/twitter-archivist/archivist.js index 02384f102..d2fb23225 100644 --- a/plugins/tiddlywiki/twitter-archivist/archivist.js +++ b/plugins/tiddlywiki/twitter-archivist/archivist.js @@ -74,14 +74,14 @@ TwitterArchivist.prototype.loadArchive = async function(options) { $tw.utils.each(tweetData,function(tweet) { // Compile the tags for the tweet var tags = ["$:/tags/Tweet"]; - // Create tiddlers for each mentioned tweeter, and hyperlink the mention in the test - var rawText = tweet.tweet.full_text, - posText = 0, - text = ""; + // Accumulate the replacements/insertions to the text as an array of {startPos:,endPos:,fnTransform:} + var modifications = []; + // Mentions var mentions = []; $tw.utils.each(tweet.tweet.entities.user_mentions,function(mention) { var title = "Tweeter - " + mention.id_str; tags.push(title); + mentions.push(mention.id_str); wiki.addTiddler({ title: title, screenname: "@" + mention.screen_name, @@ -89,18 +89,53 @@ TwitterArchivist.prototype.loadArchive = async function(options) { user_id: mention.id_str, name: mention.name }); - text = text + - $tw.utils.htmlEncode(rawText.substring(posText,mention.indices[0])) + - "<$link to=\"" + title + "\">" + - $tw.utils.htmlEncode(rawText.substring(mention.indices[0],mention.indices[1])) + - "</$link>"; - posText = mention.indices[1]; - mentions.push(mention.id_str); + modifications.push({ + startPos: mention.indices[0], + endPos: mention.indices[1], + fnTransform: function(text) { + return "<$link to=\"" + title + "\">" + + $tw.utils.htmlEncode(text.substring(mention.indices[0],mention.indices[1])) + + "</$link>"; + } + }); }); - if(posText < rawText.length) { - text = text + $tw.utils.htmlEncode(rawText.substring(posText)); + // URLs + $tw.utils.each(tweet.tweet.entities.urls,function(urlInfo) { + modifications.push({ + startPos: urlInfo.indices[0], + endPos: urlInfo.indices[1], + fnTransform: function(text) { + return "<a href=\"" + $tw.utils.htmlEncode(urlInfo.expanded_url) + "\" rel=\"noopener noreferrer\" target=\"_blank\">" + + $tw.utils.htmlEncode(urlInfo.display_url) + + "</a>"; + } + }); + }); + // Sort the modifications by start position + modifications.sort(function(a,b) { + return a.startPos - b.startPos; + }); + // Apply the modifications in reverse order + var rawText = tweet.tweet.full_text, + posText = rawText.length - 1, + chunks = []; + for(var modificationIndex=modifications.length-1; modificationIndex>=0; modificationIndex--) { + var modification = modifications[modificationIndex]; + // Process any text after the modification + if(posText > modification.endPos) { + chunks.push($tw.utils.htmlEncode(rawText.substring(modification.endPos,posText))); + } + // Process the modification + chunks.push(modification.fnTransform(rawText)); + // Adjust the position + posText = modification.startPos; } - text = text.replace("\n","<br>"); + // Process any remaining text + if(posText > 0) { + chunks.push($tw.utils.htmlEncode(rawText.substring(0,posText))); + } + // Concatenate the chunks and replace newlines with <br> + var text = chunks.reverse().join("").replace("\n","<br>"); // Create the tweet tiddler var tiddler = { title: "Tweet - " + tweet.tweet.id_str, diff --git a/plugins/tiddlywiki/twitter-archivist/spec.tid b/plugins/tiddlywiki/twitter-archivist/spec.tid index 7e837c523..8a780a96d 100644 --- a/plugins/tiddlywiki/twitter-archivist/spec.tid +++ b/plugins/tiddlywiki/twitter-archivist/spec.tid @@ -28,6 +28,7 @@ The Twitter Archivist imports the following tiddlers: |!Field |!Description | |''created'' |Tweet creation date (in TiddlyWiki format) | |''favorite_count'' |Number of favourites received by this tweet | +|''mention_user_ids'' |Optional list of user IDs mentioned in the tweet | |''modified'' |Tweet creation date (in TiddlyWiki format) | |''retweet_count'' |Number of retweets received by this tweet | |''status_id'' |Unique numeric identifier for tweet | diff --git a/plugins/tiddlywiki/twitter-archivist/todo.tid b/plugins/tiddlywiki/twitter-archivist/todo.tid index af53e677a..62a7912c2 100644 --- a/plugins/tiddlywiki/twitter-archivist/todo.tid +++ b/plugins/tiddlywiki/twitter-archivist/todo.tid @@ -4,10 +4,11 @@ title: $:/plugins/tiddlywiki/twitter-archivist/todo * Fixed display of tweet account information * Data model documentation +* Expand t.co URLs !! To Do -* Expand t.co URLs +* Wikify hashtags * Import direct messages * Control over which media types are imported * `_canonical_uri` support for media From 710e51fe04c02b1b97d40dd41e05642902685337 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 13 Nov 2022 19:11:56 +0000 Subject: [PATCH 066/937] Twitter Archivist: Fix off by one error in af6c0170868c2cd699f57cef814205368a234c51 --- plugins/tiddlywiki/twitter-archivist/archivist.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tiddlywiki/twitter-archivist/archivist.js b/plugins/tiddlywiki/twitter-archivist/archivist.js index d2fb23225..e1ca29a42 100644 --- a/plugins/tiddlywiki/twitter-archivist/archivist.js +++ b/plugins/tiddlywiki/twitter-archivist/archivist.js @@ -117,7 +117,7 @@ TwitterArchivist.prototype.loadArchive = async function(options) { }); // Apply the modifications in reverse order var rawText = tweet.tweet.full_text, - posText = rawText.length - 1, + posText = rawText.length, chunks = []; for(var modificationIndex=modifications.length-1; modificationIndex>=0; modificationIndex--) { var modification = modifications[modificationIndex]; From 06520c8994124a7685c8232e8dc34468082e201f Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 14 Nov 2022 08:51:18 +0000 Subject: [PATCH 067/937] Wikify hashtags --- .../tiddlywiki/twitter-archivist/archivist.js | 58 ++++++++++++------- .../tiddlywiki/twitter-archivist/macros.tid | 13 ++++- .../twitter-archivist/template-hashtag.tid | 3 + .../view-template-body-cascade.tid | 1 + 4 files changed, 54 insertions(+), 21 deletions(-) create mode 100644 plugins/tiddlywiki/twitter-archivist/template-hashtag.tid diff --git a/plugins/tiddlywiki/twitter-archivist/archivist.js b/plugins/tiddlywiki/twitter-archivist/archivist.js index e1ca29a42..e0ffe2d52 100644 --- a/plugins/tiddlywiki/twitter-archivist/archivist.js +++ b/plugins/tiddlywiki/twitter-archivist/archivist.js @@ -76,7 +76,7 @@ TwitterArchivist.prototype.loadArchive = async function(options) { var tags = ["$:/tags/Tweet"]; // Accumulate the replacements/insertions to the text as an array of {startPos:,endPos:,fnTransform:} var modifications = []; - // Mentions + // Modifications for mentions var mentions = []; $tw.utils.each(tweet.tweet.entities.user_mentions,function(mention) { var title = "Tweeter - " + mention.id_str; @@ -90,24 +90,43 @@ TwitterArchivist.prototype.loadArchive = async function(options) { name: mention.name }); modifications.push({ - startPos: mention.indices[0], - endPos: mention.indices[1], + startPos: parseInt(mention.indices[0],10), + endPos: parseInt(mention.indices[1],10), fnTransform: function(text) { return "<$link to=\"" + title + "\">" + $tw.utils.htmlEncode(text.substring(mention.indices[0],mention.indices[1])) + - "</$link>"; + "</$link>"; } }); }); - // URLs + // Modifications for URLs $tw.utils.each(tweet.tweet.entities.urls,function(urlInfo) { modifications.push({ - startPos: urlInfo.indices[0], - endPos: urlInfo.indices[1], + startPos: parseInt(urlInfo.indices[0],10), + endPos: parseInt(urlInfo.indices[1],10), fnTransform: function(text) { - return "<a href=\"" + $tw.utils.htmlEncode(urlInfo.expanded_url) + "\" rel=\"noopener noreferrer\" target=\"_blank\">" + + return "<a href=\"" + urlInfo.expanded_url + "\" rel=\"noopener noreferrer\" target=\"_blank\">" + $tw.utils.htmlEncode(urlInfo.display_url) + - "</a>"; + "</a>"; + } + }); + }); + // Modifications for hashtags + $tw.utils.each(tweet.tweet.entities.hashtags,function(hashtag) { + var title = "#" + hashtag.text; + tags.push(title); + wiki.addTiddler({ + title: title, + hashtag: hashtag.text, + tags: "$:/tags/Hashtag" + }); + modifications.push({ + startPos: parseInt(hashtag.indices[0],10), + endPos: parseInt(hashtag.indices[1],10), + fnTransform: function(text) { + return "<$link to=\"" + title + "\">" + + "#" + $tw.utils.htmlEncode(hashtag.text) + + "</$link>"; } }); }); @@ -117,25 +136,24 @@ TwitterArchivist.prototype.loadArchive = async function(options) { }); // Apply the modifications in reverse order var rawText = tweet.tweet.full_text, - posText = rawText.length, + posText = 0, chunks = []; - for(var modificationIndex=modifications.length-1; modificationIndex>=0; modificationIndex--) { - var modification = modifications[modificationIndex]; - // Process any text after the modification - if(posText > modification.endPos) { - chunks.push($tw.utils.htmlEncode(rawText.substring(modification.endPos,posText))); + $tw.utils.each(modifications,function(modification) { + // Process any text before the modification + if(modification.startPos > posText) { + chunks.push($tw.utils.htmlEncode(rawText.substring(posText,modification.startPos))); } // Process the modification chunks.push(modification.fnTransform(rawText)); // Adjust the position - posText = modification.startPos; - } + posText = modification.endPos; + }); // Process any remaining text - if(posText > 0) { - chunks.push($tw.utils.htmlEncode(rawText.substring(0,posText))); + if(posText < rawText.length) { + chunks.push($tw.utils.htmlEncode(rawText.substring(posText))); } // Concatenate the chunks and replace newlines with <br> - var text = chunks.reverse().join("").replace("\n","<br>"); + var text = chunks.join("").replace("\n","<br>"); // Create the tweet tiddler var tiddler = { title: "Tweet - " + tweet.tweet.id_str, diff --git a/plugins/tiddlywiki/twitter-archivist/macros.tid b/plugins/tiddlywiki/twitter-archivist/macros.tid index a45592c10..74dd530d9 100644 --- a/plugins/tiddlywiki/twitter-archivist/macros.tid +++ b/plugins/tiddlywiki/twitter-archivist/macros.tid @@ -206,6 +206,17 @@ No Twitter Archives are currently loaded \define show-tweeter-mentions() <$list filter="[tag[$:/tags/Tweet]tag<currentTiddler>]"> - <$macrocall $name="show-tweet" archive=<<currentTiddler>> title=<<currentTiddler>>/> + <$macrocall $name="show-tweet" title=<<currentTiddler>>/> +</$list> +\end + +\define show-hashtag() +<a href={{{ [{!!user_id}addprefix[https://twitter.com/intent/user?user_id=]] }}} rel="noopener noreferrer" target="_blank">View on Twitter</a> +<$macrocall $name="skinny-tabs" tabNames="show-hashtag-tweets" tabCaptions="Tweets" defaultTab="show-hashtag-tweets" state=<<qualify "$:/state/skinny-tabs/hashtag-tweets">>/> +\end + +\define show-hashtag-tweets() +<$list filter="[tag[$:/tags/Tweet]tag<currentTiddler>]"> + <$macrocall $name="show-tweet" title=<<currentTiddler>>/> </$list> \end diff --git a/plugins/tiddlywiki/twitter-archivist/template-hashtag.tid b/plugins/tiddlywiki/twitter-archivist/template-hashtag.tid new file mode 100644 index 000000000..2193d84e5 --- /dev/null +++ b/plugins/tiddlywiki/twitter-archivist/template-hashtag.tid @@ -0,0 +1,3 @@ +title: $:/plugins/tiddlywiki/twitter-archivist/template/hashtag + +<<show-hashtag>> diff --git a/plugins/tiddlywiki/twitter-archivist/view-template-body-cascade.tid b/plugins/tiddlywiki/twitter-archivist/view-template-body-cascade.tid index ffc18c3d4..f6a52d0e4 100644 --- a/plugins/tiddlywiki/twitter-archivist/view-template-body-cascade.tid +++ b/plugins/tiddlywiki/twitter-archivist/view-template-body-cascade.tid @@ -5,3 +5,4 @@ list-before: [tag[$:/tags/Tweet]then[$:/plugins/tiddlywiki/twitter-archivist/template/tweet]] [tag[$:/tags/TwitterArchive]then[$:/plugins/tiddlywiki/twitter-archivist/template/archive]] [tag[$:/tags/Tweeter]then[$:/plugins/tiddlywiki/twitter-archivist/template/tweeter]] +[tag[$:/tags/Hashtag]then[$:/plugins/tiddlywiki/twitter-archivist/template/hashtag]] From ef779c11e8672cce76ff63070effa2597251540a Mon Sep 17 00:00:00 2001 From: Jeremy Ruston <jeremy@jermolene.com> Date: Mon, 14 Nov 2022 11:52:38 +0000 Subject: [PATCH 068/937] Fix Node.js installation instructions for Arch Linux Fixes #7027 --- .../tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid b/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid index fcbbe7c51..447975ffc 100644 --- a/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid +++ b/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid @@ -4,7 +4,7 @@ created: 20131219100608529 delivery: DIY description: Flexible hosting on your own machine or in the cloud method: sync -modified: 20211003230831173 +modified: 20221151230831173 tags: Saving [[TiddlyWiki on Node.js]] Windows Mac Linux title: Installing TiddlyWiki on Node.js type: text/vnd.tiddlywiki @@ -12,7 +12,7 @@ type: text/vnd.tiddlywiki # Install [[Node.js]] #* Linux: #*> //Debian/Ubuntu//:<br/>`apt install nodejs`<br/>May need to be followed up by:<br/>`apt install npm` -#*> //Arch Linux//<br/>`pacman -S tiddlywiki` <br/>(installs node and tiddlywiki) +#*> //Arch Linux//<br/>`yay -S tiddlywiki` <br/>(installs node and tiddlywiki) #* Mac #*> `brew install node` #* Android From b097d2ec48105687028e4ab5db240292c78bb510 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston <jeremy@jermolene.com> Date: Mon, 14 Nov 2022 16:58:50 +0000 Subject: [PATCH 069/937] Fix typo in SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid Thanks @twMat --- .../SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid index 20e552905..49ad90100 100644 --- a/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid +++ b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ClassFilters_TiddlerTemplate.tid @@ -6,4 +6,4 @@ tags: SystemTags title: SystemTag: $:/tags/ClassFilters/TiddlerTemplate type: text/vnd.tiddlywiki -The [[system tag|SystemTags]] `$:/tags/ClassFilters/TiddlerTemplate` marks filters marks filters evaluated to dynamically add their output as CSS classes to the tiddler template. \ No newline at end of file +The [[system tag|SystemTags]] `$:/tags/ClassFilters/TiddlerTemplate` marks filters evaluated to dynamically add their output as CSS classes to the tiddler template. From b263ee3c80189a929e72227d4ed772e59dd6af2f Mon Sep 17 00:00:00 2001 From: TonyM <31584658+AnthonyMuscio@users.noreply.github.com> Date: Tue, 15 Nov 2022 04:05:16 +1100 Subject: [PATCH 070/937] Update SystemTag_ $__tags_Filter.tid (#7019) said seach not search in two places description and body --- .../tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Filter.tid | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Filter.tid b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Filter.tid index 1c1c783f6..9d5b3bb90 100644 --- a/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Filter.tid +++ b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Filter.tid @@ -1,9 +1,9 @@ caption: $:/tags/Filter created: 20180926170345251 -description: marks filters in advanced seach sample filter dropdown +description: marks filters in advanced search sample filter dropdown modified: 20180926171456495 tags: SystemTags title: SystemTag: $:/tags/Filter type: text/vnd.tiddlywiki -The [[system tag|SystemTags]] `$:/tags/Filter` marks filters in advanced seach sample filter dropdown \ No newline at end of file +The [[system tag|SystemTags]] `$:/tags/Filter` marks filters in advanced search sample filter dropdown From 7f48b6c6ce04ec8b4395c3b1ffeee6122d449268 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Mon, 14 Nov 2022 18:11:26 +0100 Subject: [PATCH 071/937] Make timeline macro more customisable (#5947) * make the timeline-macro more customizable * changed comment as requested --- core/wiki/macros/timeline.tid | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/core/wiki/macros/timeline.tid b/core/wiki/macros/timeline.tid index a01c4bdaf..2577e1929 100644 --- a/core/wiki/macros/timeline.tid +++ b/core/wiki/macros/timeline.tid @@ -3,14 +3,11 @@ modified: 20141212110330815 tags: $:/tags/Macro title: $:/core/macros/timeline -\define timeline-title() -\whitespace trim -<!-- Override this macro with a global macro - of the same name if you need to change - how titles are displayed on the timeline - --> -<$view field="title"/> -\end +<!-- Override one or both of the following two macros with a global or local macro of the same name +if you need to change how titles are displayed on a timeline --> + +\define timeline-title() <$view field="title"/> +\define timeline-link() <$link to={{!!title}}><<timeline-title>></$link> \define timeline(limit:"100",format:"DDth MMM YYYY",subfilter:"",dateField:"modified") \whitespace trim <div class="tc-timeline"> @@ -19,7 +16,7 @@ title: $:/core/macros/timeline <$view field="$dateField$" format="date" template="$format$"/> <$list filter="[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]"> <div class="tc-menu-list-subitem"> -<$link to={{!!title}}><<timeline-title>></$link> +<<timeline-link>> </div> </$list> </div> From 832868ecaec19c7cc49f08d4ab5f059d8bf70f2a Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Mon, 14 Nov 2022 18:30:13 +0100 Subject: [PATCH 072/937] Allow user defined setting for retain-story-order button in ControlPanel (#6863) * allow user defined setting for retain-story-order button in ControlPanel * improve hidden setting wording * adjust all languages with new "ControlPanel DefaultTiddlers BottomHint * fix typos and snippet filename --- core/language/en-GB/ControlPanel.multids | 2 +- core/ui/ControlPanel/Basics/retain-story-ordering-button.tid | 3 +++ core/wiki/config/DefaultTiddlersRetainStory.tid | 3 +++ .../hiddensettings/Hidden Setting Default Story Ordering.tid | 4 ++++ languages/ar-PS/ControlPanel.multids | 2 +- languages/ca-ES/ControlPanel.multids | 2 +- languages/cs-CZ/ControlPanel.multids | 2 +- languages/da-DK/ControlPanel.multids | 2 +- languages/de-DE/ControlPanel.multids | 2 +- languages/el-GR/ControlPanel.multids | 2 +- languages/es-ES/ControlPanel.multids | 2 +- languages/fa-IR/ControlPanel.multids | 2 +- languages/fr-FR/ControlPanel.multids | 2 +- languages/hi-IN/ControlPanel.multids | 2 +- languages/ia-IA/ControlPanel.multids | 2 +- languages/it-IT/ControlPanel.multids | 2 +- languages/ja-JP/ControlPanel.multids | 2 +- languages/ko-KR/ControlPanel.multids | 2 +- languages/nl-NL/ControlPanel.multids | 2 +- languages/pl-PL/ControlPanel.multids | 2 +- languages/pt-BR/ControlPanel.multids | 2 +- languages/pt-PT/ControlPanel.multids | 2 +- languages/ru-RU/ControlPanel.multids | 2 +- languages/sk-SK/ControlPanel.multids | 2 +- languages/sl-SI/ControlPanel.multids | 2 +- languages/sv-SE/ControlPanel.multids | 2 +- languages/zh-Hans/ControlPanel.multids | 2 +- languages/zh-Hant/ControlPanel.multids | 2 +- 28 files changed, 35 insertions(+), 25 deletions(-) create mode 100644 core/ui/ControlPanel/Basics/retain-story-ordering-button.tid create mode 100644 core/wiki/config/DefaultTiddlersRetainStory.tid create mode 100644 editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Default Story Ordering.tid diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids index dec7c12df..ca1739b76 100644 --- a/core/language/en-GB/ControlPanel.multids +++ b/core/language/en-GB/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: Ways to customise the appearance of your TiddlyWiki. Basics/AnimDuration/Prompt: Animation duration Basics/AutoFocus/Prompt: Default focus field for new tiddlers Basics/Caption: Basics -Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">retain story ordering</$button> +Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to {{retain story ordering||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Default tiddlers Basics/DefaultTiddlers/TopHint: Choose which tiddlers are displayed at startup Basics/Language/Prompt: Hello! Current language: diff --git a/core/ui/ControlPanel/Basics/retain-story-ordering-button.tid b/core/ui/ControlPanel/Basics/retain-story-ordering-button.tid new file mode 100644 index 000000000..18e43f695 --- /dev/null +++ b/core/ui/ControlPanel/Basics/retain-story-ordering-button.tid @@ -0,0 +1,3 @@ +title: $:/snippets/retain-story-ordering-button + +<$button set="$:/DefaultTiddlers" setTo={{$:/config/ControlPanel/Basics/DefaultTiddlers/RetainStory}} ><<currentTiddler>></$button> \ No newline at end of file diff --git a/core/wiki/config/DefaultTiddlersRetainStory.tid b/core/wiki/config/DefaultTiddlersRetainStory.tid new file mode 100644 index 000000000..fa6196ee1 --- /dev/null +++ b/core/wiki/config/DefaultTiddlersRetainStory.tid @@ -0,0 +1,3 @@ +title: $:/config/ControlPanel/Basics/DefaultTiddlers/RetainStory + +[list[$:/StoryList]] \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Default Story Ordering.tid b/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Default Story Ordering.tid new file mode 100644 index 000000000..e79531017 --- /dev/null +++ b/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Default Story Ordering.tid @@ -0,0 +1,4 @@ +title: Hidden Setting: Retain Story ordering +tags: [[Hidden Settings]] + +<<.from-version "5.2.4">> The tiddler $:/config/ControlPanel/Basics/DefaultTiddlers/RetainStory contains the value that is assigned to $:/DefaultTiddlers when clicking the "retain story ordering" button in $:/ControlPanel under the ''Info'' -> ''Basics'' tab. \ No newline at end of file diff --git a/languages/ar-PS/ControlPanel.multids b/languages/ar-PS/ControlPanel.multids index 61ca9e045..f47b43805 100644 --- a/languages/ar-PS/ControlPanel.multids +++ b/languages/ar-PS/ControlPanel.multids @@ -8,7 +8,7 @@ Appearance/Hint: طرق لتخصيص مظهر وكي خاص بك. Basics/AnimDuration/Prompt: مدة الرسوم المتحركة Basics/AutoFocus/Prompt: موقع مؤشر الماوس الإفتراضي للتدلرز الجددة Basics/Caption: أساسيات -Basics/DefaultTiddlers/BottomHint: إستخدم [[أقواس مربعة مزدوجة]] للعناوين مع مسافات. أو بإمكانك إختيار<$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">الإحتفاظ بترتيب القصة</$button> +Basics/DefaultTiddlers/BottomHint: إستخدم [[أقواس مربعة مزدوجة]] للعناوين مع مسافات. أو بإمكانك إختيار{{الإحتفاظ بترتيب القصة||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: تدلرز مفترضة Basics/DefaultTiddlers/TopHint: أي تدلرز ستظهر عند التشغيل Basics/Language/Prompt: مرحبا! اللغة الحالية: diff --git a/languages/ca-ES/ControlPanel.multids b/languages/ca-ES/ControlPanel.multids index 321cf4c54..d6c299e02 100644 --- a/languages/ca-ES/ControlPanel.multids +++ b/languages/ca-ES/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: Formes de personalitzar l'aparença del vostre TiddlyWiki. Basics/AnimDuration/Prompt: Duració de l'animació: Basics/AutoFocus/Prompt: Focus dels nous tiddlers Basics/Caption: Bàsic -Basics/DefaultTiddlers/BottomHint: Useu [[claudàtors dobles]] per als títols amb espais. O trieu <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">restaura la sessió anterior en arrencar</$button> +Basics/DefaultTiddlers/BottomHint: Useu [[claudàtors dobles]] per als títols amb espais. O trieu {{restaura la sessió anterior en arrencar||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Tiddlers per omissió: Basics/DefaultTiddlers/TopHint: Trieu quins tiddlers s'han de mostrar a l'inici: Basics/Language/Prompt: Bon dia! Trieu l'idioma: diff --git a/languages/cs-CZ/ControlPanel.multids b/languages/cs-CZ/ControlPanel.multids index 36546ca77..2ba05fe74 100644 --- a/languages/cs-CZ/ControlPanel.multids +++ b/languages/cs-CZ/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Vzhled Appearance/Hint: Možnosti přizpůsobení vzhledu vaší TiddlyWiki. Basics/AnimDuration/Prompt: Délka animace: Basics/Caption: Základní -Basics/DefaultTiddlers/BottomHint: Použijte [[dvojité hranaté závorky]] pro názvy s mezerami. Nebo můžete zvolit <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">zachování toku</$button> +Basics/DefaultTiddlers/BottomHint: Použijte [[dvojité hranaté závorky]] pro názvy s mezerami. Nebo můžete zvolit {{zachování toku||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Výchozí tiddlery: Basics/DefaultTiddlers/TopHint: Vyberte které tiddlery budou zobrazeny po spuštění: Basics/Language/Prompt: Ahoj! Aktuální jazyk: diff --git a/languages/da-DK/ControlPanel.multids b/languages/da-DK/ControlPanel.multids index befe9e46b..9183ee266 100644 --- a/languages/da-DK/ControlPanel.multids +++ b/languages/da-DK/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Design Appearance/Hint: Måder at tilpasse udseendet af din TiddlyWiki. Basics/AnimDuration/Prompt: Animationsvarighed Basics/Caption: Basis -Basics/DefaultTiddlers/BottomHint: Brug [[dobbelt firkantede parenteser]] for titler med mellemrum. Eller du kan vælge at <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">gemme de aktuelt åbne tiddlere</$button> +Basics/DefaultTiddlers/BottomHint: Brug [[dobbelt firkantede parenteser]] for titler med mellemrum. Eller du kan vælge at {{gemme de aktuelt åbne tiddlere||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Standardtiddlere: Basics/DefaultTiddlers/TopHint: Vælg hvilke tiddlere der vises ved opstart: Basics/Language/Prompt: Hallo! Aktuelt sprog: diff --git a/languages/de-DE/ControlPanel.multids b/languages/de-DE/ControlPanel.multids index 5682ecabb..c713e34d7 100644 --- a/languages/de-DE/ControlPanel.multids +++ b/languages/de-DE/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: Möglichkeiten um das Aussehen Ihres ~TiddlyWikis anzupassen. Basics/AnimDuration/Prompt: Dauer der Animation Basics/AutoFocus/Prompt: Standard Fokus Feld für neue Tiddler Basics/Caption: Basis -Basics/DefaultTiddlers/BottomHint: Verwenden Sie [[doppelte eckige Klammern]] für Titel mit Leerzeichen oder wählen Sie <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">Offene Tiddler beim Laden wiederherstellen.</$button> +Basics/DefaultTiddlers/BottomHint: Verwenden Sie [[doppelte eckige Klammern]] für Titel mit Leerzeichen oder wählen Sie {{Offene Tiddler beim Laden wiederherstellen.||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Standard-Tiddler Basics/DefaultTiddlers/TopHint: Tiddler, die beim Start geladen werden Basics/Language/Prompt: Hallo! Aktuelle Sprache diff --git a/languages/el-GR/ControlPanel.multids b/languages/el-GR/ControlPanel.multids index 511fab4da..898da5fb8 100644 --- a/languages/el-GR/ControlPanel.multids +++ b/languages/el-GR/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Εμφάνιση Appearance/Hint: Τρόποι για να παραμετροποιήσετε την εμφάνιση του δικού σας TiddlyWiki. Basics/AnimDuration/Prompt: Διάρκεια κινούμενων εφέ: Basics/Caption: Βασικά -Basics/DefaultTiddlers/BottomHint: Χρησιμοποιήστε [[διπλές αγκύλες ]] για τίτλους με κενά. Ή, μπορείτε να διαλέξετε τη <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">διατήρηση της διάταξης της ιστορίας</$button> +Basics/DefaultTiddlers/BottomHint: Χρησιμοποιήστε [[διπλές αγκύλες ]] για τίτλους με κενά. Ή, μπορείτε να διαλέξετε τη {{διατήρηση της διάταξης της ιστορίας||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Προκαθορισμένα tiddler: Basics/DefaultTiddlers/TopHint: Επιλέξτε τα tiddler που θα εμφανίζονται κατά την έναρξη: Basics/Language/Prompt: Γεια σας! Τρέχουσα γλώσσα: diff --git a/languages/es-ES/ControlPanel.multids b/languages/es-ES/ControlPanel.multids index 369afc34f..38d7696fc 100644 --- a/languages/es-ES/ControlPanel.multids +++ b/languages/es-ES/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: Personaliza la apariencia de TiddlyWiki Basics/AnimDuration/Prompt: Duración de la animación Basics/AutoFocus/Prompt: Campo de enfoque predeterminado para nuevos tiddlers Basics/Caption: Básico -Basics/DefaultTiddlers/BottomHint: Usa [[corchetes dobles]] para títulos con espacios. También puedes mostrarlos ordenados <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">de más reciente a más antiguo</$button> +Basics/DefaultTiddlers/BottomHint: Usa [[corchetes dobles]] para títulos con espacios. También puedes mostrarlos ordenados {{de más reciente a más antiguo||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Tiddlers por defecto Basics/DefaultTiddlers/TopHint: Escoge qué tiddlers se muestran al inicio Basics/Language/Prompt: ¡Hola! Selecciona idioma actual diff --git a/languages/fa-IR/ControlPanel.multids b/languages/fa-IR/ControlPanel.multids index 079898429..31d73e7d3 100644 --- a/languages/fa-IR/ControlPanel.multids +++ b/languages/fa-IR/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: ظاهر Appearance/Hint: روش‌های تغییر ظاهر TiddlyWiki Basics/AnimDuration/Prompt: طول زمان انیمیشن: Basics/Caption: اساسی‌ها -Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">retain story ordering</$button> +Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to {{retain story ordering||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: تیدلرهای پیش‌فرض: Basics/DefaultTiddlers/TopHint: انتخاب کن که کدوم تیدلرها در هنگام شروع نمایش داده بشن: Basics/Language/Prompt: سلام! زبان حاضر: diff --git a/languages/fr-FR/ControlPanel.multids b/languages/fr-FR/ControlPanel.multids index 0f93509bd..cb67f2626 100644 --- a/languages/fr-FR/ControlPanel.multids +++ b/languages/fr-FR/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: Personnalisation de l'apparence de votre ~TiddlyWiki. Basics/AnimDuration/Prompt: Durée de l'animation Basics/AutoFocus/Prompt: Champ qui recevra le focus par défaut pour les nouveaux tiddlers Basics/Caption: Fondamentaux -Basics/DefaultTiddlers/BottomHint: Utilisez les [[crochets doubles]] pour les titres contenant des espaces. Vous pouvez aussi décider de <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">Conserver le déroulé actuel</$button> +Basics/DefaultTiddlers/BottomHint: Utilisez les [[crochets doubles]] pour les titres contenant des espaces. Vous pouvez aussi décider de {{Conserver le déroulé actuel||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Tiddlers par défaut Basics/DefaultTiddlers/TopHint: Liste les tiddlers qui seront affichés au démarrage : Basics/Language/Prompt: Bonjour ! Langue active : diff --git a/languages/hi-IN/ControlPanel.multids b/languages/hi-IN/ControlPanel.multids index f25b5969c..67e7a6035 100644 --- a/languages/hi-IN/ControlPanel.multids +++ b/languages/hi-IN/ControlPanel.multids @@ -8,7 +8,7 @@ Appearance/Caption: दिखावट Appearance/Hint: आपके टिड्लीविकि को अनुकूलित रूप से दिखने के तरीके Basics/AnimDuration/Prompt: एनीमेशन अवधि: Basics/Caption: पहला -Basics/DefaultTiddlers/BottomHint: प्रयोग करें[[डबल वर्ग ब्रैकेट्स]]रिक्त स्थान के साथ शीर्षक के लिए। या फिर आप चुन सकते हैं<$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">retain story ordering</$button> +Basics/DefaultTiddlers/BottomHint: प्रयोग करें[[डबल वर्ग ब्रैकेट्स]]रिक्त स्थान के साथ शीर्षक के लिए। या फिर आप चुन सकते हैं{{retain story ordering||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: डिफ़ॉल्ट tiddlers: Basics/DefaultTiddlers/TopHint: कौन सा tiddler शुरुआत मे दिखाना है Basics/Language/Prompt: हैलो! वर्तमान भाषा: diff --git a/languages/ia-IA/ControlPanel.multids b/languages/ia-IA/ControlPanel.multids index afdfa9a69..2ea8f3f49 100644 --- a/languages/ia-IA/ControlPanel.multids +++ b/languages/ia-IA/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Apparentia Appearance/Hint: Manieras de cambiar le apparentia de tu TiddlyWiki. Basics/AnimDuration/Prompt: Animation - duration: Basics/Caption: Basic -Basics/DefaultTiddlers/BottomHint: Usa [[parentheses quadrate duple]] pro titulos con spatios. O selige <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">mantener le ordine de historia</$button> +Basics/DefaultTiddlers/BottomHint: Usa [[parentheses quadrate duple]] pro titulos con spatios. O selige {{mantener le ordine de historia||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Notas standard: Basics/DefaultTiddlers/TopHint: Selige qual notas es monstrate in le initio: Basics/Language/Prompt: Hallo! Lingua actual: diff --git a/languages/it-IT/ControlPanel.multids b/languages/it-IT/ControlPanel.multids index 9d00c86b8..27f392010 100644 --- a/languages/it-IT/ControlPanel.multids +++ b/languages/it-IT/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Aspetto Appearance/Hint: Personalizza l'aspetto del tuo ~TiddlyWiki Basics/AnimDuration/Prompt: Durata animazione: Basics/Caption: Impostazioni base -Basics/DefaultTiddlers/BottomHint: Utilizza [[le doppie parentesi quadre]] per titoli di frammenti con spazi. In alternativa scegli di visualizzare i frammenti secondo la <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">cronologia</$button> +Basics/DefaultTiddlers/BottomHint: Utilizza [[le doppie parentesi quadre]] per titoli di frammenti con spazi. In alternativa scegli di visualizzare i frammenti secondo la {{cronologia||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Frammenti di default: Basics/DefaultTiddlers/TopHint: Scegli quali frammenti vuoi visualizzare all'avvio: Basics/Language/Prompt: Ciao! Scegli la lingua: diff --git a/languages/ja-JP/ControlPanel.multids b/languages/ja-JP/ControlPanel.multids index 25755365c..44d952776 100644 --- a/languages/ja-JP/ControlPanel.multids +++ b/languages/ja-JP/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: TiddlyWiki 外観のカスタマイズ方法 Basics/AnimDuration/Prompt: アニメーション時間: Basics/AutoFocus/Prompt: 新しい Tiddler の標準フォーカスフィールド Basics/Caption: 基本 -Basics/DefaultTiddlers/BottomHint: タイトルに空白を含めたいときは [[二重の角カッコ]] を使用してください。そのほか <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">保存時の表示を維持</$button> することもできます。 +Basics/DefaultTiddlers/BottomHint: タイトルに空白を含めたいときは [[二重の角カッコ]] を使用してください。そのほか {{保存時の表示を維持||$:/snippets/retain-story-ordering-button}} することもできます。 Basics/DefaultTiddlers/Prompt: デフォルト Tiddler: Basics/DefaultTiddlers/TopHint: このファイルを開いたときに初期表示される Tiddler を設定してください: Basics/Language/Prompt: 現在の言語: diff --git a/languages/ko-KR/ControlPanel.multids b/languages/ko-KR/ControlPanel.multids index 003bad1cc..77eed2bf5 100644 --- a/languages/ko-KR/ControlPanel.multids +++ b/languages/ko-KR/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: 외관 Appearance/Hint: 티들리위키의 외관을 사용자 지정하는 방법입니다. Basics/AnimDuration/Prompt: 애니메이션 지속 시간: Basics/Caption: 기본 -Basics/DefaultTiddlers/BottomHint: 스페이스로 되어 있는 제목에는 [[이중 대괄호]]를 사용하세요. 또는 <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">이야기 정렬 유지</$button>로 선택할 수 있습니다 +Basics/DefaultTiddlers/BottomHint: 스페이스로 되어 있는 제목에는 [[이중 대괄호]]를 사용하세요. 또는 {{이야기 정렬 유지||$:/snippets/retain-story-ordering-button}}로 선택할 수 있습니다 Basics/DefaultTiddlers/Prompt: 기본 티들러: Basics/DefaultTiddlers/TopHint: 시작할 때 표시할 티들러를 선택합니다: Basics/Language/Prompt: 안녕! 현재 언어: diff --git a/languages/nl-NL/ControlPanel.multids b/languages/nl-NL/ControlPanel.multids index 82b2ba946..b7affb43a 100644 --- a/languages/nl-NL/ControlPanel.multids +++ b/languages/nl-NL/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: Manieren om het uiterlijk van je TiddlyWiki aan te passen Basics/AnimDuration/Prompt: Duur van de animatie: Basics/AutoFocus/Prompt: Standaard 'focus' veld van een nieuwe tiddler Basics/Caption: Standaard -Basics/DefaultTiddlers/BottomHint: Gebruik [[dubbele rechte haken]] voor titels met spaties. Of je kan <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]"> kiezen voor behoud van open tiddlers +Basics/DefaultTiddlers/BottomHint: Gebruik [[dubbele rechte haken]] voor titels met spaties. Of je kan {{kiezen voor behoud van open tiddlers||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Standaard tiddlers: Basics/DefaultTiddlers/TopHint: Kies welke tiddlers bij opstarten getoond worden: Basics/Language/Prompt: Hallo! Huidige taal: diff --git a/languages/pl-PL/ControlPanel.multids b/languages/pl-PL/ControlPanel.multids index 70705dc8b..a11d35298 100644 --- a/languages/pl-PL/ControlPanel.multids +++ b/languages/pl-PL/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: Dostosowywanie wyglądu tej TiddlyWiki Basics/AnimDuration/Prompt: Długość animacji Basics/AutoFocus/Prompt: Domyślne pole z fokusem dla nowych tiddlerów Basics/Caption: Podstawowe -Basics/DefaultTiddlers/BottomHint: Używaj [[podwójnych nawiasów kwadratowych]] dla nazw ze spacjami. Możesz też <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">przywrócić ostatnią sesję</$button> +Basics/DefaultTiddlers/BottomHint: Używaj [[podwójnych nawiasów kwadratowych]] dla nazw ze spacjami. Możesz też {{przywrócić ostatnią sesję||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Domyślnie otwarte tiddlery Basics/DefaultTiddlers/TopHint: Wybierz które tiddlery mają być widoczne przy uruchomieniu Basics/Language/Prompt: Cześć! Wybrany język to: diff --git a/languages/pt-BR/ControlPanel.multids b/languages/pt-BR/ControlPanel.multids index a7d6143d1..fd3346756 100644 --- a/languages/pt-BR/ControlPanel.multids +++ b/languages/pt-BR/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Aparência Appearance/Hint: Formas de personalizar a aparência da sua TiddlyWiki. Basics/AnimDuration/Prompt: Duração da animação: Basics/Caption: Básicos -Basics/DefaultTiddlers/BottomHint: Utilize [[colchetes ]] para títulos com espaços. Ou então <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">Clique aqui para inserir a ordem cronológica</$button> +Basics/DefaultTiddlers/BottomHint: Utilize [[colchetes ]] para títulos com espaços. Ou então {{Clique aqui para inserir a ordem cronológica||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Tiddlers Padrão: Basics/DefaultTiddlers/TopHint: Escolha quais tiddlers serão exibidos ao iniciar: Basics/Language/Prompt: Seleção do Idioma: diff --git a/languages/pt-PT/ControlPanel.multids b/languages/pt-PT/ControlPanel.multids index 070223550..0b184a318 100644 --- a/languages/pt-PT/ControlPanel.multids +++ b/languages/pt-PT/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Aparência Appearance/Hint: Formas de personalizar a aparência da sua TiddlyWiki. Basics/AnimDuration/Prompt: Duração da animação: Basics/Caption: Básicos -Basics/DefaultTiddlers/BottomHint: Utilize [[parêntesis rectos duplos ]] para títulos com espaços. Ou pode escolher <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">guardar a ordem da lista</$button> +Basics/DefaultTiddlers/BottomHint: Utilize [[parêntesis rectos duplos ]] para títulos com espaços. Ou pode escolher {{guardar a ordem da lista||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Tiddlers pré definidos: Basics/DefaultTiddlers/TopHint: Escolha que tiddlers são exibidos ao iniciar: Basics/Language/Prompt: Olá! Linguagem actual: diff --git a/languages/ru-RU/ControlPanel.multids b/languages/ru-RU/ControlPanel.multids index d9f57ae85..687bd13c1 100644 --- a/languages/ru-RU/ControlPanel.multids +++ b/languages/ru-RU/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Внешний вид Appearance/Hint: Способы настройки внешнего вида TiddlyWiki. Basics/AnimDuration/Prompt: Продолжительность анимации: Basics/Caption: Основные -Basics/DefaultTiddlers/BottomHint: Заметки, содержащие пробелы нужно взять в [[двойные квадратные скобки]]. А также можно возвращать <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">открытые ранее заметки</$button> +Basics/DefaultTiddlers/BottomHint: Заметки, содержащие пробелы нужно взять в [[двойные квадратные скобки]]. А также можно возвращать {{открытые ранее заметки||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Открывать при старте: Basics/DefaultTiddlers/TopHint: Выберите заметки открытые при запуске: Basics/Language/Prompt: Привет! Текущий язык: diff --git a/languages/sk-SK/ControlPanel.multids b/languages/sk-SK/ControlPanel.multids index bae64ae4e..38cf0c1f8 100644 --- a/languages/sk-SK/ControlPanel.multids +++ b/languages/sk-SK/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Vzhľad Appearance/Hint: Možnosti ako upraviť vzhľad vášho TiddlyWiki. Basics/AnimDuration/Prompt: Trvanie animácie: Basics/Caption: Základné -Basics/DefaultTiddlers/BottomHint: Pre tiddlery s medzerami v názve použite [[dvojité hranaté zátvorky]]. Alebo si môžete zvoliť <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">dodržanie poradia v story</$button>. +Basics/DefaultTiddlers/BottomHint: Pre tiddlery s medzerami v názve použite [[dvojité hranaté zátvorky]]. Alebo si môžete zvoliť {{dodržanie poradia v story||$:/snippets/retain-story-ordering-button}}. Basics/DefaultTiddlers/Prompt: Pred-definované tiddlery: Basics/DefaultTiddlers/TopHint: Vyberte tiddlery, ktoré sa majú zobraziť pri štarte: Basics/Language/Prompt: Ahoj! Aktuálny jazyk: diff --git a/languages/sl-SI/ControlPanel.multids b/languages/sl-SI/ControlPanel.multids index 6f7eeeba9..5371f3f77 100644 --- a/languages/sl-SI/ControlPanel.multids +++ b/languages/sl-SI/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Videz Appearance/Hint: Načini prilagoditve videza vašega TiddlyWikija. Basics/AnimDuration/Prompt: Trajanje animacije: Basics/Caption: Osnove -Basics/DefaultTiddlers/BottomHint: Za naslove s presledki uporabite [[double square brackets]]. Ali pa kliknite, <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">da bi ob nalaganju obnovili odprte tiddlerje.</$button> +Basics/DefaultTiddlers/BottomHint: Za naslove s presledki uporabite [[double square brackets]]. Ali pa kliknite, {{da bi ob nalaganju obnovili odprte tiddlerje.||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Privzeti tiddlerji: Basics/DefaultTiddlers/TopHint: Izberite, kateri tiddlerji so prikazani ob zagonu: Basics/Language/Prompt: Zdravo! Trenutni jezik: diff --git a/languages/sv-SE/ControlPanel.multids b/languages/sv-SE/ControlPanel.multids index dc82d0760..7e330eac4 100755 --- a/languages/sv-SE/ControlPanel.multids +++ b/languages/sv-SE/ControlPanel.multids @@ -6,7 +6,7 @@ Appearance/Caption: Utseende Appearance/Hint: Möjlighet att ändra utseendet för din TiddlyWiki. Basics/AnimDuration/Prompt: Varaktighet på animationer: Basics/Caption: Grundläggande -Basics/DefaultTiddlers/BottomHint: Använd [[dubbla hakparenteser]] för rubriker med mellanslag. Eller kan du välja att <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">spara de öppna tiddlers</$button> +Basics/DefaultTiddlers/BottomHint: Använd [[dubbla hakparenteser]] för rubriker med mellanslag. Eller kan du välja att {{spara de öppna tiddlers||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Standard-tiddlers: Basics/DefaultTiddlers/TopHint: Välj vilka tiddlers som ska visas vid uppstart: Basics/Language/Prompt: Hej! Nuvarande språk: diff --git a/languages/zh-Hans/ControlPanel.multids b/languages/zh-Hans/ControlPanel.multids index 988d5ac9b..81a883281 100644 --- a/languages/zh-Hans/ControlPanel.multids +++ b/languages/zh-Hans/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: 定制您的 TiddlyWiki 外观。 Basics/AnimDuration/Prompt: 动画持续时间 Basics/AutoFocus/Prompt: 编辑条目时的默认自动停留栏位 Basics/Caption: 基本 -Basics/DefaultTiddlers/BottomHint: 标题含空白时请使用 [[双中括弧]],或者您可用 <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">保留开启中的条目顺序</$button> +Basics/DefaultTiddlers/BottomHint: 标题含空白时请使用 [[双中括弧]],或者您可用 {{保留开启中的条目顺序||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: 首页 Basics/DefaultTiddlers/TopHint: 默认开启的条目 Basics/Language/Prompt: 您好!当前的语言: diff --git a/languages/zh-Hant/ControlPanel.multids b/languages/zh-Hant/ControlPanel.multids index 65b09be63..861bd72a0 100644 --- a/languages/zh-Hant/ControlPanel.multids +++ b/languages/zh-Hant/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: 自訂您的 TiddlyWiki 外觀。 Basics/AnimDuration/Prompt: 動畫持續時間 Basics/AutoFocus/Prompt: 編輯條目時的預設自動停留欄位 Basics/Caption: 基本 -Basics/DefaultTiddlers/BottomHint: 標題含空白時請使用 [[雙中括弧]],或者您可用 <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">保留開啟中的條目順序</$button> +Basics/DefaultTiddlers/BottomHint: 標題含空白時請使用 [[雙中括弧]],或者您可用 {{保留開啟中的條目順序||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: 首頁 Basics/DefaultTiddlers/TopHint: 預設開啟的條目 Basics/Language/Prompt: 您好!當前的語言: From 029203dbc034c2f398a3b0484aa53753c1e7dc7b Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Mon, 14 Nov 2022 18:31:30 +0100 Subject: [PATCH 073/937] Move the version number to the top of the upgrader (#6881) * Move the version number to the top of the upgrader * change header to be clearer * Move Upgrade Wizard to the top --- plugins/tiddlywiki/upgrade/UpgradeWizard.tid | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/tiddlywiki/upgrade/UpgradeWizard.tid b/plugins/tiddlywiki/upgrade/UpgradeWizard.tid index fb7e67014..c45e57c60 100644 --- a/plugins/tiddlywiki/upgrade/UpgradeWizard.tid +++ b/plugins/tiddlywiki/upgrade/UpgradeWizard.tid @@ -6,7 +6,9 @@ tags: $:/tags/AboveStory <div class="tc-upgrade-wizard"> -! ~TiddlyWiki Upgrade Wizard +! Upgrade Wizard + +!! ~TiddlyWiki version <<version>> <$list filter="[[$:/Import]is[missing]]"> @@ -48,8 +50,6 @@ For help and support, visit [[the TiddlyWiki discussion forum|http://groups.goog </div> -version <<version>> - //Your data will not leave your browser. <a href="#" download="upgrade.html">Download</a> this upgrader to use it offline// //If clicking the link doesn't work, right-click the link and save it that way.// From 10cb585dae7e71bd2c9969768307989828f56f52 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Mon, 14 Nov 2022 18:36:01 +0100 Subject: [PATCH 074/937] Allow $:/core/ui/ControlPanel/Basics to work in the story river + some docs about utility classes (#6912) * allow $:/core/ui/ControlPanel/Basics to work in the story river + some docs about utility classes * apply changes suggested by twMat * fix some typos and change the base padding for tables * fix a typo and remove whitespace * remove TODO in base CSS --- core/ui/ControlPanel/Basics.tid | 5 +- editions/tw5.com/tiddlers/$__StoryList.tid | 6 +- ...Tables in WikiText CSS Utility Classes.tid | 81 +++++++++++++++++++ .../definitions/HTML Block Elements.tid | 9 +++ ...e Classes Captions Headers and Footers.tid | 20 +++++ .../tiddlers/wikitext/Tables in WikiText.tid | 16 +--- .../tiddlers/wikitext/Utility Classes.tid | 20 +++++ themes/tiddlywiki/vanilla/base.tid | 27 ++++++- 8 files changed, 165 insertions(+), 19 deletions(-) create mode 100644 editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid create mode 100644 editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid create mode 100644 editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid create mode 100644 editions/tw5.com/tiddlers/wikitext/Utility Classes.tid diff --git a/core/ui/ControlPanel/Basics.tid b/core/ui/ControlPanel/Basics.tid index 46df7e77c..34aa17986 100644 --- a/core/ui/ControlPanel/Basics.tid +++ b/core/ui/ControlPanel/Basics.tid @@ -20,15 +20,16 @@ caption: {{$:/language/ControlPanel/Basics/Caption}} \end \whitespace trim +|tc-max-width tc-edit-max-width|k |<<lingo Version/Prompt>> |''<<version>>'' | |<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | |<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | |<$link to="$:/status/UserName"><<lingo Username/Prompt>></$link> |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> | |<$link to="$:/config/AnimationDuration"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> | -|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers" class="tc-edit-texteditor"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | +|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | |<$link to="$:/language/DefaultNewTiddlerTitle"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler="$:/language/DefaultNewTiddlerTitle" default="" tag="input"/> | |<$link to="$:/config/NewJournal/Title"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler="$:/config/NewJournal/Title" default="" tag="input"/> | -|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" tag="textarea" class="tc-edit-texteditor" default=""/> | +|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" tag="textarea" default=""/> | |<$link to="$:/config/NewTiddler/Tags"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewTiddler/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/NewJournal/Tags"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewJournal/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/AutoFocus"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} | diff --git a/editions/tw5.com/tiddlers/$__StoryList.tid b/editions/tw5.com/tiddlers/$__StoryList.tid index 37ea75152..37a65e998 100644 --- a/editions/tw5.com/tiddlers/$__StoryList.tid +++ b/editions/tw5.com/tiddlers/$__StoryList.tid @@ -1,5 +1,5 @@ -created: 20220728145919904 -list: Brackets Base64 HelloThere GettingStarted Community -modified: 20220728145919904 +created: 20221010074222386 +list: [[HTML Block Elements]] [[Table Classes, Captions, Headers and Footers]] [[Tables in WikiText]] [[Tables in WikiText CSS Utility Classes]] +modified: 20221010074406819 title: $:/StoryList type: text/vnd.tiddlywiki \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid b/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid new file mode 100644 index 000000000..14abc1c86 --- /dev/null +++ b/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid @@ -0,0 +1,81 @@ +created: 20220817153236691 +modified: 20221010074314452 +tags: [[Tables in WikiText]] +title: Tables in WikiText CSS Utility Classes +type: text/vnd.tiddlywiki + +~WikiText tables can be styled by applying CSS classes. For basic information on wiktext tables and how to style them, see [[Tables in WikiText]]. + +{{Table Classes, Captions, Headers and Footers}} + +As seen above, the resulting table is left aligned and grows to fit the content. This is the browser default layout behaviour for tables. To get another behaviour, various CSS classes can be added into the "`k` row". + +! Utility Classes + +{{Utility Classes}} + +! Examples + +The following examples apply the style classes to tables but the "General Utility Classes" can as well be used on DIVs or other [[HTML block elements|HTML Block Elements]] + +!! Centred Table + +To center a table horizontally, use `tc-center`: + +<<wikitext-example-without-html src:"""|tc-center|k +|This is a caption |c +|Cell1 |Cell2 | +|Cell3 |Cell4 | +|Header|Header|h +|Footer|Footer|f +""">> + +!! Centred Table, 80% Width + +To add empty left and right margins to a table that is otherwise full-tiddler-width, you can use `tc-max-width-80` + +<<wikitext-example-without-html src:"""|tc-center tc-max-width-80|k +|This is a caption |c +|Cell1 |<<.lorem>> | +|<<.lorem>> |Cell4 | +|Header|Header|h +""">> + +!! Table with Maximum Width + +To expand a table to full tiddler width, use `tc-max-width` + +<<wikitext-example-without-html src:"""|tc-max-width|k +|Header|Header|h +|Cell1 |Cell2 | +|Cell3 |Cell4 | +""">> + +!! Table with First Column Minimum Width + +The following example shows a simple "form" where the first columns width is adjusted to its content by means of `tc-first-col-min-width` + +<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width|k +|Header|Header|h +|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | +|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | +""">> + +!! Table with Maximum Width ~TextWidgets + +Here, the previous "form" is styled further to give the [[TextWidget]]s full width by adding the class `tc-edit-max-width` + +<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width|k +|Header|Header|h +|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | +|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | +""">> + +!! Table with No Borders + +The following is a table with maximum width. It contains [[TextWidget]]s with maximum width. The first column is set to be minimum width. Further, all links in the first column are set to __not__ line break (wrap) regardless of window resize. + +<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width tc-table-no-border tc-first-link-nowrap|k +| Cell1|<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | +|^ [[Link to a tiddler]]<br>some more text|<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | +""">> diff --git a/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid b/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid new file mode 100644 index 000000000..ce0bdaa32 --- /dev/null +++ b/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid @@ -0,0 +1,9 @@ +created: 20220818091959523 +modified: 20220818092101307 +tags: Definitions +title: HTML Block Elements +type: text/vnd.tiddlywiki + +<<< +HTML (Hypertext Markup Language) elements historically were categorized as either "block-level" elements or "inline-level" elements. Since this is a presentational characteristic it is nowadays specified by CSS in the Flow Layout. A Block-level element occupies the entire horizontal space of its parent element (container), and vertical space equal to the height of its contents, thereby creating a "block". +<<< https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid b/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid new file mode 100644 index 000000000..9e09827a2 --- /dev/null +++ b/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid @@ -0,0 +1,20 @@ +created: 20220819100636227 +modified: 20220819101309072 +tags: [[Tables in WikiText]] +title: Table Classes, Captions, Headers and Footers +type: text/vnd.tiddlywiki + +Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: + +* `|myclass anotherClass|k` assigns the CSS classes "myclass" and "anotherClass" to the table +* `|This is a caption |c` gives the table the caption "This is a caption" +* `|Header|Header|h` adds a header row of cells with the text "Header" +* `|Footer|Footer|f` adds a footer row of cells with the text "Footer" + +<<wikitext-example-without-html src:"""|myclass anotherClass|k +|This is a caption |c +|Cell1 |Cell2 | +|Cell3 |Cell3 | +|Header|Header|h +|Footer|Footer|f +""">> diff --git a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid index 9c1d83ed4..16ed27320 100644 --- a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid @@ -1,6 +1,6 @@ caption: Tables created: 20130914132100000 -modified: 20220513115945053 +modified: 20220819103416274 tags: WikiText title: Tables in WikiText type: text/vnd.tiddlywiki @@ -66,17 +66,7 @@ To merge a table cell with the one above, use the special cell text `~`. To merg ! Table Classes, Captions, Headers and Footers -Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: +{{Table Classes, Captions, Headers and Footers}} -* assigns the CSS classes "myclass" and "anotherClass" to the table -* gives the table the caption "This is a caption" -* adds a header row of cells with the text "Header" -* adds a footer row of cells with the text "Footer" -<<wikitext-example-without-html src:"""|myclass anotherClass|k -|This is a caption |c -|Cell1 |Cell2 | -|Cell3 |Cell3 | -|Header|Header|h -|Footer|Footer|f -""">> +More examples can be found at: [[Tables in WikiText CSS Utility Classes]] \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid b/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid new file mode 100644 index 000000000..ad25bcd8b --- /dev/null +++ b/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid @@ -0,0 +1,20 @@ +created: 20220818093624828 +modified: 20221010074235929 +tags: WikiText +title: Utility Classes +type: text/vnd.tiddlywiki + +<<.from-version "5.2.4">> The following outlines a few predefined CSS classes intended to make it simpler to style [[HTML block-elements|HTML Block Elements]] and [[wikitext tables|Tables in WikiText CSS Utility Classes]]. + +!! General Utility Classes + +|`tc-center` |Centres a block-element to the middle of the container | +|`tc-max-width `|Expands a block-element to use the maximum width of the container | +|`tc-max-width-80`|Sets the width of a block-element to use 80% of the maximum container width. This setting is useful with the `tc-center` class | +|`tc-edit-max-width `|Expands [[TextWidget]]s to use the maximum available width. See [[ControlPanel -> Info -> Basics|$:/core/ui/ControlPanel/Basics]]| +|`tc-first-link-nowrap` |Ensures that any links in the first table column will never wrap to the next line | + +!! Table Utility Classes + +|`tc-table-no-border` |Removes the borders of a table | +|`tc-first-col-min-width` |The first column of a table will take up minimal possible width. It adapts to the content | \ No newline at end of file diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 17d3ebb39..39704ebcc 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -326,7 +326,7 @@ table { } table th, table td { - padding: 0 7px 0 7px; + padding: 4px 6px 4px 6px; border-top: 1px solid <<colour table-border>>; border-left: 1px solid <<colour table-border>>; } @@ -357,11 +357,36 @@ Table utility classes width: 1%; } +/* +** Utility classes work well with tables but also for other containers +*/ + /* First link A element will not wrap */ .tc-first-link-nowrap:first-of-type a { white-space: nowrap; } +/* Move the table to the center of the container */ +.tc-center { + margin-left: auto; + margin-right: auto; +} + +.tc-max-width { + width: 100%; +} + +.tc-max-width-80 { + max-width: 80%; +} + +/* Allow input and textarea to look like the ControlPanel inputs */ +.tc-edit-max-width input, +.tc-edit-max-width textarea { + width: 100%; + padding: 3px; +} + /* CSV parser plugin */ From aa5183a08e4cb60dcc25c8547e4ad34612f2ff21 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Mon, 14 Nov 2022 18:42:17 +0100 Subject: [PATCH 075/937] Add indentation to $:/TagManager (#6923) --- core/ui/TagManager.tid | 138 ++++++++++++++++++++++------------------- 1 file changed, 75 insertions(+), 63 deletions(-) diff --git a/core/ui/TagManager.tid b/core/ui/TagManager.tid index 3f972a157..e2d6d2fa8 100644 --- a/core/ui/TagManager.tid +++ b/core/ui/TagManager.tid @@ -3,89 +3,101 @@ icon: $:/core/images/tag-button color: #bbb \define lingo-base() $:/language/TagManager/ + \define iconEditorTab(type) \whitespace trim <$link to=""><<lingo Icons/None>></$link> <$list filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]"> -<$link to={{!!title}}> -<$transclude/> <$view field="title"/> -</$link> + <$link to={{!!title}}> + <$transclude/> <$view field="title"/> + </$link> </$list> \end + \define iconEditor(title) \whitespace trim <div class="tc-drop-down-wrapper"> -<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class="tc-btn-invisible tc-btn-dropdown">{{$:/core/images/down-arrow}}</$button> -<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type="popup" position="belowleft" text="" default=""> -<div class="tc-drop-down"> -<$linkcatcher actions="""<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>"""> -<<iconEditorTab type:"!">> -<hr/> -<<iconEditorTab type:"">> -</$linkcatcher> -</div> -</$reveal> + <$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class="tc-btn-invisible tc-btn-dropdown"> + {{$:/core/images/down-arrow}} + </$button> + <$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type="popup" position="belowleft" text="" default=""> + <div class="tc-drop-down"> + <$linkcatcher actions="""<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>"""> + <<iconEditorTab type:"!">> + <hr/> + <<iconEditorTab type:"">> + </$linkcatcher> + </div> + </$reveal> </div> \end + \define toggleButton(state) \whitespace trim <$reveal stateTitle=<<__state__>> type="match" text="closed" default="closed"> -<$button setTitle=<<__state__>> setTo="open" class="tc-btn-invisible tc-btn-dropdown" selectedClass="tc-selected"> -{{$:/core/images/info-button}} -</$button> + <$button setTitle=<<__state__>> setTo="open" class="tc-btn-invisible tc-btn-dropdown" selectedClass="tc-selected"> + {{$:/core/images/info-button}} + </$button> </$reveal> <$reveal stateTitle=<<__state__>> type="match" text="open" default="closed"> -<$button setTitle=<<__state__>> setTo="closed" class="tc-btn-invisible tc-btn-dropdown" selectedClass="tc-selected"> -{{$:/core/images/info-button}} -</$button> + <$button setTitle=<<__state__>> setTo="closed" class="tc-btn-invisible tc-btn-dropdown" selectedClass="tc-selected"> + {{$:/core/images/info-button}} + </$button> </$reveal> \end + \whitespace trim <table class="tc-tag-manager-table"> <tbody> -<tr> -<th><<lingo Colour/Heading>></th> -<th class="tc-tag-manager-tag"><<lingo Tag/Heading>></th> -<th><<lingo Count/Heading>></th> -<th><<lingo Icon/Heading>></th> -<th><<lingo Info/Heading>></th> -</tr> -<$list filter="[tags[]!is[system]sort[title]]"> -<tr> -<td><$edit-text field="color" tag="input" type="color"/></td> -<td>{{||$:/core/ui/TagTemplate}}</td> -<td><$count filter="[all[current]tagging[]]"/></td> -<td> -<$macrocall $name="iconEditor" title={{!!title}}/> -</td> -<td> -<$macrocall $name="toggleButton" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> -</td> -</tr> -<tr> -<td></td> -<td colspan="4"> -<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type="match" text="open" default=""> -<table> -<tbody> -<tr><td><<lingo Colour/Heading>></td><td><$edit-text field="color" tag="input" type="text" size="9"/></td></tr> -<tr><td><<lingo Icon/Heading>></td><td><$edit-text field="icon" tag="input" size="45"/></td></tr> -</tbody> -</table> -</$reveal> -</td> -</tr> -</$list> -<tr> -<td></td> -<td style="position:relative;"> -{{$:/core/ui/UntaggedTemplate}} -</td> -<td> -<small class="tc-menu-list-count"><$count filter="[untagged[]!is[system]] -[tags[]]"/></small> -</td> -<td></td> -<td></td> -</tr> + <tr> + <th><<lingo Colour/Heading>></th> + <th class="tc-tag-manager-tag"><<lingo Tag/Heading>></th> + <th><<lingo Count/Heading>></th> + <th><<lingo Icon/Heading>></th> + <th><<lingo Info/Heading>></th> + </tr> + <$list filter="[tags[]!is[system]sort[title]]"> + <tr> + <td><$edit-text field="color" tag="input" type="color"/></td> + <td>{{||$:/core/ui/TagTemplate}}</td> + <td><$count filter="[all[current]tagging[]]"/></td> + <td> + <$macrocall $name="iconEditor" title={{!!title}}/> + </td> + <td> + <$macrocall $name="toggleButton" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> + </td> + </tr> + <tr> + <td></td> + <td colspan="4"> + <$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type="match" text="open" default=""> + <table> + <tbody> + <tr> + <td><<lingo Colour/Heading>></td> + <td><$edit-text field="color" tag="input" type="text" size="9"/></td> + </tr> + <tr> + <td><<lingo Icon/Heading>></td> + <td><$edit-text field="icon" tag="input" size="45"/></td> + </tr> + </tbody> + </table> + </$reveal> + </td> + </tr> + </$list> + <tr> + <td></td> + <td style="position:relative;"> + {{$:/core/ui/UntaggedTemplate}} + </td> + <td> + <small class="tc-menu-list-count"><$count filter="[untagged[]!is[system]] -[tags[]]"/></small> + </td> + <td></td> + <td></td> + </tr> </tbody> </table> From 5e116d2a576c14e6ed51c7557f905d61849cff32 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Mon, 14 Nov 2022 18:48:00 +0100 Subject: [PATCH 076/937] Add data-tags and data-tiddler-title attributes to preview area (#6939) --- core/ui/EditTemplate/body/default.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/ui/EditTemplate/body/default.tid b/core/ui/EditTemplate/body/default.tid index 9f98efcba..a2128efb0 100644 --- a/core/ui/EditTemplate/body/default.tid +++ b/core/ui/EditTemplate/body/default.tid @@ -19,7 +19,7 @@ $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$ <$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/> -<div class="tc-tiddler-preview-preview"> +<div class="tc-tiddler-preview-preview" data-tiddler-title={{!!draft.title}} data-tags={{!!tags}}> <$transclude tiddler={{$:/state/editpreviewtype}} mode="inline"> From ea3503e30c3099a217d6d37aaf95db5da7a55e96 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Mon, 14 Nov 2022 23:04:30 +0100 Subject: [PATCH 077/937] Allow users to overwrite TOC default icons (#6913) * Allow users to overwrite TOC default icons * Fix docs as requested --- core/wiki/macros/toc.tid | 20 ++++++---- ...ective Expandable Example custom icons.tid | 16 ++++++++ .../tiddlers/macros/TableOfContentsMacro.tid | 38 ++++++++++++++++++- 3 files changed, 64 insertions(+), 10 deletions(-) create mode 100644 editions/tw5.com/tiddlers/demonstrations/TableOfContentsMacro Selective Expandable Example custom icons.tid diff --git a/core/wiki/macros/toc.tid b/core/wiki/macros/toc.tid index 6a6286ef3..9265b9751 100644 --- a/core/wiki/macros/toc.tid +++ b/core/wiki/macros/toc.tid @@ -1,6 +1,10 @@ title: $:/core/macros/toc tags: $:/tags/Macro + +\define toc-open-icon() $:/core/images/down-arrow +\define toc-closed-icon() $:/core/images/right-arrow + \define toc-caption() \whitespace trim <span class="tc-toc-caption tc-tiny-gap-left"> @@ -45,12 +49,12 @@ tags: $:/tags/Macro <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}> <$reveal type="nomatch" stateTitle=<<toc-state>> text="open"> <$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep"> - {{$:/core/images/right-arrow}} + <$transclude tiddler=<<toc-closed-icon>> /> </$button> </$reveal> <$reveal type="match" stateTitle=<<toc-state>> text="open"> <$button setTitle=<<toc-state>> setTo="close" class="tc-btn-invisible tc-popup-keep"> - {{$:/core/images/down-arrow}} + <$transclude tiddler=<<toc-open-icon>> /> </$button> </$reveal> <<toc-caption>> @@ -71,13 +75,13 @@ tags: $:/tags/Macro <li class=<<toc-item-class>>> <$reveal type="nomatch" stateTitle=<<toc-state>> text="open"> <$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep"> - {{$:/core/images/right-arrow}} + <$transclude tiddler=<<toc-closed-icon>> /> <<toc-caption>> </$button> </$reveal> <$reveal type="match" stateTitle=<<toc-state>> text="open"> <$button setTitle=<<toc-state>> setTo="close" class="tc-btn-invisible tc-popup-keep"> - {{$:/core/images/down-arrow}} + <$transclude tiddler=<<toc-open-icon>> /> <<toc-caption>> </$button> </$reveal> @@ -117,12 +121,12 @@ tags: $:/tags/Macro <$list filter="[all[current]tagging[]$sort$limit[1]]" variable="ignore" emptyMessage="<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>"> <$reveal type="nomatch" stateTitle=<<toc-state>> text="open"> <$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep"> - {{$:/core/images/right-arrow}} + <$transclude tiddler=<<toc-closed-icon>> /> </$button> </$reveal> <$reveal type="match" stateTitle=<<toc-state>> text="open"> <$button setTitle=<<toc-state>> setTo="close" class="tc-btn-invisible tc-popup-keep"> - {{$:/core/images/down-arrow}} + <$transclude tiddler=<<toc-open-icon>> /> </$button> </$reveal> </$list> @@ -144,13 +148,13 @@ tags: $:/tags/Macro <$list filter="[all[current]tagging[]$sort$limit[1]]" variable="ignore" emptyMessage="<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>"> <$reveal type="nomatch" stateTitle=<<toc-state>> text="open"> <$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep"> - {{$:/core/images/right-arrow}} + <$transclude tiddler=<<toc-closed-icon>> /> <<toc-caption>> </$button> </$reveal> <$reveal type="match" stateTitle=<<toc-state>> text="open"> <$button setTitle=<<toc-state>> setTo="close" class="tc-btn-invisible tc-popup-keep"> - {{$:/core/images/down-arrow}} + <$transclude tiddler=<<toc-open-icon>> /> <<toc-caption>> </$button> </$reveal> diff --git a/editions/tw5.com/tiddlers/demonstrations/TableOfContentsMacro Selective Expandable Example custom icons.tid b/editions/tw5.com/tiddlers/demonstrations/TableOfContentsMacro Selective Expandable Example custom icons.tid new file mode 100644 index 000000000..d5ade8eb8 --- /dev/null +++ b/editions/tw5.com/tiddlers/demonstrations/TableOfContentsMacro Selective Expandable Example custom icons.tid @@ -0,0 +1,16 @@ +caption: Selective (custom icons) +created: 20220819080004663 +modified: 20220819081049054 +order: 5 +tags: table-of-contents-example +title: Example Table of Contents: Selectively Expandable (custom icons) +type: text/vnd.tiddlywiki + +<<.from-version "5.2.4">> It is possible to define the `toc-open-icon` and `toc-closed-icon` variable, to change the icons used by the toc macros. This setting works for all toc-macro variants + +<$macrocall $name=".example" n="1" +eg="""<$let toc-open-icon="$:/core/images/fold-button" toc-closed-icon="$:/core/images/folder"> +<div class="tc-table-of-contents"> +<<toc-selective-expandable "Contents">> +</div> +</$let>"""/> diff --git a/editions/tw5.com/tiddlers/macros/TableOfContentsMacro.tid b/editions/tw5.com/tiddlers/macros/TableOfContentsMacro.tid index 3507f2008..c813fd1e6 100644 --- a/editions/tw5.com/tiddlers/macros/TableOfContentsMacro.tid +++ b/editions/tw5.com/tiddlers/macros/TableOfContentsMacro.tid @@ -1,5 +1,5 @@ created: 20140919155729620 -modified: 20201017134038305 +modified: 20220819093733569 tags: Macros [[Core Macros]] title: Table-of-Contents Macros type: text/vnd.tiddlywiki @@ -62,4 +62,38 @@ These two parameters are combined into a single [[filter expression|Filter Expre ;template : Optionally, the title of a tiddler to use as a [[template|TemplateTiddlers]] for transcluding the selected tiddler into the right-hand panel -[[Examples|Table-of-Contents Macros (Examples)]] +!! Custom Icons + +<<.from-version "5.2.4">> + +To change the icons used by the Table-of-Contents macros, redefine the macros `toc-open-icon` and `toc-closed-icon`. This setting works for all toc-macro variants. + +!!! Default Settings + +* <<.var toc-open-icon>>: `\define toc-open-icon() $:/core/images/down-arrow` + +* <<.var toc-closed-icon>>: `\define toc-closed-icon() $:/core/images/right-arrow` + +!!! Custom Definitions + +The default settings can be overwritten in your code using the define-pragma or the let-widget. The <<.wlink LetWidget>> widget can be used, if you have multiple table of contents macros in one tiddler, that need different icons. + +''Define new icons using a pragma'' + +``` +\define toc-open-icon() $:/core/images/fold-button +\define toc-closed-icon() $:/core/images/folder +... +``` + +''Define new icons using the let-widget'' + +``` +<$let toc-open-icon="$:/core/images/fold-button" toc-closed-icon="$:/core/images/folder"> +... +</$let> +``` + +!! Examples + +Learn more at [[Examples|Table-of-Contents Macros (Examples)]] \ No newline at end of file From 9b9ff1e843d1fb526dfef08aff2f5bae03c1ae56 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Tue, 15 Nov 2022 09:18:58 +0100 Subject: [PATCH 078/937] Extend pluginlibrary edition with a minimal test server (#6588) * pluginlibrary - minimal test server * changes suggested by Jeremy * use tmp instead of the files directory * new tmp-route * rename edition to test-pluginlibrary * fix .gitignore * remove StoryList tiddler * improve GettingStarted text * rename edtion test-pluginlibrary back to pluginlibrary * remove 2 tiddlers that shouldn't be there --- .gitignore | 1 + ...run a local plugin library for testing.tid | 42 +++++++++++++++++ .../pluginlibrary/tiddlers/GettingStarted.tid | 45 +++++++++++++++++++ .../tiddlers/PrereleaseLocalPluginLibrary.tid | 6 +++ .../tiddlers/meta/SiteSubtitle.tid | 3 ++ .../pluginlibrary/tiddlers/meta/SiteTitle.tid | 3 ++ ...ddlywiki_vanilla_options_sidebarlayout.tid | 3 ++ editions/pluginlibrary/tiddlywiki.info | 7 +++ 8 files changed, 110 insertions(+) create mode 100644 editions/dev/tiddlers/How to run a local plugin library for testing.tid create mode 100644 editions/pluginlibrary/tiddlers/GettingStarted.tid create mode 100644 editions/pluginlibrary/tiddlers/PrereleaseLocalPluginLibrary.tid create mode 100644 editions/pluginlibrary/tiddlers/meta/SiteSubtitle.tid create mode 100644 editions/pluginlibrary/tiddlers/meta/SiteTitle.tid create mode 100644 editions/pluginlibrary/tiddlers/system/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid diff --git a/.gitignore b/.gitignore index 0727034e1..ad7e8e07f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ tmp/ output/ node_modules/ + diff --git a/editions/dev/tiddlers/How to run a local plugin library for testing.tid b/editions/dev/tiddlers/How to run a local plugin library for testing.tid new file mode 100644 index 000000000..5662e0767 --- /dev/null +++ b/editions/dev/tiddlers/How to run a local plugin library for testing.tid @@ -0,0 +1,42 @@ +created: 20221114225038703 +modified: 20221114230502925 +tags: howto +title: How to run a local plugin library for testing +type: text/vnd.tiddlywiki + +!! Start the Library Server + +The "pluginlibrary" edition contains the components needed to set up a local server for ~TiddlyWiki plugin library testing or development. + +The following commands will create the library files and start a test server at http://localhost:8888 + +``` +cd /your/path/to/TiddlyWiki5/editions/pluginlibrary +tiddlywiki --build test-server +``` + +!! Important + +''This server is read-only. Nothing is saved back to the filesystem'' + +!! Test the Library with a Single File Wiki + +* Open a single file wiki and import the configuration tiddler form http://localhost:8888/#%24%3A%2Fconfig%2FLocalPluginLibrary +* Open the ''$:/ControlPanel : Plugins : "Get More Plugins"'' modal + +!! Test the Library with a Node.js Wiki + +* Create a new wiki with eg: + +<<< +``` +cd /temp/ +tiddlywiki my-wiki --init server +tiddlywiki my-wiki --listen +``` +<<< + +* Open "my-wiki" from http://localhost:8080 +* Import the http://localhost:8888/#%24%3A%2Fconfig%2FLocalPluginLibrary tiddler into "my-wiki" +* Open the ''$:/ControlPanel : Plugins : "Get More Plugins"'' modal + diff --git a/editions/pluginlibrary/tiddlers/GettingStarted.tid b/editions/pluginlibrary/tiddlers/GettingStarted.tid new file mode 100644 index 000000000..53c35cf11 --- /dev/null +++ b/editions/pluginlibrary/tiddlers/GettingStarted.tid @@ -0,0 +1,45 @@ +title: GettingStarted + +This edition contains the components needed to set up a local server for ~TiddlyWiki plugin library testing or development. + +!! Import Configuration + +Import the configuration tiddler: $:/config/LocalPluginLibrary to your "test wiki". + +!! Important + +''This server is read-only. Nothing is saved back to the filesystem'' + +!! Start the Library Server + +The following commands will create the library files and start a test server at http://localhost:8888 + +``` +cd /your/path/to/TiddlyWiki5/editions/pluginlibrary +tiddlywiki --build test-server +``` + +!! Test the Library with a Single File Wiki + +* Open a single file wiki and import the configuration tiddler form http://localhost:8888/#%24%3A%2Fconfig%2FLocalPluginLibrary +* Open the ''$:/ControlPanel : Plugins : "Get More Plugins"'' modal + +!! Test the Library with a Node.js Wiki + +* Create a new wiki with eg: + +<<< +``` +cd /temp/ +tiddlywiki my-wiki --init server +tiddlywiki my-wiki --listen +``` +<<< + +* Open my-wiki from http://localhost:8080 +* Import the http://localhost:8888/#%24%3A%2Fconfig%2FLocalPluginLibrary tiddler into "my-wiki" +* Open the ''~$:/ControlPanel : Plugins : "Get More Plugins"'' modal + +!! ~ControlPanel Plugin Tab + +{{$:/core/ui/ControlPanel/Plugins}} \ No newline at end of file diff --git a/editions/pluginlibrary/tiddlers/PrereleaseLocalPluginLibrary.tid b/editions/pluginlibrary/tiddlers/PrereleaseLocalPluginLibrary.tid new file mode 100644 index 000000000..f3cb2fd0d --- /dev/null +++ b/editions/pluginlibrary/tiddlers/PrereleaseLocalPluginLibrary.tid @@ -0,0 +1,6 @@ +title: $:/config/LocalPluginLibrary +tags: $:/tags/PluginLibrary +url: http://localhost:8888/files/local/library/tmp/index.html +caption: Local TiddlyWiki Plugin Library Test Server + +A locally installed version of the plugin library //Requires a local web server to share the library// diff --git a/editions/pluginlibrary/tiddlers/meta/SiteSubtitle.tid b/editions/pluginlibrary/tiddlers/meta/SiteSubtitle.tid new file mode 100644 index 000000000..07d2ed13d --- /dev/null +++ b/editions/pluginlibrary/tiddlers/meta/SiteSubtitle.tid @@ -0,0 +1,3 @@ +title: $:/SiteSubtitle + +<<version>> \ No newline at end of file diff --git a/editions/pluginlibrary/tiddlers/meta/SiteTitle.tid b/editions/pluginlibrary/tiddlers/meta/SiteTitle.tid new file mode 100644 index 000000000..988a3cfcc --- /dev/null +++ b/editions/pluginlibrary/tiddlers/meta/SiteTitle.tid @@ -0,0 +1,3 @@ +title: $:/SiteTitle + +Library test edition, plugin development \ No newline at end of file diff --git a/editions/pluginlibrary/tiddlers/system/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid b/editions/pluginlibrary/tiddlers/system/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid new file mode 100644 index 000000000..2bfa95e13 --- /dev/null +++ b/editions/pluginlibrary/tiddlers/system/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid @@ -0,0 +1,3 @@ +title: $:/themes/tiddlywiki/vanilla/options/sidebarlayout + +fluid-fixed \ No newline at end of file diff --git a/editions/pluginlibrary/tiddlywiki.info b/editions/pluginlibrary/tiddlywiki.info index b47af15ff..4f1ab1409 100644 --- a/editions/pluginlibrary/tiddlywiki.info +++ b/editions/pluginlibrary/tiddlywiki.info @@ -4,10 +4,17 @@ "tiddlywiki/pluginlibrary" ], "themes": [ + "tiddlywiki/vanilla", + "tiddlywiki/snowwhite" ], "includeWikis": [ ], "build": { + "test-server": [ + "--output", "./files/local/library/tmp", + "--build", "library", + "--listen", "port=8888" + ], "library": [ "--makelibrary","$:/UpgradeLibrary", "--savelibrarytiddlers","$:/UpgradeLibrary","[prefix[$:/]] -[[$:/plugins/tiddlywiki/upgrade]] -[[$:/plugins/tiddlywiki/translators]] -[[$:/plugins/tiddlywiki/pluginlibrary]] -[[$:/plugins/tiddlywiki/jasmine]]","recipes/library/tiddlers/","$:/UpgradeLibrary/List", From 830ffe64deaa8c127cf93c3f8033a34488d1e480 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 15 Nov 2022 11:13:02 +0000 Subject: [PATCH 079/937] Twitter Archivist: Add note about browser import only working on Chrome --- plugins/tiddlywiki/twitter-archivist/usage.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tiddlywiki/twitter-archivist/usage.tid b/plugins/tiddlywiki/twitter-archivist/usage.tid index 8981a5680..0dec251da 100644 --- a/plugins/tiddlywiki/twitter-archivist/usage.tid +++ b/plugins/tiddlywiki/twitter-archivist/usage.tid @@ -2,7 +2,7 @@ title: $:/plugins/tiddlywiki/twitter-archivist/usage ! In the Browser -To import a Twitter archive in the browser, click the button below and navigate to the root of the archive: +To import a Twitter archive in the browser (currently Chrome only), click the button below and navigate to the root of the archive: <$button> <$action-sendmessage $message="tm-load-twitter-archive"/> From 368963def0d783cb444fe559050e3598f6bf0379 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 15 Nov 2022 11:41:55 +0000 Subject: [PATCH 080/937] Revert "Allow $:/core/ui/ControlPanel/Basics to work in the story river + some docs about utility classes (#6912)" This reverts commit 10cb585dae7e71bd2c9969768307989828f56f52. --- core/ui/ControlPanel/Basics.tid | 5 +- editions/tw5.com/tiddlers/$__StoryList.tid | 6 +- ...Tables in WikiText CSS Utility Classes.tid | 81 ------------------- .../definitions/HTML Block Elements.tid | 9 --- ...e Classes Captions Headers and Footers.tid | 20 ----- .../tiddlers/wikitext/Tables in WikiText.tid | 16 +++- .../tiddlers/wikitext/Utility Classes.tid | 20 ----- themes/tiddlywiki/vanilla/base.tid | 27 +------ 8 files changed, 19 insertions(+), 165 deletions(-) delete mode 100644 editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid delete mode 100644 editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid delete mode 100644 editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid delete mode 100644 editions/tw5.com/tiddlers/wikitext/Utility Classes.tid diff --git a/core/ui/ControlPanel/Basics.tid b/core/ui/ControlPanel/Basics.tid index 34aa17986..46df7e77c 100644 --- a/core/ui/ControlPanel/Basics.tid +++ b/core/ui/ControlPanel/Basics.tid @@ -20,16 +20,15 @@ caption: {{$:/language/ControlPanel/Basics/Caption}} \end \whitespace trim -|tc-max-width tc-edit-max-width|k |<<lingo Version/Prompt>> |''<<version>>'' | |<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | |<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | |<$link to="$:/status/UserName"><<lingo Username/Prompt>></$link> |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> | |<$link to="$:/config/AnimationDuration"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> | -|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | +|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers" class="tc-edit-texteditor"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | |<$link to="$:/language/DefaultNewTiddlerTitle"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler="$:/language/DefaultNewTiddlerTitle" default="" tag="input"/> | |<$link to="$:/config/NewJournal/Title"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler="$:/config/NewJournal/Title" default="" tag="input"/> | -|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" tag="textarea" default=""/> | +|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" tag="textarea" class="tc-edit-texteditor" default=""/> | |<$link to="$:/config/NewTiddler/Tags"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewTiddler/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/NewJournal/Tags"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewJournal/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/AutoFocus"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} | diff --git a/editions/tw5.com/tiddlers/$__StoryList.tid b/editions/tw5.com/tiddlers/$__StoryList.tid index 37a65e998..37ea75152 100644 --- a/editions/tw5.com/tiddlers/$__StoryList.tid +++ b/editions/tw5.com/tiddlers/$__StoryList.tid @@ -1,5 +1,5 @@ -created: 20221010074222386 -list: [[HTML Block Elements]] [[Table Classes, Captions, Headers and Footers]] [[Tables in WikiText]] [[Tables in WikiText CSS Utility Classes]] -modified: 20221010074406819 +created: 20220728145919904 +list: Brackets Base64 HelloThere GettingStarted Community +modified: 20220728145919904 title: $:/StoryList type: text/vnd.tiddlywiki \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid b/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid deleted file mode 100644 index 14abc1c86..000000000 --- a/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid +++ /dev/null @@ -1,81 +0,0 @@ -created: 20220817153236691 -modified: 20221010074314452 -tags: [[Tables in WikiText]] -title: Tables in WikiText CSS Utility Classes -type: text/vnd.tiddlywiki - -~WikiText tables can be styled by applying CSS classes. For basic information on wiktext tables and how to style them, see [[Tables in WikiText]]. - -{{Table Classes, Captions, Headers and Footers}} - -As seen above, the resulting table is left aligned and grows to fit the content. This is the browser default layout behaviour for tables. To get another behaviour, various CSS classes can be added into the "`k` row". - -! Utility Classes - -{{Utility Classes}} - -! Examples - -The following examples apply the style classes to tables but the "General Utility Classes" can as well be used on DIVs or other [[HTML block elements|HTML Block Elements]] - -!! Centred Table - -To center a table horizontally, use `tc-center`: - -<<wikitext-example-without-html src:"""|tc-center|k -|This is a caption |c -|Cell1 |Cell2 | -|Cell3 |Cell4 | -|Header|Header|h -|Footer|Footer|f -""">> - -!! Centred Table, 80% Width - -To add empty left and right margins to a table that is otherwise full-tiddler-width, you can use `tc-max-width-80` - -<<wikitext-example-without-html src:"""|tc-center tc-max-width-80|k -|This is a caption |c -|Cell1 |<<.lorem>> | -|<<.lorem>> |Cell4 | -|Header|Header|h -""">> - -!! Table with Maximum Width - -To expand a table to full tiddler width, use `tc-max-width` - -<<wikitext-example-without-html src:"""|tc-max-width|k -|Header|Header|h -|Cell1 |Cell2 | -|Cell3 |Cell4 | -""">> - -!! Table with First Column Minimum Width - -The following example shows a simple "form" where the first columns width is adjusted to its content by means of `tc-first-col-min-width` - -<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width|k -|Header|Header|h -|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | -|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | -""">> - -!! Table with Maximum Width ~TextWidgets - -Here, the previous "form" is styled further to give the [[TextWidget]]s full width by adding the class `tc-edit-max-width` - -<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width|k -|Header|Header|h -|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | -|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | -""">> - -!! Table with No Borders - -The following is a table with maximum width. It contains [[TextWidget]]s with maximum width. The first column is set to be minimum width. Further, all links in the first column are set to __not__ line break (wrap) regardless of window resize. - -<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width tc-table-no-border tc-first-link-nowrap|k -| Cell1|<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | -|^ [[Link to a tiddler]]<br>some more text|<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | -""">> diff --git a/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid b/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid deleted file mode 100644 index ce0bdaa32..000000000 --- a/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid +++ /dev/null @@ -1,9 +0,0 @@ -created: 20220818091959523 -modified: 20220818092101307 -tags: Definitions -title: HTML Block Elements -type: text/vnd.tiddlywiki - -<<< -HTML (Hypertext Markup Language) elements historically were categorized as either "block-level" elements or "inline-level" elements. Since this is a presentational characteristic it is nowadays specified by CSS in the Flow Layout. A Block-level element occupies the entire horizontal space of its parent element (container), and vertical space equal to the height of its contents, thereby creating a "block". -<<< https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid b/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid deleted file mode 100644 index 9e09827a2..000000000 --- a/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid +++ /dev/null @@ -1,20 +0,0 @@ -created: 20220819100636227 -modified: 20220819101309072 -tags: [[Tables in WikiText]] -title: Table Classes, Captions, Headers and Footers -type: text/vnd.tiddlywiki - -Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: - -* `|myclass anotherClass|k` assigns the CSS classes "myclass" and "anotherClass" to the table -* `|This is a caption |c` gives the table the caption "This is a caption" -* `|Header|Header|h` adds a header row of cells with the text "Header" -* `|Footer|Footer|f` adds a footer row of cells with the text "Footer" - -<<wikitext-example-without-html src:"""|myclass anotherClass|k -|This is a caption |c -|Cell1 |Cell2 | -|Cell3 |Cell3 | -|Header|Header|h -|Footer|Footer|f -""">> diff --git a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid index 16ed27320..9c1d83ed4 100644 --- a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid @@ -1,6 +1,6 @@ caption: Tables created: 20130914132100000 -modified: 20220819103416274 +modified: 20220513115945053 tags: WikiText title: Tables in WikiText type: text/vnd.tiddlywiki @@ -66,7 +66,17 @@ To merge a table cell with the one above, use the special cell text `~`. To merg ! Table Classes, Captions, Headers and Footers -{{Table Classes, Captions, Headers and Footers}} +Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: +* assigns the CSS classes "myclass" and "anotherClass" to the table +* gives the table the caption "This is a caption" +* adds a header row of cells with the text "Header" +* adds a footer row of cells with the text "Footer" -More examples can be found at: [[Tables in WikiText CSS Utility Classes]] \ No newline at end of file +<<wikitext-example-without-html src:"""|myclass anotherClass|k +|This is a caption |c +|Cell1 |Cell2 | +|Cell3 |Cell3 | +|Header|Header|h +|Footer|Footer|f +""">> diff --git a/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid b/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid deleted file mode 100644 index ad25bcd8b..000000000 --- a/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid +++ /dev/null @@ -1,20 +0,0 @@ -created: 20220818093624828 -modified: 20221010074235929 -tags: WikiText -title: Utility Classes -type: text/vnd.tiddlywiki - -<<.from-version "5.2.4">> The following outlines a few predefined CSS classes intended to make it simpler to style [[HTML block-elements|HTML Block Elements]] and [[wikitext tables|Tables in WikiText CSS Utility Classes]]. - -!! General Utility Classes - -|`tc-center` |Centres a block-element to the middle of the container | -|`tc-max-width `|Expands a block-element to use the maximum width of the container | -|`tc-max-width-80`|Sets the width of a block-element to use 80% of the maximum container width. This setting is useful with the `tc-center` class | -|`tc-edit-max-width `|Expands [[TextWidget]]s to use the maximum available width. See [[ControlPanel -> Info -> Basics|$:/core/ui/ControlPanel/Basics]]| -|`tc-first-link-nowrap` |Ensures that any links in the first table column will never wrap to the next line | - -!! Table Utility Classes - -|`tc-table-no-border` |Removes the borders of a table | -|`tc-first-col-min-width` |The first column of a table will take up minimal possible width. It adapts to the content | \ No newline at end of file diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 39704ebcc..17d3ebb39 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -326,7 +326,7 @@ table { } table th, table td { - padding: 4px 6px 4px 6px; + padding: 0 7px 0 7px; border-top: 1px solid <<colour table-border>>; border-left: 1px solid <<colour table-border>>; } @@ -357,36 +357,11 @@ Table utility classes width: 1%; } -/* -** Utility classes work well with tables but also for other containers -*/ - /* First link A element will not wrap */ .tc-first-link-nowrap:first-of-type a { white-space: nowrap; } -/* Move the table to the center of the container */ -.tc-center { - margin-left: auto; - margin-right: auto; -} - -.tc-max-width { - width: 100%; -} - -.tc-max-width-80 { - max-width: 80%; -} - -/* Allow input and textarea to look like the ControlPanel inputs */ -.tc-edit-max-width input, -.tc-edit-max-width textarea { - width: 100%; - padding: 3px; -} - /* CSV parser plugin */ From 419b3b3534391abe07f8eb04166e72b1d17a9ac7 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 15 Nov 2022 17:12:54 +0000 Subject: [PATCH 081/937] Twitter Archivist: Update todo list --- plugins/tiddlywiki/twitter-archivist/todo.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tiddlywiki/twitter-archivist/todo.tid b/plugins/tiddlywiki/twitter-archivist/todo.tid index 62a7912c2..e01c6adca 100644 --- a/plugins/tiddlywiki/twitter-archivist/todo.tid +++ b/plugins/tiddlywiki/twitter-archivist/todo.tid @@ -5,10 +5,10 @@ title: $:/plugins/tiddlywiki/twitter-archivist/todo * Fixed display of tweet account information * Data model documentation * Expand t.co URLs +* Wikify hashtags !! To Do -* Wikify hashtags * Import direct messages * Control over which media types are imported * `_canonical_uri` support for media From 79ec96cb59fe5f1574ce063ff1c310788ed305cc Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 15 Nov 2022 17:58:50 +0000 Subject: [PATCH 082/937] Remove old link --- editions/tw5.com/tiddlers/hellothere/HelloThere.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index 5cf3a4ec3..c7097c677 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -1,5 +1,5 @@ created: 20130822170200000 -list: [[A Gentle Guide to TiddlyWiki]] [[Discover TiddlyWiki]] [[Some of the things you can do with TiddlyWiki]] [[Ten reasons to switch to TiddlyWiki]] Examples [[What happened to the original TiddlyWiki?]] [[HelloThumbnail - TWEUM2017]] +list: [[A Gentle Guide to TiddlyWiki]] [[Discover TiddlyWiki]] [[Some of the things you can do with TiddlyWiki]] [[Ten reasons to switch to TiddlyWiki]] Examples [[What happened to the original TiddlyWiki?]] modified: 20220802122551819 tags: TableOfContents title: HelloThere From a99f934371f1f0688e66e229a493c3b0b46943dd Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 16 Nov 2022 08:26:35 +0000 Subject: [PATCH 083/937] Fix build-site.sh hang with #6588 --- bin/build-site.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-site.sh b/bin/build-site.sh index 0dff6d0b1..388782da4 100755 --- a/bin/build-site.sh +++ b/bin/build-site.sh @@ -459,7 +459,7 @@ node $TW5_BUILD_TIDDLYWIKI \ --verbose \ --load $TW5_BUILD_OUTPUT/build.tid \ --output $TW5_BUILD_OUTPUT/library/$TW5_BUILD_VERSION \ - --build \ + --build library\ || exit 1 # Delete the temporary build tiddler From 3713ee4fa98cb3a9e0ccc3a23348e9a4fed54da4 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 16 Nov 2022 17:27:10 +0000 Subject: [PATCH 084/937] Update release note --- editions/prerelease/tiddlers/Release 5.2.4.tid | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index 3f38343a8..aec127496 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -1,6 +1,6 @@ caption: 5.2.4 -created: 20221101094408196 -modified: 20221101094408196 +created: 20221116172656216 +modified: 20221116172656216 tags: ReleaseNotes title: Release 5.2.4 type: text/vnd.tiddlywiki @@ -9,13 +9,14 @@ type: text/vnd.tiddlywiki ! Plugin Improvements -* +* New [[Twitter Archivist|./editions/twitter-archivist]] plugin to imports the tweets and associated media from a Twitter Archive as individual tiddlers ! Translation improvement Improvements to the following translations: * Chinese +* French * Polish * Spanish * Japanese @@ -37,6 +38,7 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/36896c3db8c9678c0385a561996248a6f00a45ff">> opening a tiddler in a new window to use the [[View Template Body Cascade]] * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6970">> detection of infinite recursion errors in widgets and filters * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6877">> default styles for [[styled runs|Styles and Classes in WikiText]] +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6881">> upgrade wizard to make the version number more prominent ! Widget Improvements @@ -55,7 +57,10 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/166a1565843878083fb1eba47c73b8e67b78400d">> safe mode to prevent globally disabling parser rules * <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/commit/1df4c29d73073788ba3859668112e8bb46171a6c">> restriction of the LetWidget being unable to create variables whose names begin with a dollar sign * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6735">> keyboard shortcut handling to allow to global shortcuts to override all other shortcuts - +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/965bd090a905f5756e79124b698c894f7f72ad5b">> [[list-links Macro]] to allow the rendered field to be overriden +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6913">> [[Table-of-Contents Macros]] to allow the default icons to be overridden +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6939">> ''data-tags-*'' and ''data-tiddler-title'' attributes to the edit preview area +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/5947">> [[timeline Macro]] to override the link template ! Bug Fixes @@ -71,6 +76,9 @@ Improvements to the translation features of TiddlyWiki: ! Node.js Improvements * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6947">> console logging to avoid spaces and `<empty string>` message +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7014">> problem with lazy loading deleting tiddler bodies under certian circumstances +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/344110e2890caf711ab8f3c4f4deaa7d86771231">> handling of ".mp4" file extension so that it defaults to video not audio +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6588">> test server to the plugin library edition ! Performance Improvements @@ -83,6 +91,7 @@ Improvements to the translation features of TiddlyWiki: [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: <<.contributors """ +AnthonyMuscio bestony btheado BramChen From 39e8c8b12550db63a72d36cbb61f0e3476aaee73 Mon Sep 17 00:00:00 2001 From: Talha Mansoor <talha131@gmail.com> Date: Sun, 20 Nov 2022 03:11:46 +0500 Subject: [PATCH 085/937] Fix modified timestamp (#7046) --- .../tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid b/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid index 447975ffc..7f98e3b13 100644 --- a/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid +++ b/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid @@ -4,7 +4,7 @@ created: 20131219100608529 delivery: DIY description: Flexible hosting on your own machine or in the cloud method: sync -modified: 20221151230831173 +modified: 20221115230831173 tags: Saving [[TiddlyWiki on Node.js]] Windows Mac Linux title: Installing TiddlyWiki on Node.js type: text/vnd.tiddlywiki From c663d2ba00219f15df581d00ea24790a5c61972d Mon Sep 17 00:00:00 2001 From: Talha Mansoor <talha131@gmail.com> Date: Sun, 20 Nov 2022 03:13:02 +0500 Subject: [PATCH 086/937] Sort completed tasks by 'modified' instead of 'created' field (#7047) --- .../demonstrations/Tasks/TaskManagementExampleDraggable.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/demonstrations/Tasks/TaskManagementExampleDraggable.tid b/editions/tw5.com/tiddlers/demonstrations/Tasks/TaskManagementExampleDraggable.tid index e981edd09..4ec1de69a 100644 --- a/editions/tw5.com/tiddlers/demonstrations/Tasks/TaskManagementExampleDraggable.tid +++ b/editions/tw5.com/tiddlers/demonstrations/Tasks/TaskManagementExampleDraggable.tid @@ -16,7 +16,7 @@ This is a version of the TaskManagementExample enhanced with the ability to drag //(Listed in reverse order of completion)// -<$list filter="[!has[draft.of]tag[task]tag[done]sort[created]]"> +<$list filter="[!has[draft.of]tag[task]tag[done]sort[modified]]"> <div> <$checkbox tag="done"> ~~<$link/>~~</$checkbox> </div> From ea150029f51e777d171f3f1afc1e623ac3e77941 Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Sat, 19 Nov 2022 23:13:35 +0100 Subject: [PATCH 087/937] add a lot of small language tweaks and fixes to Polish translation (#7045) --- languages/pl-PL/Buttons.multids | 6 ++-- languages/pl-PL/ControlPanel.multids | 50 +++++++++++++++------------- languages/pl-PL/ThemeTweaks.multids | 6 ++-- 3 files changed, 32 insertions(+), 30 deletions(-) diff --git a/languages/pl-PL/Buttons.multids b/languages/pl-PL/Buttons.multids index 571e3600a..54691581d 100644 --- a/languages/pl-PL/Buttons.multids +++ b/languages/pl-PL/Buttons.multids @@ -81,7 +81,7 @@ Palette/Caption: paleta Palette/Hint: Wybierz paletę kolorów Permalink/Caption: bezpośredni link Permalink/Hint: Ustaw adres w przeglądarce na bezpośredni link do tego tiddlera -Permaview/Caption: permanenty widok +Permaview/Caption: link do obecnego widoku Permaview/Hint: Ustaw adres w przeglądarce na bezpośredni link do obecnego Story River Print/Caption: wydrukuj stronę Print/Hint: Drukuje aktualną stronę @@ -97,7 +97,7 @@ HideSideBar/Caption: ukryj menu boczne HideSideBar/Hint: Ukryj menu boczne ShowSideBar/Caption: pokaż menu boczne ShowSideBar/Hint: Pokaż menu boczne -TagManager/Caption: Menedżer tagów +TagManager/Caption: menedżer tagów TagManager/Hint: Otwórz menedżer tagów Timestamp/Caption: aktualizacje czasu Timestamp/Hint: Wybierz czy zmiany mają aktualizować czas @@ -124,7 +124,7 @@ Excise/Caption/Replace/Macro: makro Excise/Caption/Replace/Link: link Excise/Caption/Replace/Transclusion: transkluzja Excise/Caption/Tag: Otaguj nowego tiddlera nazwą tego -Excise/Caption/TiddlerExists: Uwaga: Tiddler już istnieje +Excise/Caption/TiddlerExists: Uwaga: tiddler już istnieje Excise/Hint: Wytnij zaznaczony tekst i wstaw go do nowego tidlera Heading1/Caption: nagłówek 1 Heading1/Hint: Zmień zaznaczony tekst na nagłówek 1. stopnia diff --git a/languages/pl-PL/ControlPanel.multids b/languages/pl-PL/ControlPanel.multids index a11d35298..38e4b7fad 100644 --- a/languages/pl-PL/ControlPanel.multids +++ b/languages/pl-PL/ControlPanel.multids @@ -5,17 +5,19 @@ Advanced/Hint: Wewnętrzne informacje na temat TiddlyWiki Appearance/Caption: Wyświetlanie Appearance/Hint: Dostosowywanie wyglądu tej TiddlyWiki Basics/AnimDuration/Prompt: Długość animacji -Basics/AutoFocus/Prompt: Domyślne pole z fokusem dla nowych tiddlerów +Basics/AutoFocus/Prompt: Domyślne wybrane pole do edycji przy tworzeniu nowego tiddlera Basics/Caption: Podstawowe -Basics/DefaultTiddlers/BottomHint: Używaj [[podwójnych nawiasów kwadratowych]] dla nazw ze spacjami. Możesz też {{przywrócić ostatnią sesję||$:/snippets/retain-story-ordering-button}} +Basics/DefaultTiddlers/BottomHint: Tiddlery, które mają spację w nazie otocz [[podwójnymi nawiasami kwadratowymi]]. Możesz też ustawić, by zawsze widzieć {{ostatnio otwarte tiddlery||$:/snippets/retain-story-ordering-button}} +Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">retain story ordering</$button> +Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to {{retain story ordering||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Domyślnie otwarte tiddlery Basics/DefaultTiddlers/TopHint: Wybierz które tiddlery mają być widoczne przy uruchomieniu Basics/Language/Prompt: Cześć! Wybrany język to: -Basics/NewJournal/Title/Prompt: Tytuł nowych dzienników -Basics/NewJournal/Text/Prompt: Treść nowych dzienników -Basics/NewJournal/Tags/Prompt: Tagi nowych dzienników -Basics/NewTiddler/Title/Prompt: Tytuł nowych tiddlerów -Basics/NewTiddler/Tags/Prompt: Tagi nowych tiddlerów +Basics/NewJournal/Title/Prompt: Domyślny tytuł nowych dzienników +Basics/NewJournal/Text/Prompt: Domyślna treść nowych dzienników +Basics/NewJournal/Tags/Prompt: Domyślne tagi nowych dzienników +Basics/NewTiddler/Title/Prompt: Domyślny tytuł nowych tiddlerów +Basics/NewTiddler/Tags/Prompt: Domyślne tagi nowych tiddlerów Basics/OverriddenShadowTiddlers/Prompt: Liczba nadpisanych tiddlerów-cieni Basics/RemoveTags: Zaktualizuj do obecnego formatu Basics/RemoveTags/Hint: Zaktualizuj konfigurację tagów do najnowszego formatu @@ -58,7 +60,7 @@ LoadedModules/Caption: Wczytane Moduły LoadedModules/Hint: To są wszystie wczytane moduły podlinkowane do swoich tiddlerów źródłowych. Te zapisane kursywą nie posiadają źródłowych tiddlerów, zwykle dlatego, że były skonfigorwane podczas procesu uruchomienia. Palette/Caption: Paleta Palette/Editor/Clone/Caption: kopiuj -Palette/Editor/Clone/Prompt: Zalecane jest skopiowanie taj ukrytej palety przed edycją +Palette/Editor/Clone/Prompt: Zalecamy skopiowanie tej palety przed zmianą kolorów Palette/Editor/Delete/Hint: usuń tą konfigurację z obecnej palety Palette/Editor/Names/External/Show: Pokaż nazwy kolorów, które nie są częścią wybranej palety Palette/Editor/Prompt/Modified: Ukryta paleta została zmieniona @@ -144,7 +146,7 @@ Settings/AutoSave/Disabled/Description: Nie zapisuj zmian automatycznie Settings/AutoSave/Enabled/Description: Zapisuj zmiany automatycznie Settings/AutoSave/Hint: Próbuj automatycznie zapisać zmiany podczas edycji, gdy używasz wspierającego to modułu zapisującego Settings/CamelCase/Caption: Camel Case WikiLinki -Settings/CamelCase/Hint: Możesz wyłączyć automatyczne linkowanie fraz w ~CamelCase. Wymaga ponownego uruchomienia. +Settings/CamelCase/Hint: Możesz wyłączyć automatyczne linkowanie fraz w ~CamelCase; wymaga ponownego uruchomienia Settings/CamelCase/Description: Włącz automatyczne linkowanie ~CamelCase Settings/Caption: Ustawienia Settings/EditorToolbar/Caption: Pasek Narzędzi Edytora @@ -165,11 +167,11 @@ Settings/NavigationHistory/Hint: Aktualizuj historię nawigacji przeglądarki pr Settings/NavigationHistory/No/Description: Nie aktualizuj historii Settings/NavigationHistory/Yes/Description: Aktualizuj historię Settings/NavigationPermalinkviewMode/Caption: Tryb linków bezpośrednich/widoku -Settings/NavigationPermalinkviewMode/Hint: Ustal jak linki bezośrednie/widok się zachowują: +Settings/NavigationPermalinkviewMode/Hint: Ustal jak linki bezpośrednie/widok się zachowują: Settings/NavigationPermalinkviewMode/CopyToClipboard/Description: Skopiuj URL do linku bezpośredniego/widoku do schowka Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description: Zaktualizuj pasek adresu o URL do linku bezpośredniego/widoku -Settings/PerformanceInstrumentation/Caption: Logowanie w Konsoli -Settings/PerformanceInstrumentation/Hint: Uruchamia lokowanie w konsoli deweloperskiej przeglądarki. Wymagane ponowne uruchmoenie +Settings/PerformanceInstrumentation/Caption: Logowanie wydajności w Konsoli +Settings/PerformanceInstrumentation/Hint: Uruchamia logowanie wydajności w konsoli deweloperskiej przeglądarki; wymaga ponownego uruchomienia Settings/PerformanceInstrumentation/Description: Włącz logowanie Settings/ToolbarButtonStyle/Caption: Styl Przycisków Paska Narzędzi Settings/ToolbarButtonStyle/Hint: Wybierz styl przycisków w pasku narzędzi @@ -208,22 +210,22 @@ Stylesheets/Hint: To jest wyrenderowany CSS obecnych tiddlerów otagowanych jako Stylesheets/Restore/Caption: Przywróć Theme/Caption: Motyw Theme/Prompt: Obecny motyw: -TiddlerFields/Caption: Pola Tiddlerów +TiddlerFields/Caption: Pola tiddlerów TiddlerFields/Hint: To jest pełna lista wszystich pól użytych w tej wiki (wliczając systemowe tiddlery ale nie tiddlery-cienie) -TiddlerColour/Caption: Kolor Tiddlera +TiddlerColour/Caption: Kolor tiddlera TiddlerColour/Hint: Ta kaskada określa kolor używany do wyswietlania tiddlera (kolor ikony oraz taga). -TiddlerIcon/Caption: Ikona Tiddlera -TiddlerIcon/Hint: Ta kaskada określa ikonę używaną przez Tiddlera. +TiddlerIcon/Caption: Ikona tiddlera +TiddlerIcon/Hint: Ta kaskada określa ikonę używaną przez tiddlera. Toolbars/Caption: Paski Narzędzi -Toolbars/EditToolbar/Caption: Edytuj Pasek Narzędzi -Toolbars/EditToolbar/Hint: Wybierz, które przyciski mają być widoczne podczas edycji tiddlera. Przeciągaj by zmieniać kolejność. +Toolbars/EditToolbar/Caption: Pasek narzędzi przy edycji tiddlera +Toolbars/EditToolbar/Hint: Wybierz, które przyciski mają być widoczne na górze okna edycji tiddlera. Możesz zmienić ich kolejnośc przeciągając wiersze. Toolbars/Hint: Wybierz, które przyciski mają być widoczne. -Toolbars/PageControls/Caption: Pasek Narzędzi Strony -Toolbars/PageControls/Hint: Wybierz, które przyciski mają być widoczne w głónym pasku narzędzi. Przeciągaj by zmieniać kolejność. -Toolbars/EditorToolbar/Caption: Pasek Narzędzi edytora -Toolbars/EditorToolbar/Hint: Wybierz które przyciski mają być widoczne w pasku narzędzi edytora. Pamiętaj, że tylko niektóre z nich są wyświetlane przy róznych typach tiddlerów. Przeciągaj by zmieniać kolejność -Toolbars/ViewToolbar/Caption: Pasek Narzędzi Oglądania -Toolbars/ViewToolbar/Hint: Wybierz które przyciski są widoczne podczas oglądania tiddlera. Przeciągaj by zmieniać kolejność. +Toolbars/PageControls/Caption: Pasek narzędzi strony +Toolbars/PageControls/Hint: Wybierz, które przyciski mają być widoczne w głównym pasku narzędzi w menu bocznym. Możesz zmienić ich kolejnośc przeciągając wiersze. +Toolbars/EditorToolbar/Caption: Pasek narzędzi edytora treści +Toolbars/EditorToolbar/Hint: Wybierz które przyciski mają być widoczne w pasku narzędzi edytora treści tiddlera. Zależnie od typu edytowanego Tiddlera niektóre z nich mogą być niedostępne. Możesz zmienić ich kolejnośc przeciągając wiersze. +Toolbars/ViewToolbar/Caption: Pasek narzędzi wyświetlania +Toolbars/ViewToolbar/Hint: Wybierz które przyciski są widoczne obok tytułu podczas wyświetlania tiddlera. Możesz zmienić ich kolejnośc przeciągając wiersze. Tools/Download/Full/Caption: Pobierz całą wiki. ViewTemplateBody/Caption: Treść Wyświetlanego Tiddlera ViewTemplateBody/Hint: Ta kaskada określa szablon wyświetlania treści tiddlera (czyli jego tekstu, w przeciwieństwie do kaskady 'Widok Tiddlera'). diff --git a/languages/pl-PL/ThemeTweaks.multids b/languages/pl-PL/ThemeTweaks.multids index f3b12f8da..ab30752f9 100644 --- a/languages/pl-PL/ThemeTweaks.multids +++ b/languages/pl-PL/ThemeTweaks.multids @@ -6,9 +6,9 @@ Options: Opcje Options/SidebarLayout: Układ menu bocznego Options/SidebarLayout/Fixed-Fluid: Stałe Story River, zmienne menu boczne Options/SidebarLayout/Fluid-Fixed: Zmienne Story River, stałe menu boczne -Options/StickyTitles: Przyczep nazwy -Options/StickyTitles/Hint: Spowoduje, że nazwa tiddlera będzie "przyklejona" do górnej części okna przeglądarki -Options/CodeWrapping: Łam długie linie kodu do nowej linii +Options/StickyTitles: Przyklej tytuł i pasek narzędzi +Options/StickyTitles/Hint: Tytuł obecnego tiddlera oraz jego pasek narzędzi będzie przyklejony do góry okna przeglądarki +Options/CodeWrapping: Łam długie linie kodu Settings: Ustawienia Settings/FontFamily: Czcionka Settings/CodeFontFamily: Czcionka kodu From 994c5a297083e0cb8f90b7d26b6c4071d2117c66 Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Sat, 19 Nov 2022 23:23:36 +0100 Subject: [PATCH 088/937] fix incorrect quote characters used in a code example (#7035) --- editions/tw5.com/tiddlers/features/DateFormat.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/features/DateFormat.tid b/editions/tw5.com/tiddlers/features/DateFormat.tid index ef7bcde98..8a08352ec 100644 --- a/editions/tw5.com/tiddlers/features/DateFormat.tid +++ b/editions/tw5.com/tiddlers/features/DateFormat.tid @@ -8,7 +8,7 @@ The default representation of dates is a compact string such as `202110021538020 The display format for this string can be controlled with a template. For example, transcluding the `modified` field automatically applies a template to display the date as `Sat Oct 02 2021 17:40:50 GMT+0200 (Central European Summer Time)`. A few widgets and filter operators allow you to manually specify a template, for example the ViewWidget: -`<$view field=modified format=date template=“DDth mmm YYYY 0hh:0mm:0ss” />` +`<$view field=modified format=date template="DDth mmm YYYY 0hh:0mm:0ss" />` The date string is processed with the following substitutions: From 6955f14c3ce41eb6ce93fb2df626a43d9e0e56c5 Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Sun, 20 Nov 2022 18:26:14 +0100 Subject: [PATCH 089/937] add a hidden config to disable Syncer logging to the console (#7049) --- core/modules/startup/startup.js | 6 +++++- .../hiddensettings/Hidden Setting SyncLogging.tid | 13 +++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 editions/tw5.com/tiddlers/hiddensettings/Hidden Setting SyncLogging.tid diff --git a/core/modules/startup/startup.js b/core/modules/startup/startup.js index f681b71d1..e0990228f 100755 --- a/core/modules/startup/startup.js +++ b/core/modules/startup/startup.js @@ -121,7 +121,11 @@ exports.startup = function() { }); // Set up the syncer object if we've got a syncadaptor if($tw.syncadaptor) { - $tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor}); + $tw.syncer = new $tw.Syncer({ + wiki: $tw.wiki, + syncadaptor: $tw.syncadaptor, + logging: $tw.wiki.getTiddlerText('$:/config/SyncLogging', "yes") === "yes" + }); } // Setup the saver handler $tw.saverHandler = new $tw.SaverHandler({ diff --git a/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting SyncLogging.tid b/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting SyncLogging.tid new file mode 100644 index 000000000..558cc2bf5 --- /dev/null +++ b/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting SyncLogging.tid @@ -0,0 +1,13 @@ +created: 20190903192324700 +modified: 20190903192324700 +tags: [[Hidden Settings]] +title: Hidden Setting: Sync Logging +type: text/vnd.tiddlywiki + +Specifies whether [[Syncadaptor|https://tiddlywiki.com/dev/#Syncadaptor]] should log information to the browser's developer console or not. + +Defaults to `yes`. Set to `no` to disable logging. + +Changing needs restart to take effect. + +$:/config/SyncLogging From b8a30091eee4df58aae199b28e4df33e2969aa95 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Sun, 20 Nov 2022 18:48:10 +0100 Subject: [PATCH 090/937] add table utility classes and some docs how to use them. fix problem with control-panel basics tab shown in story river (#7039) --- core/ui/ControlPanel/Basics.tid | 5 +- ...Tables in WikiText CSS Utility Classes.tid | 81 +++++++++++++++++++ .../definitions/HTML Block Elements.tid | 9 +++ ...e Classes Captions Headers and Footers.tid | 20 +++++ .../tiddlers/wikitext/Tables in WikiText.tid | 16 +--- .../tiddlers/wikitext/Utility Classes.tid | 20 +++++ themes/tiddlywiki/vanilla/base.tid | 27 ++++++- 7 files changed, 162 insertions(+), 16 deletions(-) create mode 100644 editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid create mode 100644 editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid create mode 100644 editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid create mode 100644 editions/tw5.com/tiddlers/wikitext/Utility Classes.tid diff --git a/core/ui/ControlPanel/Basics.tid b/core/ui/ControlPanel/Basics.tid index 46df7e77c..dd5580ad5 100644 --- a/core/ui/ControlPanel/Basics.tid +++ b/core/ui/ControlPanel/Basics.tid @@ -20,15 +20,16 @@ caption: {{$:/language/ControlPanel/Basics/Caption}} \end \whitespace trim +|tc-max-width tc-edit-max-width|k |<<lingo Version/Prompt>> |''<<version>>'' | |<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | |<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | |<$link to="$:/status/UserName"><<lingo Username/Prompt>></$link> |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> | |<$link to="$:/config/AnimationDuration"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> | -|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers" class="tc-edit-texteditor"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | +|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit class="tc-edit-texteditor" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | |<$link to="$:/language/DefaultNewTiddlerTitle"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler="$:/language/DefaultNewTiddlerTitle" default="" tag="input"/> | |<$link to="$:/config/NewJournal/Title"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler="$:/config/NewJournal/Title" default="" tag="input"/> | -|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" tag="textarea" class="tc-edit-texteditor" default=""/> | +|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" class="tc-edit-texteditor" default=""/> | |<$link to="$:/config/NewTiddler/Tags"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewTiddler/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/NewJournal/Tags"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewJournal/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/AutoFocus"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} | diff --git a/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid b/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid new file mode 100644 index 000000000..14abc1c86 --- /dev/null +++ b/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid @@ -0,0 +1,81 @@ +created: 20220817153236691 +modified: 20221010074314452 +tags: [[Tables in WikiText]] +title: Tables in WikiText CSS Utility Classes +type: text/vnd.tiddlywiki + +~WikiText tables can be styled by applying CSS classes. For basic information on wiktext tables and how to style them, see [[Tables in WikiText]]. + +{{Table Classes, Captions, Headers and Footers}} + +As seen above, the resulting table is left aligned and grows to fit the content. This is the browser default layout behaviour for tables. To get another behaviour, various CSS classes can be added into the "`k` row". + +! Utility Classes + +{{Utility Classes}} + +! Examples + +The following examples apply the style classes to tables but the "General Utility Classes" can as well be used on DIVs or other [[HTML block elements|HTML Block Elements]] + +!! Centred Table + +To center a table horizontally, use `tc-center`: + +<<wikitext-example-without-html src:"""|tc-center|k +|This is a caption |c +|Cell1 |Cell2 | +|Cell3 |Cell4 | +|Header|Header|h +|Footer|Footer|f +""">> + +!! Centred Table, 80% Width + +To add empty left and right margins to a table that is otherwise full-tiddler-width, you can use `tc-max-width-80` + +<<wikitext-example-without-html src:"""|tc-center tc-max-width-80|k +|This is a caption |c +|Cell1 |<<.lorem>> | +|<<.lorem>> |Cell4 | +|Header|Header|h +""">> + +!! Table with Maximum Width + +To expand a table to full tiddler width, use `tc-max-width` + +<<wikitext-example-without-html src:"""|tc-max-width|k +|Header|Header|h +|Cell1 |Cell2 | +|Cell3 |Cell4 | +""">> + +!! Table with First Column Minimum Width + +The following example shows a simple "form" where the first columns width is adjusted to its content by means of `tc-first-col-min-width` + +<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width|k +|Header|Header|h +|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | +|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | +""">> + +!! Table with Maximum Width ~TextWidgets + +Here, the previous "form" is styled further to give the [[TextWidget]]s full width by adding the class `tc-edit-max-width` + +<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width|k +|Header|Header|h +|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | +|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | +""">> + +!! Table with No Borders + +The following is a table with maximum width. It contains [[TextWidget]]s with maximum width. The first column is set to be minimum width. Further, all links in the first column are set to __not__ line break (wrap) regardless of window resize. + +<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width tc-table-no-border tc-first-link-nowrap|k +| Cell1|<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | +|^ [[Link to a tiddler]]<br>some more text|<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | +""">> diff --git a/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid b/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid new file mode 100644 index 000000000..373ce9b45 --- /dev/null +++ b/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid @@ -0,0 +1,9 @@ +created: 20220818091959523 +modified: 20220818092101307 +tags: Definitions +title: HTML Block Elements +type: text/vnd.tiddlywiki + +<<< +HTML (Hypertext Markup Language) elements historically were categorized as either "block-level" elements or "inline-level" elements. Since this is a presentational characteristic it is nowadays specified by CSS in the Flow Layout. A Block-level element occupies the entire horizontal space of its parent element (container), and vertical space equal to the height of its contents, thereby creating a "block". +<<< https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements diff --git a/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid b/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid new file mode 100644 index 000000000..9e09827a2 --- /dev/null +++ b/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid @@ -0,0 +1,20 @@ +created: 20220819100636227 +modified: 20220819101309072 +tags: [[Tables in WikiText]] +title: Table Classes, Captions, Headers and Footers +type: text/vnd.tiddlywiki + +Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: + +* `|myclass anotherClass|k` assigns the CSS classes "myclass" and "anotherClass" to the table +* `|This is a caption |c` gives the table the caption "This is a caption" +* `|Header|Header|h` adds a header row of cells with the text "Header" +* `|Footer|Footer|f` adds a footer row of cells with the text "Footer" + +<<wikitext-example-without-html src:"""|myclass anotherClass|k +|This is a caption |c +|Cell1 |Cell2 | +|Cell3 |Cell3 | +|Header|Header|h +|Footer|Footer|f +""">> diff --git a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid index 9c1d83ed4..c7af206d7 100644 --- a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid @@ -1,6 +1,6 @@ caption: Tables created: 20130914132100000 -modified: 20220513115945053 +modified: 20220819103416274 tags: WikiText title: Tables in WikiText type: text/vnd.tiddlywiki @@ -66,17 +66,7 @@ To merge a table cell with the one above, use the special cell text `~`. To merg ! Table Classes, Captions, Headers and Footers -Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: +{{Table Classes, Captions, Headers and Footers}} -* assigns the CSS classes "myclass" and "anotherClass" to the table -* gives the table the caption "This is a caption" -* adds a header row of cells with the text "Header" -* adds a footer row of cells with the text "Footer" -<<wikitext-example-without-html src:"""|myclass anotherClass|k -|This is a caption |c -|Cell1 |Cell2 | -|Cell3 |Cell3 | -|Header|Header|h -|Footer|Footer|f -""">> +More examples can be found at: [[Tables in WikiText CSS Utility Classes]] diff --git a/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid b/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid new file mode 100644 index 000000000..4a291e34b --- /dev/null +++ b/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid @@ -0,0 +1,20 @@ +created: 20220818093624828 +modified: 20221010074235929 +tags: WikiText +title: Utility Classes +type: text/vnd.tiddlywiki + +<<.from-version "5.2.4">> The following outlines a few predefined CSS classes intended to make it simpler to style [[HTML block-elements|HTML Block Elements]] and [[wikitext tables|Tables in WikiText CSS Utility Classes]]. + +!! General Utility Classes + +|`tc-center` |Centres a block-element to the middle of the container | +|`tc-max-width `|Expands a block-element to use the maximum width of the container | +|`tc-max-width-80`|Sets the width of a block-element to use 80% of the maximum container width. This setting is useful with the `tc-center` class | +|`tc-edit-max-width `|Expands [[TextWidget]]s to use the maximum available width. See [[ControlPanel -> Info -> Basics|$:/core/ui/ControlPanel/Basics]]| +|`tc-first-link-nowrap` |Ensures that any links in the first table column will never wrap to the next line | + +!! Table Utility Classes + +|`tc-table-no-border` |Removes the borders of a table | +|`tc-first-col-min-width` |The first column of a table will take up minimal possible width. It adapts to the content | diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 17d3ebb39..e9faee67b 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -326,7 +326,7 @@ table { } table th, table td { - padding: 0 7px 0 7px; + padding: 4px 6px 4px 6px; border-top: 1px solid <<colour table-border>>; border-left: 1px solid <<colour table-border>>; } @@ -357,11 +357,36 @@ Table utility classes width: 1%; } +/* +** Utility classes work well with tables but also for other containers +*/ + /* First link A element will not wrap */ .tc-first-link-nowrap:first-of-type a { white-space: nowrap; } +/* Move the table to the center of the container */ +.tc-center { + margin-left: auto; + margin-right: auto; +} + +.tc-max-width { + width: 100%; +} + +.tc-max-width-80 { + max-width: 80%; +} + +/* Allow input and textarea to look like the ControlPanel inputs */ +.tc-edit-max-width input, +.tc-edit-max-width textarea { + width: 100%; + padding: 3px; +} + /* CSV parser plugin */ From 4f7b10e0550150b5099d587b9dc3aa551d6d02eb Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Sun, 20 Nov 2022 18:51:01 +0100 Subject: [PATCH 091/937] CSV parser improvements (#7042) --- core/modules/parsers/csvparser.js | 42 +-- core/modules/utils/csv.js | 124 ++++++-- .../test/tiddlers/tests/data/csv-cases.tid | 282 ++++++++++++++++++ .../tiddlers/tests/modules/utils/test-csv.js | 33 ++ themes/tiddlywiki/vanilla/base.tid | 5 + 5 files changed, 446 insertions(+), 40 deletions(-) create mode 100644 editions/test/tiddlers/tests/data/csv-cases.tid create mode 100644 editions/test/tiddlers/tests/modules/utils/test-csv.js diff --git a/core/modules/parsers/csvparser.js b/core/modules/parsers/csvparser.js index 0e6c9f7bc..40431d0ae 100644 --- a/core/modules/parsers/csvparser.js +++ b/core/modules/parsers/csvparser.js @@ -13,6 +13,11 @@ The CSV text parser processes CSV files into a table wrapped in a scrollable wid "use strict"; var CsvParser = function(type,text,options) { + // Special handler for tab-delimited files + if (type === 'text/tab-delimited-values' && !options.separator) { + options.separator = "\t"; + } + // Table framework this.tree = [{ "type": "scrollable", "children": [{ @@ -24,30 +29,33 @@ var CsvParser = function(type,text,options) { }] }]; // Split the text into lines - var lines = text.split(/\r?\n/mg), + var lines = $tw.utils.parseCsvString(text, options), tag = "th"; + var maxColumns = 0; + $tw.utils.each(lines, function(columns) { + maxColumns = Math.max(columns.length, maxColumns); + }); + for(var line=0; line<lines.length; line++) { - var lineText = lines[line]; - if(lineText) { - var row = { - "type": "element", "tag": "tr", "children": [] - }; - var columns = lineText.split(","); - for(var column=0; column<columns.length; column++) { - row.children.push({ - "type": "element", "tag": tag, "children": [{ - "type": "text", - "text": columns[column] - }] - }); - } - tag = "td"; - this.tree[0].children[0].children[0].children.push(row); + var columns = lines[line]; + var row = { + "type": "element", "tag": "tr", "children": [] + }; + for(var column=0; column<maxColumns; column++) { + row.children.push({ + "type": "element", "tag": tag, "children": [{ + "type": "text", + "text": columns[column] || '' + }] + }); } + tag = "td"; + this.tree[0].children[0].children[0].children.push(row); } }; exports["text/csv"] = CsvParser; +exports["text/tab-delimited-values"] = CsvParser; })(); diff --git a/core/modules/utils/csv.js b/core/modules/utils/csv.js index dec280d8b..68b647127 100644 --- a/core/modules/utils/csv.js +++ b/core/modules/utils/csv.js @@ -12,35 +12,113 @@ A barebones CSV parser /*global $tw: false */ "use strict"; +var QUOTE = '"'; + +var getCellInfo = function(text, start, length, SEPARATOR) { + var isCellQuoted = text.charAt(start) === QUOTE; + var cellStart = isCellQuoted ? start + 1 : start; + + if (text.charAt(i) === SEPARATOR) { + return [cellStart, cellStart, false]; + } + + for (var i = cellStart; i < length; i++) { + var cellCharacter = text.charAt(i); + var isEOL = cellCharacter === "\n" || cellCharacter === "\r"; + + if (isEOL && !isCellQuoted) { + return [cellStart, i, false]; + + } else if (cellCharacter === SEPARATOR && !isCellQuoted) { + return [cellStart, i, false]; + + } else if (cellCharacter === QUOTE && isCellQuoted) { + var nextCharacter = i + 1 < length ? text.charAt(i + 1) : ''; + if (nextCharacter !== QUOTE) { + return [cellStart, i, true]; + } else { + i++; + } + } + } + + return [cellStart, i, isCellQuoted]; +} + +exports.parseCsvString = function(text, options) { + if (!text) { + return []; + } + + options = options || {}; + var SEPARATOR = options.separator || ",", + length = text.length, + rows = [], + nextRow = []; + + for (var i = 0; i < length; i++) { + var cellInfo = getCellInfo(text, i, length, SEPARATOR); + var cellText = text.substring(cellInfo[0], cellInfo[1]); + if (cellInfo[2]) { + cellText = cellText.replace(/""/g, '"'); + cellInfo[1]++; + } + nextRow.push(cellText); + + i = cellInfo[1]; + + var character = text.charAt(i); + var nextCharacter = i + 1 < length ? text.charAt(i + 1) : ''; + + if (character === "\r" || character === "\n") { + // Edge case for empty rows + if (nextRow.length === 1 && nextRow[0] === '') { + nextRow.length = 0; + } + rows.push(nextRow); + nextRow = []; + + if (character === "\r") { + var nextCharacter = i + 1 < length ? text.charAt(i + 1) : ''; + + if (nextCharacter === "\n") { + i++; + } + } + } + } + + // Special case if last cell in last row is an empty cell + if (text.charAt(length - 1) === SEPARATOR) { + nextRow.push(""); + } + + rows.push(nextRow); + + return rows; +} + /* Parse a CSV string with a header row and return an array of hashmaps. */ exports.parseCsvStringWithHeader = function(text,options) { - options = options || {}; - var separator = options.separator || ",", - rows = text.split(/\r?\n/mg).map(function(row) { - return $tw.utils.trim(row); - }).filter(function(row) { - return row !== ""; - }); - if(rows.length < 1) { - return "Missing header row"; - } - var headings = rows[0].split(separator), - results = []; - for(var row=1; row<rows.length; row++) { - var columns = rows[row].split(separator), - columnResult = Object.create(null); - if(columns.length !== headings.length) { - return "Malformed CSV row '" + rows[row] + "'"; + var csv = $tw.utils.parseCsvString(text, options); + var headers = csv[0]; + + csv = csv.slice(1); + for (var i = 0; i < csv.length; i++) { + var row = csv[i]; + var rowObject = Object.create(null); + + for(var columnIndex=0; columnIndex<headers.length; columnIndex++) { + var columnName = headers[columnIndex]; + if (columnName) { + rowObject[columnName] = $tw.utils.trim(row[columnIndex] || ""); + } } - for(var column=0; column<columns.length; column++) { - var columnName = headings[column]; - columnResult[columnName] = $tw.utils.trim(columns[column] || ""); - } - results.push(columnResult); + csv[i] = rowObject; } - return results; + return csv; } })(); diff --git a/editions/test/tiddlers/tests/data/csv-cases.tid b/editions/test/tiddlers/tests/data/csv-cases.tid new file mode 100644 index 000000000..33a837189 --- /dev/null +++ b/editions/test/tiddlers/tests/data/csv-cases.tid @@ -0,0 +1,282 @@ +title: csv-cases +type: text/plain +description: A file containing a JSON with test CSVs as string as well as expected results + +[ + { + "name": "Empty string", + "options": {}, + "csv": "", + "json": [], + "jsonWithHeaders": [] + }, + { + "name": "Null value", + "options": {}, + "csv": null, + "json": [], + "jsonWithHeaders": [] + }, + { + "name": "Simple CSV with no tricks", + "options": {}, + "csv": "cell-11,cell-12,cell-13\r\ncell-21,cell-22,cell-23\r\ncell-31,cell-32,cell-33", + "json": [ + ["cell-11", "cell-12", "cell-13"], + ["cell-21", "cell-22", "cell-23"], + ["cell-31", "cell-32", "cell-33"] + ], + "jsonWithHeaders": [ + {"cell-11": "cell-21", "cell-12": "cell-22", "cell-13": "cell-23"}, + {"cell-11": "cell-31", "cell-12": "cell-32", "cell-13": "cell-33"} + ] + }, + { + "name": "Custom separator", + "options": {"separator": "\t"}, + "csv": ",cell-11,\t,cell-12,\t,cell-13,\r\n,cell-21,\t,cell-22,\t,cell-23,\r\n,cell-31,\t,cell-32,\t,cell-33,", + "json": [ + [",cell-11,", ",cell-12,", ",cell-13,"], + [",cell-21,", ",cell-22,", ",cell-23,"], + [",cell-31,", ",cell-32,", ",cell-33,"] + ], + "jsonWithHeaders": [ + {",cell-11,": ",cell-21,", ",cell-12,": ",cell-22,", ",cell-13,": ",cell-23,"}, + {",cell-11,": ",cell-31,", ",cell-12,": ",cell-32,", ",cell-13,": ",cell-33,"} + ] + }, + { + "name": "Support empty rows", + "options": {}, + "csv": "cell-11,cell-12,cell-13\r\n\r\ncell-31,cell-32,cell-33", + "json": [ + ["cell-11", "cell-12", "cell-13"], + [], + ["cell-31", "cell-32", "cell-33"] + ], + "jsonWithHeaders": [ + {"cell-11": "", "cell-12": "", "cell-13": ""}, + {"cell-11": "cell-31", "cell-12": "cell-32", "cell-13": "cell-33"} + ] + }, + { + "name": "Support empty cells", + "options": {}, + "csv": "cell-11,cell-12,cell-13\r\n,,\r\ncell-31,cell-32,cell-33", + "json": [ + ["cell-11", "cell-12", "cell-13"], + ["", "", ""], + ["cell-31", "cell-32", "cell-33"] + ], + "jsonWithHeaders": [ + {"cell-11": "", "cell-12": "", "cell-13": ""}, + {"cell-11": "cell-31", "cell-12": "cell-32", "cell-13": "cell-33"} + ] + }, + { + "name": "Support LF line endings", + "options": {}, + "csv": "cell-11,cell-12,cell-13\ncell-21,cell-22,cell-23\ncell-31,cell-32,cell-33", + "json": [ + ["cell-11", "cell-12", "cell-13"], + ["cell-21", "cell-22", "cell-23"], + ["cell-31", "cell-32", "cell-33"] + ], + "jsonWithHeaders": [ + {"cell-11": "cell-21", "cell-12": "cell-22", "cell-13": "cell-23"}, + {"cell-11": "cell-31", "cell-12": "cell-32", "cell-13": "cell-33"} + ] + }, + { + "name": "Mixed line endings", + "options": {}, + "csv": "cell-11,cell-12,cell-13\ncell-21,cell-22,cell-23\r\ncell-31,cell-32,cell-33", + "json": [ + ["cell-11", "cell-12", "cell-13"], + ["cell-21", "cell-22", "cell-23"], + ["cell-31", "cell-32", "cell-33"] + ], + "jsonWithHeaders": [ + {"cell-11": "cell-21", "cell-12": "cell-22", "cell-13": "cell-23"}, + {"cell-11": "cell-31", "cell-12": "cell-32", "cell-13": "cell-33"} + ] + }, + { + "name": "Quoted cells", + "options": {}, + "csv": "cell-11,\"cell-12\",cell-13\r\n\"cell-21\",cell-22,cell-23\r\ncell-31,cell-32,\"cell-33\"", + "json": [ + ["cell-11", "cell-12", "cell-13"], + ["cell-21", "cell-22", "cell-23"], + ["cell-31", "cell-32", "cell-33"] + ], + "jsonWithHeaders": [ + {"cell-11": "cell-21", "cell-12": "cell-22", "cell-13": "cell-23"}, + {"cell-11": "cell-31", "cell-12": "cell-32", "cell-13": "cell-33"} + ] + }, + { + "name": "Escaped quotes in cells", + "options": {}, + "csv": "cell-11,\"\"\"cell-12\"\"\",cell-13\r\n\"cell\"\"\"\"-21\",cell-22,cell-23\r\ncell-31,cell-32,\"\"\"\"\"cell\"\"\"\"-33\"\"\"\"\"", + "json": [ + ["cell-11", "\"cell-12\"", "cell-13"], + ["cell\"\"-21", "cell-22", "cell-23"], + ["cell-31", "cell-32", "\"\"cell\"\"-33\"\""] + ], + "jsonWithHeaders": [ + {"cell-11": "cell\"\"-21", "\"cell-12\"": "cell-22", "cell-13": "cell-23"}, + {"cell-11": "cell-31", "\"cell-12\"": "cell-32", "cell-13": "\"\"cell\"\"-33\"\""} + ] + }, + { + "name": "Separator in quoted cells", + "options": {}, + "csv": "cell-11,\",c,e,l,l,-,1,2,\",cell-13\r\n\",c,e,l,l,-,2,1,\",cell-22,cell-23\r\ncell-31,cell-32,\",c,e,l,l,-,3,3,\"", + "json": [ + ["cell-11", ",c,e,l,l,-,1,2,", "cell-13"], + [",c,e,l,l,-,2,1,", "cell-22", "cell-23"], + ["cell-31", "cell-32", ",c,e,l,l,-,3,3,"] + ], + "jsonWithHeaders": [ + {"cell-11": ",c,e,l,l,-,2,1,", ",c,e,l,l,-,1,2,": "cell-22", "cell-13": "cell-23"}, + {"cell-11": "cell-31", ",c,e,l,l,-,1,2,": "cell-32", "cell-13": ",c,e,l,l,-,3,3,"} + ] + }, + { + "name": "UTF-8 characters", + "options": {}, + "csv": "ᑖcell-11™,°cell-12ą,ćcell-13ś\r\nżcell-21ę,łcell-22ó,Ócell-23↑\r\nŹcell-31Ż,Ącell-32Ń,Ęcell-33ę", + "json": [ + ["ᑖcell-11™", "°cell-12ą", "ćcell-13ś"], + ["żcell-21ę", "łcell-22ó", "Ócell-23↑"], + ["Źcell-31Ż", "Ącell-32Ń", "Ęcell-33ę"] + ], + "jsonWithHeaders": [ + {"ᑖcell-11™": "żcell-21ę", "°cell-12ą": "łcell-22ó", "ćcell-13ś": "Ócell-23↑"}, + {"ᑖcell-11™": "Źcell-31Ż", "°cell-12ą": "Ącell-32Ń", "ćcell-13ś": "Ęcell-33ę"} + ] + }, + { + "name": "All in one", + "options": {}, + "csv": "\"\"\",\r\n,\"\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"\"\",ҡ͟¼lj·˨Քƣйʊ͕Έӕ,😣👁🔵⛔️🌹\r\n\"\"\",\r\n,\"\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"\"\",ҡ͟¼lj·˨Քƣйʊ͕Έӕ,😣👁🔵⛔️🌹\n\"\"\",\r\n,\"\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"\"\",ҡ͟¼lj·˨Քƣйʊ͕Έӕ,😣👁🔵⛔️🌹", + "json": [ + ["\",\r\n,\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹"], + ["\",\r\n,\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹"], + ["\",\r\n,\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹"] + ], + "jsonWithHeaders": [ + {"\",\r\n,\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"": "\",\r\n,\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ": "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹": "😣👁🔵⛔️🌹"}, + {"\",\r\n,\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"": "\",\r\n,\",\r\nĄŚĆżóŁ\n\n\n\r\n,\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ": "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹": "😣👁🔵⛔️🌹"} + ] + }, + { + "name": "All in one - custom separator", + "options": {"separator": "\t"}, + "csv": "\"\"\"\t\r\n\t\"\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"\"\"\tҡ͟¼lj·˨Քƣйʊ͕Έӕ\t😣👁🔵⛔️🌹\r\n\"\"\"\t\r\n\t\"\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"\"\"\tҡ͟¼lj·˨Քƣйʊ͕Έӕ\t😣👁🔵⛔️🌹\n\"\"\"\t\r\n\t\"\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"\"\"\tҡ͟¼lj·˨Քƣйʊ͕Έӕ\t😣👁🔵⛔️🌹", + "json": [ + ["\"\t\r\n\t\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹"], + ["\"\t\r\n\t\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹"], + ["\"\t\r\n\t\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹"] + ], + "jsonWithHeaders": [ + {"\"\t\r\n\t\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"": "\"\t\r\n\t\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ": "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹": "😣👁🔵⛔️🌹"}, + {"\"\t\r\n\t\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"": "\"\t\r\n\t\"\t\r\nĄŚĆżóŁ\n\n\n\r\n\t\"", "ҡ͟¼lj·˨Քƣйʊ͕Έӕ": "ҡ͟¼lj·˨Քƣйʊ͕Έӕ", "😣👁🔵⛔️🌹": "😣👁🔵⛔️🌹"} + ] + }, + { + "name": "Edge case - only empty rows", + "options": {}, + "csv": "\r\n\r\n", + "json": [ + [], + [], + [] + ], + "jsonWithHeaders": [ + {}, + {} + ] + }, + { + "name": "Edge case - only empty cells", + "options": {}, + "csv": ",,\r\n,,\r\n,,", + "json": [ + ["", "", ""], + ["", "", ""], + ["", "", ""] + ], + "jsonWithHeaders": [ + {}, + {} + ] + }, + { + "name": "Edge case - Newline -> Comma -> Text", + "options": {}, + "csv": "A,B\r\n,C", + "json": [ + ["A", "B"], + ["", "C"] + ], + "jsonWithHeaders": [ + {"A": "", "B": "C"} + ] + }, + { + "name": "Edge case - single comma", + "options": {}, + "csv": ",", + "json": [ + ["", ""] + ], + "jsonWithHeaders": [] + }, + { + "@comment": "The behavior here is undefined - the only thing that matters is it should not throw an exception, the result is free to make no sense.", + "name": "Edge case - quote separator", + "options": {"separator": "\""}, + "csv": "cell-11,\"cell-12\",cell-13\r\n\"cell-21\",cell-22,cell-23\r\ncell-31,cell-32,\"cell-33\"", + "json": [ + ["cell-11,", "cell-12", ",cell-13"], + ["cell-21", "cell-22,cell-23"], + ["cell-31,cell-32,", "cell-33", ""] + ], + "jsonWithHeaders": [ + {"cell-11,": "cell-21", "cell-12": "cell-22,cell-23", ",cell-13": ""}, + {"cell-11,": "cell-31,cell-32,", "cell-12": "cell-33", ",cell-13": ""} + ] + }, + { + "@comment": "The behavior here is undefined - the only thing that matters is it should not throw an exception, the result is free to make no sense.", + "name": "Edge case - carriage return separator", + "options": {"separator": "\r"}, + "csv": "cell-11,\"cell-12\",cell-13\r\n\"cell-21\",cell-22,cell-23\r\ncell-31,cell-32,\"cell-33\"", + "json": [ + ["cell-11,\"cell-12\",cell-13"], + ["cell-21", "cell-22,cell-23"], + ["cell-31,cell-32,\"cell-33\""] + ], + "jsonWithHeaders": [ + {"cell-11,\"cell-12\",cell-13": "cell-21" }, + {"cell-11,\"cell-12\",cell-13": "cell-31,cell-32,\"cell-33\""} + ] + }, + { + "@comment": "The behavior here is undefined - the only thing that matters is it should not throw an exception, the result is free to make no sense.", + "name": "Edge case - newline separator", + "options": {"separator": "\n"}, + "csv": "cell-11,\"cell-12\",cell-13\r\n\"cell-21\",cell-22,cell-23\r\ncell-31,cell-32,\"cell-33\"", + "json": [ + ["cell-11,\"cell-12\",cell-13"], + ["cell-21", "cell-22,cell-23"], + ["cell-31,cell-32,\"cell-33\""] + ], + "jsonWithHeaders": [ + {"cell-11,\"cell-12\",cell-13": "cell-21" }, + {"cell-11,\"cell-12\",cell-13": "cell-31,cell-32,\"cell-33\""} + ] + } +] \ No newline at end of file diff --git a/editions/test/tiddlers/tests/modules/utils/test-csv.js b/editions/test/tiddlers/tests/modules/utils/test-csv.js new file mode 100644 index 000000000..b53e9b289 --- /dev/null +++ b/editions/test/tiddlers/tests/modules/utils/test-csv.js @@ -0,0 +1,33 @@ +/*\ +title: modules/utils/test-csv.js +type: application/javascript +tags: [[$:/tags/test-spec]] + +Tests the backlinks mechanism. + +\*/ +(function(){ +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +describe('CSV Parsing', function() { + var tid = $tw.wiki.getTiddler('csv-cases'); + var testCases = JSON.parse(tid.fields.text); + + $tw.utils.each(testCases, function(testCase) { + if (testCase.skip) { + return; + } + it("Test case: " + testCase.name, function() { + var parsedCsv = $tw.utils.parseCsvString(testCase.csv, testCase.options); + expect(parsedCsv).withContext("The generated CSV should match the expected one").toEqual(testCase.json); + + var parsedCsvWithHeaders = $tw.utils.parseCsvStringWithHeader(testCase.csv, testCase.options); + expect(parsedCsvWithHeaders).withContext("The generated CSV with headers should match the expected one").toEqual(testCase.jsonWithHeaders); + }); + }) + +}); + +})(); diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index e9faee67b..6ff10e040 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -395,6 +395,11 @@ CSV parser plugin white-space: nowrap; } +.tc-csv-table th, +.tc-csv-table td { + white-space: pre-line; +} + /* Tiddler frame in story river */ From 8ead7e0624c839798a57afaa8c2aa6397b1c0749 Mon Sep 17 00:00:00 2001 From: Cameron Fischer <fischer.cameron@gmail.com> Date: Sun, 20 Nov 2022 12:54:18 -0500 Subject: [PATCH 092/937] Jasmine command (#6944) --- bin/test.sh | 1 + editions/test/tiddlywiki.info | 3 +- plugins/tiddlywiki/jasmine/command.js | 33 ++++++++++++++++ plugins/tiddlywiki/jasmine/help.tid | 24 ++++++++++++ plugins/tiddlywiki/jasmine/jasmine-plugin.js | 40 +++++++++++--------- plugins/tiddlywiki/jasmine/readme.tid | 32 +++++++++++++++- plugins/tiddlywiki/jasmine/startup.js | 37 ++++++++++++++++++ 7 files changed, 151 insertions(+), 19 deletions(-) create mode 100644 plugins/tiddlywiki/jasmine/command.js create mode 100644 plugins/tiddlywiki/jasmine/help.tid create mode 100644 plugins/tiddlywiki/jasmine/startup.js diff --git a/bin/test.sh b/bin/test.sh index 2de66b1fd..61c7b7143 100755 --- a/bin/test.sh +++ b/bin/test.sh @@ -9,6 +9,7 @@ node ./tiddlywiki.js \ --verbose \ --version \ --rendertiddler $:/core/save/all test.html text/plain \ + --test \ || exit 1 echo To run the tests in a browser, open "editions/test/output/test.html" diff --git a/editions/test/tiddlywiki.info b/editions/test/tiddlywiki.info index c53b289ce..afb9c0514 100644 --- a/editions/test/tiddlywiki.info +++ b/editions/test/tiddlywiki.info @@ -9,6 +9,7 @@ ], "build": { "index": [ - "--rendertiddler","$:/core/save/all","test.html","text/plain"] + "--rendertiddler","$:/core/save/all","test.html","text/plain", + "--test"] } } \ No newline at end of file diff --git a/plugins/tiddlywiki/jasmine/command.js b/plugins/tiddlywiki/jasmine/command.js new file mode 100644 index 000000000..fe7e62334 --- /dev/null +++ b/plugins/tiddlywiki/jasmine/command.js @@ -0,0 +1,33 @@ +/*\ +title: $:/plugins/tiddlywiki/jasmine/command.js +type: application/javascript +module-type: command + +The command which executes jasmine on the command line for TiddlyWiki5 + +\*/ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var jasmine = require("./jasmine-plugin.js"); + +exports.info = { + name: "test", + synchronous: false, + namedParameterMode: true +}; + +var Command = function(params,commander,callback) { + this.params = params; + this.commander = commander; + this.callback = callback; +}; + +Command.prototype.execute = function() { + var specFilter = this.params.spec; + jasmine.runTests(this.callback,specFilter); +}; + +exports.Command = Command; diff --git a/plugins/tiddlywiki/jasmine/help.tid b/plugins/tiddlywiki/jasmine/help.tid new file mode 100644 index 000000000..a0580741b --- /dev/null +++ b/plugins/tiddlywiki/jasmine/help.tid @@ -0,0 +1,24 @@ +title: $:/language/Help/test +description: Run the jasmine test suite + +This runs all of the tests in tiddlers tagged with `$:/tags/test-spec`. + +``` +--test [spec=<regExp>] +``` + +''spec'' - optional regular expression to run only specific suites or tests. It will be matched against the full name of every test to see whether to run it. The full name of a test is its assigned name prepended with the names of all containing suites. For instance, to run only the following test: + +``` +describe("Framework") { it("handles edgecases") { ... } } +``` + +You might use a specFilter like `"^Framework handles edgecases$"` to match the full name exactly, or more simply `"edgecases"`, though this might run other tests with "edgecases" in their name. You could also run all tests in that suite with `"^Framework"`. + +If any tests fail or are skipped, all following commands are ignored. If you have any commands which must be executed regardless of test results, execute them first. + +A common usage is to run the tests on the console after creating a Tiddlywiki file which will run the tests on the browser. + +``` +tiddlywiki --rendertiddler $:/core/save/all test.html text/plain --test +``` diff --git a/plugins/tiddlywiki/jasmine/jasmine-plugin.js b/plugins/tiddlywiki/jasmine/jasmine-plugin.js index 3377ebfbd..3ec7998a2 100644 --- a/plugins/tiddlywiki/jasmine/jasmine-plugin.js +++ b/plugins/tiddlywiki/jasmine/jasmine-plugin.js @@ -1,7 +1,7 @@ /*\ title: $:/plugins/tiddlywiki/jasmine/jasmine-plugin.js type: application/javascript -module-type: startup +module-type: library The main module of the Jasmine test plugin for TiddlyWiki5 @@ -13,19 +13,14 @@ The main module of the Jasmine test plugin for TiddlyWiki5 "use strict"; var TEST_TIDDLER_FILTER = "[all[tiddlers+shadows]type[application/javascript]tag[$:/tags/test-spec]]"; +var TESTS_DONE = false; -exports.name = "jasmine"; -// Ensure this startup module is executed in the right order. -// In Node.js, Jasmine calls `process.exit()` with a non-zero exit code if there's -// any failed tests. Because of that, we want to make sure all critical -// startup modules are run before this one. -// * The "commands" module handles the --rendertiddler command-line flag, -// which is typically given in order to export an HTML file that can be opened with -// a browser to run tests. -exports.after = $tw.node ? ["commands"] : []; +exports.testsWereRun = function() { + return TESTS_DONE; +}; /* -Startup function for running tests +function for running tests Below, paths like jasmine-core/jasmine.js refer to files in the 'jasmine-core' npm package, whose repository is https://github.com/jasmine/jasmine. @@ -34,7 +29,8 @@ repository is https://github.com/jasmine/jasmine-npm. They're all locally checked into the `./files` directory. */ -exports.startup = function() { + +exports.runTests = function(callback,specFilter) { // Set up a shared context object. var context = { console: console, @@ -63,6 +59,10 @@ exports.startup = function() { // is executed, so we use the `context` object instead. context.global = $tw.browser ? window : context; + // We set this early rather than at the end for simplicity. The browser + // and node.js environments don't end the same way. + TESTS_DONE = true; + function evalInContext(title) { var code = $tw.wiki.getTiddlerText(title,""); var _exports = {}; @@ -123,7 +123,15 @@ exports.startup = function() { path: "$:/plugins/tiddlywiki/jasmine/jasmine-core/jasmine-core" }; // 'jasmine/jasmine.js' references `process.exit`, among other properties - context.process = process; + // It will call 'exit' after it's done, which gives us an + // opportunity to resynchronize and finish any following commands. + context.process = Object.create(process); + context.process.exit = function(code) { + // If jasmine's exit code is non-zero, tests failed. Abort any + // further commands. If they're important, they could have come + // before the testing suite. + callback(code ? "Tests failed with code " + code : undefined); + }; var NodeJasmine = evalInContext("$:/plugins/tiddlywiki/jasmine/jasmine/jasmine.js"); nodeJasmineWrapper = new NodeJasmine({jasmineCore: jasmineCore}); @@ -135,13 +143,11 @@ exports.startup = function() { context = $tw.utils.extend({},jasmineInterface,context); // Iterate through all the test modules var tests = $tw.wiki.filterTiddlers(TEST_TIDDLER_FILTER); - $tw.utils.each(tests,function(title) { - evalInContext(title); - }); + $tw.utils.each(tests,evalInContext); // In a browser environment, jasmine-core/boot.js calls `execute()` for us. // In Node.js, we call it manually. if(!$tw.browser) { - nodeJasmineWrapper.execute(); + nodeJasmineWrapper.execute(null,specFilter); } }; diff --git a/plugins/tiddlywiki/jasmine/readme.tid b/plugins/tiddlywiki/jasmine/readme.tid index 3411d3cb0..878a756d3 100644 --- a/plugins/tiddlywiki/jasmine/readme.tid +++ b/plugins/tiddlywiki/jasmine/readme.tid @@ -1,5 +1,35 @@ title: $:/plugins/tiddlywiki/jasmine/readme -This plugin provides a framework for running tests in the browser and under Node.js. It is based on [[Jasmine|https://jasmine.github.io/]] test framework. +This plugin provides a framework for running tests in the browser and under Node.js. It is based on [[Jasmine|https://jasmine.github.io/]] test framework. On Tiddlywiki, it runs tests in all javascript tiddlers tagged with <<tag $:/tags/test-spec>>. [[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/jasmine]] + +!! Usage on Node.js + +On the command line, type `tiddlywiki --test`. + +Alternatively, you can set up a build task for jasmine by including the following in your tiddlywiki.info file: + +``` +{ + ... + "build": { + ... + "test": ["--test"] + } +} +``` + +You could then run tests by typing `tiddlywiki --build test` or just `tiddlywiki --build`. The advantage to this is it allows you to include other commands to run as well. See `tiddlywiki --help test` for more information. + +This will run the tests and produce a test file in your output directory. + +``` + "test": [ + "--test", + "--rendertiddler","$:/core/save/all","test.html","text/plain"] +``` + +!! Usage on a browser + +Once you've constructed a Tiddlywiki file using a command like the one above, you can run the tests simply by opening it. Tests run automatically, and the results will be at the bottom of the window. diff --git a/plugins/tiddlywiki/jasmine/startup.js b/plugins/tiddlywiki/jasmine/startup.js new file mode 100644 index 000000000..46f9ef470 --- /dev/null +++ b/plugins/tiddlywiki/jasmine/startup.js @@ -0,0 +1,37 @@ +/*\ +title: $:/plugins/tiddlywiki/jasmine/startup.js +type: application/javascript +module-type: startup + +The main module of the Jasmine test plugin for TiddlyWiki5 + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: true */ +"use strict"; + +var jasmine = require("./jasmine-plugin.js"); + +exports.name = "jasmine"; + +if($tw.browser) { + // Jasmine is run automatically on the browser, so always add it here. + exports.startup = jasmine.runTests; +} else { + // However, if we're on node.js, the tests are explciitly run with the + // --test command. This didn't used to be the case, so if they're + // not, we'll issue a small notice to cue users in to the change + // BTW, this notice probably won't be needed forever. It was installed + // Sept 2022. If it's been four years, this notice can probably come out. + exports.startup = function() { + if(!jasmine.testsWereRun()) { + process.stdout.write("Jasmine: no \"--test\" command given, so skipping tests\n"); + } + } + // We make this check after the commands are run. + exports.after = ["commands"]; +} + +})(); From d32d559f935f9baaec228b7eb4e0cf9e1c3757d6 Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Mon, 21 Nov 2022 17:13:34 +0100 Subject: [PATCH 093/937] Add Timestamp to DateFormat (#7043) * add Timestamp to DateFormat * improve TIMESTAMP documentation --- core/modules/utils/utils.js | 3 +++ editions/test/tiddlers/tests/test-utils.js | 1 + .../tw5.com/tiddlers/features/DateFormat.tid | 26 ++++++++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/core/modules/utils/utils.js b/core/modules/utils/utils.js index bc4774fe1..743061ca7 100644 --- a/core/modules/utils/utils.js +++ b/core/modules/utils/utils.js @@ -354,6 +354,9 @@ exports.formatDateString = function(date,template) { var result = "", t = template, matches = [ + [/^TIMESTAMP/, function() { + return date.getTime(); + }], [/^0hh12/, function() { return $tw.utils.pad($tw.utils.getHours12(date)); }], diff --git a/editions/test/tiddlers/tests/test-utils.js b/editions/test/tiddlers/tests/test-utils.js index 5ac07f1d7..8b7630a54 100644 --- a/editions/test/tiddlers/tests/test-utils.js +++ b/editions/test/tiddlers/tests/test-utils.js @@ -78,6 +78,7 @@ describe("Utility tests", function() { expect(fds(d,"ddd hh mm ssss")).toBe("Sun 17 41 2828"); expect(fds(d,"MM0DD")).toBe("1109"); expect(fds(d,"MM0\\D\\D")).toBe("110DD"); + expect(fds(d,"TIMESTAMP")).toBe(d.getTime().toString()); const day = d.getUTCDate(); const dayStr = ("" + day).padStart(2, '0'); const hours = d.getUTCHours(); diff --git a/editions/tw5.com/tiddlers/features/DateFormat.tid b/editions/tw5.com/tiddlers/features/DateFormat.tid index ef7bcde98..db6a1f3e4 100644 --- a/editions/tw5.com/tiddlers/features/DateFormat.tid +++ b/editions/tw5.com/tiddlers/features/DateFormat.tid @@ -1,5 +1,5 @@ created: 20140418142957325 -modified: 20210912115121622 +modified: 20221121131150032 tags: Features title: DateFormat type: text/vnd.tiddlywiki @@ -46,6 +46,7 @@ The date string is processed with the following substitutions: |`am` or `pm` |Lower case AM/PM indicator | |`AM` or `PM` |Upper case AM/PM indicator | |`TZD` |Timezone offset | +|`TIMESTAMP` |<<.from-version "5.2.4">> Number of milliseconds since the [[ECMAScript epoch|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#the_ecmascript_epoch_and_timestamps]], 1 January 1970. | |`\x` |Used to escape a character that would otherwise have special meaning | |`[UTC]`|Time-shift the represented date to UTC. Must be at very start of format string| @@ -59,3 +60,26 @@ The `{era:BCE||CE}` notation can specify different strings for years that are ne |`DDth MMM YYYY` |16th February 2011 | |`DDth MMM \M\M\M YYYY` |16th February MMM 2011 | |`DDth mmm YYYY 0hh:0mm:0ss` |16th Feb 2011 11:38:42 | + +!! Using `TIMESTAMP` to calculate time difference + +You can calculate the difference between two dates by doing the following: + +# Convert both dates to timestamps +# Subtract the later date from the earlier one -- if you don't know which one is earlier use the <<.olink "abs">> operator to get an absolute value after subtraction +# Divide the resulting number by the number of milliseconds in your chosen interval + +Here is an example of calculating the number of days that passed between creation and last modification of current tiddler: + +* Fields `modified` and `created` contain their respective datetimes in the format `YYYYMMDDHHMMSSmmm` so convert them to timestamps +* `86400000` is the number of milliseconds in a day (1000 * 60 * 60 * 24) + +<$macrocall $name=".example" n="0" eg="""<$let + timestamp-modified={{{ [{!!modified}format:date[TIMESTAMP]] }}} + timestamp-created={{{ [{!!created}format:date[TIMESTAMP]] }}} + difference-days={{{ [<timestamp-modified>subtract<timestamp-created>divide[86400000]floor[]] }}}> + +* ''Modified date:'' <$text text={{{ [{!!modified}format:date[YYYY-0MM-0DD]] }}}/> +* ''Created date:'' <$text text={{{ [{!!created}format:date[YYYY-0MM-0DD]] }}}/> +* ''Difference in days:'' <<difference-days>> days +</$let>"""/> \ No newline at end of file From cb0d0cfa6d8578691e4714f4101b5960917fbab8 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston <jeremy@jermolene.com> Date: Tue, 22 Nov 2022 17:10:37 +0000 Subject: [PATCH 094/937] Support nested macro definitions (#7004) * First commit * Switched to \end <name> instead of all those repeated backslashes Thanks @kookma. See https://github.com/Jermolene/TiddlyWiki5/pull/7004#issuecomment-1286429236 * Docs update --- .../parsers/wikiparser/rules/macrodef.js | 2 +- .../tests/data/macros/NestedMacros.tid | 36 +++++++++++++++++++ .../Macro Definitions in WikiText.tid | 20 +++++++++-- 3 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 editions/test/tiddlers/tests/data/macros/NestedMacros.tid diff --git a/core/modules/parsers/wikiparser/rules/macrodef.js b/core/modules/parsers/wikiparser/rules/macrodef.js index cc76ca7ec..22a7b5ba7 100644 --- a/core/modules/parsers/wikiparser/rules/macrodef.js +++ b/core/modules/parsers/wikiparser/rules/macrodef.js @@ -58,7 +58,7 @@ exports.parse = function() { var reEnd; if(this.match[3]) { // If so, the end of the body is marked with \end - reEnd = /(\r?\n\\end[^\S\n\r]*(?:$|\r?\n))/mg; + reEnd = new RegExp("(\\r?\\n\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[1]) + ")?(?:$|\\r?\\n))","mg"); } else { // Otherwise, the end of the definition is marked by the end of the line reEnd = /($|\r?\n)/mg; diff --git a/editions/test/tiddlers/tests/data/macros/NestedMacros.tid b/editions/test/tiddlers/tests/data/macros/NestedMacros.tid new file mode 100644 index 000000000..d5f854d0c --- /dev/null +++ b/editions/test/tiddlers/tests/data/macros/NestedMacros.tid @@ -0,0 +1,36 @@ +title: Macros/NestedMacros +description: Nested Macros +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim + +\define outer() +\whitespace trim + +\define middle() +\whitespace trim + +\define inner() +\whitespace trim + +Jaguar + +\end inner + +<<inner>> + +\end middle + +<<middle>> + +\end outer + +<<outer>> + ++ +title: ExpectedResult + +<p>Jaguar</p> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid index 693e7833c..d5c7ce509 100644 --- a/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid @@ -1,13 +1,15 @@ caption: Macro Definitions created: 20150220181617000 -modified: 20180820165115455 +modified: 20221022135909352 tags: WikiText title: Macro Definitions in WikiText type: text/vnd.tiddlywiki A [[macro|Macros]] is defined using a `\define` [[pragma|Pragma]]. Like any pragma, this can only appear at the start of a tiddler. -The first line of the definition specifies the macro name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the macro. The lines that follow contain the text of the macro text (i.e. the snippet represented by the macro name), until `\end` appears on a line by itself: +The first line of the definition specifies the macro name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the macro. + +The lines that follow contain the text of the macro text (i.e. the snippet represented by the macro name), until `\end` appears on a line by itself: <$codeblock code={{$:/editions/tw5.com/macro-examples/say-hi}}/> @@ -17,6 +19,20 @@ Alternatively, the entire definition can be presented on a single line without a \define sayhi(name:"Bugs Bunny") Hi, I'm $name$. ``` +Macro definitions can be nested by specifying the name of the macro in the `\end` marker. For example: + +<<wikitext-example-without-html src:"""\define special-button(caption:"Click me") +\define actions() +<$action-sendmessage $message="tm-notify" $param="HelloThere"/> +\end actions +<$button actions=<<actions>>> +$caption$ +</$button> +\end special-button + +<<special-button>> +""">> + A more formal [[presentation|Macro Definition Syntax]] of this syntax is also available. !! Accessing variables and parameters From 0dc30086e933cf2272cddb076a9fcbedad252735 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 22 Nov 2022 21:08:41 +0000 Subject: [PATCH 095/937] Update new release banner --- .../tiddlers/images/New Release Banner.png | Bin 108543 -> 18032 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 b94098b02dcfe72a69fe1360965ed8b905fdfa8c..5fd68f349d89b300d9885e4eba09c416623b6e90 100644 GIT binary patch literal 18032 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 KxvX<aXaWHF!>bAa literal 108543 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�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 QOaK4?07*qoM6N<$g8oGiSpWb4 From acfea3a212d9a44e79358122ae851a562b52a98e Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 22 Nov 2022 21:10:36 +0000 Subject: [PATCH 096/937] New release banner credits --- editions/prerelease/tiddlers/Release 5.2.4.tid | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index aec127496..8b13c27b9 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -7,6 +7,12 @@ type: text/vnd.tiddlywiki //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.3...master]]// +<<.banner-credits + credit:"""Congratulations to [[dmikh|https://talk.tiddlywiki.org/u/dmikh]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/new-release-banner-competition-for-v5-2-4/4982]] and the [[voting thread|https://talk.tiddlywiki.org/t/vote-for-the-v5-2-4-new-release-banner/5140/2]]). +""" + url:"https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/0dc30086e933cf2272cddb076a9fcbedad252735/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png" +>> + ! Plugin Improvements * New [[Twitter Archivist|./editions/twitter-archivist]] plugin to imports the tweets and associated media from a Twitter Archive as individual tiddlers From fba9efcf4a42f1333ec83a316c30dbdec5d74fe8 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 23 Nov 2022 08:28:06 +0000 Subject: [PATCH 097/937] Revert "add table utility classes and some docs how to use them. fix problem with control-panel basics tab shown in story river (#7039)" See #7056 This reverts commit b8a30091eee4df58aae199b28e4df33e2969aa95. --- core/ui/ControlPanel/Basics.tid | 5 +- ...Tables in WikiText CSS Utility Classes.tid | 81 ------------------- .../definitions/HTML Block Elements.tid | 9 --- ...e Classes Captions Headers and Footers.tid | 20 ----- .../tiddlers/wikitext/Tables in WikiText.tid | 16 +++- .../tiddlers/wikitext/Utility Classes.tid | 20 ----- themes/tiddlywiki/vanilla/base.tid | 27 +------ 7 files changed, 16 insertions(+), 162 deletions(-) delete mode 100644 editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid delete mode 100644 editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid delete mode 100644 editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid delete mode 100644 editions/tw5.com/tiddlers/wikitext/Utility Classes.tid diff --git a/core/ui/ControlPanel/Basics.tid b/core/ui/ControlPanel/Basics.tid index dd5580ad5..46df7e77c 100644 --- a/core/ui/ControlPanel/Basics.tid +++ b/core/ui/ControlPanel/Basics.tid @@ -20,16 +20,15 @@ caption: {{$:/language/ControlPanel/Basics/Caption}} \end \whitespace trim -|tc-max-width tc-edit-max-width|k |<<lingo Version/Prompt>> |''<<version>>'' | |<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | |<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | |<$link to="$:/status/UserName"><<lingo Username/Prompt>></$link> |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> | |<$link to="$:/config/AnimationDuration"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> | -|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit class="tc-edit-texteditor" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | +|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers" class="tc-edit-texteditor"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | |<$link to="$:/language/DefaultNewTiddlerTitle"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler="$:/language/DefaultNewTiddlerTitle" default="" tag="input"/> | |<$link to="$:/config/NewJournal/Title"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler="$:/config/NewJournal/Title" default="" tag="input"/> | -|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" class="tc-edit-texteditor" default=""/> | +|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" tag="textarea" class="tc-edit-texteditor" default=""/> | |<$link to="$:/config/NewTiddler/Tags"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewTiddler/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/NewJournal/Tags"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewJournal/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/AutoFocus"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} | diff --git a/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid b/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid deleted file mode 100644 index 14abc1c86..000000000 --- a/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid +++ /dev/null @@ -1,81 +0,0 @@ -created: 20220817153236691 -modified: 20221010074314452 -tags: [[Tables in WikiText]] -title: Tables in WikiText CSS Utility Classes -type: text/vnd.tiddlywiki - -~WikiText tables can be styled by applying CSS classes. For basic information on wiktext tables and how to style them, see [[Tables in WikiText]]. - -{{Table Classes, Captions, Headers and Footers}} - -As seen above, the resulting table is left aligned and grows to fit the content. This is the browser default layout behaviour for tables. To get another behaviour, various CSS classes can be added into the "`k` row". - -! Utility Classes - -{{Utility Classes}} - -! Examples - -The following examples apply the style classes to tables but the "General Utility Classes" can as well be used on DIVs or other [[HTML block elements|HTML Block Elements]] - -!! Centred Table - -To center a table horizontally, use `tc-center`: - -<<wikitext-example-without-html src:"""|tc-center|k -|This is a caption |c -|Cell1 |Cell2 | -|Cell3 |Cell4 | -|Header|Header|h -|Footer|Footer|f -""">> - -!! Centred Table, 80% Width - -To add empty left and right margins to a table that is otherwise full-tiddler-width, you can use `tc-max-width-80` - -<<wikitext-example-without-html src:"""|tc-center tc-max-width-80|k -|This is a caption |c -|Cell1 |<<.lorem>> | -|<<.lorem>> |Cell4 | -|Header|Header|h -""">> - -!! Table with Maximum Width - -To expand a table to full tiddler width, use `tc-max-width` - -<<wikitext-example-without-html src:"""|tc-max-width|k -|Header|Header|h -|Cell1 |Cell2 | -|Cell3 |Cell4 | -""">> - -!! Table with First Column Minimum Width - -The following example shows a simple "form" where the first columns width is adjusted to its content by means of `tc-first-col-min-width` - -<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width|k -|Header|Header|h -|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | -|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | -""">> - -!! Table with Maximum Width ~TextWidgets - -Here, the previous "form" is styled further to give the [[TextWidget]]s full width by adding the class `tc-edit-max-width` - -<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width|k -|Header|Header|h -|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | -|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | -""">> - -!! Table with No Borders - -The following is a table with maximum width. It contains [[TextWidget]]s with maximum width. The first column is set to be minimum width. Further, all links in the first column are set to __not__ line break (wrap) regardless of window resize. - -<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width tc-table-no-border tc-first-link-nowrap|k -| Cell1|<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | -|^ [[Link to a tiddler]]<br>some more text|<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | -""">> diff --git a/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid b/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid deleted file mode 100644 index 373ce9b45..000000000 --- a/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid +++ /dev/null @@ -1,9 +0,0 @@ -created: 20220818091959523 -modified: 20220818092101307 -tags: Definitions -title: HTML Block Elements -type: text/vnd.tiddlywiki - -<<< -HTML (Hypertext Markup Language) elements historically were categorized as either "block-level" elements or "inline-level" elements. Since this is a presentational characteristic it is nowadays specified by CSS in the Flow Layout. A Block-level element occupies the entire horizontal space of its parent element (container), and vertical space equal to the height of its contents, thereby creating a "block". -<<< https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements diff --git a/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid b/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid deleted file mode 100644 index 9e09827a2..000000000 --- a/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid +++ /dev/null @@ -1,20 +0,0 @@ -created: 20220819100636227 -modified: 20220819101309072 -tags: [[Tables in WikiText]] -title: Table Classes, Captions, Headers and Footers -type: text/vnd.tiddlywiki - -Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: - -* `|myclass anotherClass|k` assigns the CSS classes "myclass" and "anotherClass" to the table -* `|This is a caption |c` gives the table the caption "This is a caption" -* `|Header|Header|h` adds a header row of cells with the text "Header" -* `|Footer|Footer|f` adds a footer row of cells with the text "Footer" - -<<wikitext-example-without-html src:"""|myclass anotherClass|k -|This is a caption |c -|Cell1 |Cell2 | -|Cell3 |Cell3 | -|Header|Header|h -|Footer|Footer|f -""">> diff --git a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid index c7af206d7..9c1d83ed4 100644 --- a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid @@ -1,6 +1,6 @@ caption: Tables created: 20130914132100000 -modified: 20220819103416274 +modified: 20220513115945053 tags: WikiText title: Tables in WikiText type: text/vnd.tiddlywiki @@ -66,7 +66,17 @@ To merge a table cell with the one above, use the special cell text `~`. To merg ! Table Classes, Captions, Headers and Footers -{{Table Classes, Captions, Headers and Footers}} +Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: +* assigns the CSS classes "myclass" and "anotherClass" to the table +* gives the table the caption "This is a caption" +* adds a header row of cells with the text "Header" +* adds a footer row of cells with the text "Footer" -More examples can be found at: [[Tables in WikiText CSS Utility Classes]] +<<wikitext-example-without-html src:"""|myclass anotherClass|k +|This is a caption |c +|Cell1 |Cell2 | +|Cell3 |Cell3 | +|Header|Header|h +|Footer|Footer|f +""">> diff --git a/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid b/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid deleted file mode 100644 index 4a291e34b..000000000 --- a/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid +++ /dev/null @@ -1,20 +0,0 @@ -created: 20220818093624828 -modified: 20221010074235929 -tags: WikiText -title: Utility Classes -type: text/vnd.tiddlywiki - -<<.from-version "5.2.4">> The following outlines a few predefined CSS classes intended to make it simpler to style [[HTML block-elements|HTML Block Elements]] and [[wikitext tables|Tables in WikiText CSS Utility Classes]]. - -!! General Utility Classes - -|`tc-center` |Centres a block-element to the middle of the container | -|`tc-max-width `|Expands a block-element to use the maximum width of the container | -|`tc-max-width-80`|Sets the width of a block-element to use 80% of the maximum container width. This setting is useful with the `tc-center` class | -|`tc-edit-max-width `|Expands [[TextWidget]]s to use the maximum available width. See [[ControlPanel -> Info -> Basics|$:/core/ui/ControlPanel/Basics]]| -|`tc-first-link-nowrap` |Ensures that any links in the first table column will never wrap to the next line | - -!! Table Utility Classes - -|`tc-table-no-border` |Removes the borders of a table | -|`tc-first-col-min-width` |The first column of a table will take up minimal possible width. It adapts to the content | diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 6ff10e040..74274595a 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -326,7 +326,7 @@ table { } table th, table td { - padding: 4px 6px 4px 6px; + padding: 0 7px 0 7px; border-top: 1px solid <<colour table-border>>; border-left: 1px solid <<colour table-border>>; } @@ -357,36 +357,11 @@ Table utility classes width: 1%; } -/* -** Utility classes work well with tables but also for other containers -*/ - /* First link A element will not wrap */ .tc-first-link-nowrap:first-of-type a { white-space: nowrap; } -/* Move the table to the center of the container */ -.tc-center { - margin-left: auto; - margin-right: auto; -} - -.tc-max-width { - width: 100%; -} - -.tc-max-width-80 { - max-width: 80%; -} - -/* Allow input and textarea to look like the ControlPanel inputs */ -.tc-edit-max-width input, -.tc-edit-max-width textarea { - width: 100%; - padding: 3px; -} - /* CSV parser plugin */ From 026739e2e058df572220f6ee435a731cf00a604b Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 23 Nov 2022 21:52:36 +0000 Subject: [PATCH 098/937] Revert "Revert "add table utility classes and some docs how to use them. fix problem with control-panel basics tab shown in story river (#7039)"" See https://github.com/Jermolene/TiddlyWiki5/pull/7057#issue-1461608206 This reverts commit fba9efcf4a42f1333ec83a316c30dbdec5d74fe8. --- core/ui/ControlPanel/Basics.tid | 5 +- ...Tables in WikiText CSS Utility Classes.tid | 81 +++++++++++++++++++ .../definitions/HTML Block Elements.tid | 9 +++ ...e Classes Captions Headers and Footers.tid | 20 +++++ .../tiddlers/wikitext/Tables in WikiText.tid | 16 +--- .../tiddlers/wikitext/Utility Classes.tid | 20 +++++ themes/tiddlywiki/vanilla/base.tid | 27 ++++++- 7 files changed, 162 insertions(+), 16 deletions(-) create mode 100644 editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid create mode 100644 editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid create mode 100644 editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid create mode 100644 editions/tw5.com/tiddlers/wikitext/Utility Classes.tid diff --git a/core/ui/ControlPanel/Basics.tid b/core/ui/ControlPanel/Basics.tid index 46df7e77c..dd5580ad5 100644 --- a/core/ui/ControlPanel/Basics.tid +++ b/core/ui/ControlPanel/Basics.tid @@ -20,15 +20,16 @@ caption: {{$:/language/ControlPanel/Basics/Caption}} \end \whitespace trim +|tc-max-width tc-edit-max-width|k |<<lingo Version/Prompt>> |''<<version>>'' | |<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | |<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | |<$link to="$:/status/UserName"><<lingo Username/Prompt>></$link> |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> | |<$link to="$:/config/AnimationDuration"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> | -|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag="textarea" tiddler="$:/DefaultTiddlers" class="tc-edit-texteditor"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | +|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit class="tc-edit-texteditor" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | |<$link to="$:/language/DefaultNewTiddlerTitle"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler="$:/language/DefaultNewTiddlerTitle" default="" tag="input"/> | |<$link to="$:/config/NewJournal/Title"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler="$:/config/NewJournal/Title" default="" tag="input"/> | -|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" tag="textarea" class="tc-edit-texteditor" default=""/> | +|<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" class="tc-edit-texteditor" default=""/> | |<$link to="$:/config/NewTiddler/Tags"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewTiddler/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/NewJournal/Tags"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewJournal/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> | |<$link to="$:/config/AutoFocus"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} | diff --git a/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid b/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid new file mode 100644 index 000000000..14abc1c86 --- /dev/null +++ b/editions/tw5.com/tiddlers/Tables in WikiText CSS Utility Classes.tid @@ -0,0 +1,81 @@ +created: 20220817153236691 +modified: 20221010074314452 +tags: [[Tables in WikiText]] +title: Tables in WikiText CSS Utility Classes +type: text/vnd.tiddlywiki + +~WikiText tables can be styled by applying CSS classes. For basic information on wiktext tables and how to style them, see [[Tables in WikiText]]. + +{{Table Classes, Captions, Headers and Footers}} + +As seen above, the resulting table is left aligned and grows to fit the content. This is the browser default layout behaviour for tables. To get another behaviour, various CSS classes can be added into the "`k` row". + +! Utility Classes + +{{Utility Classes}} + +! Examples + +The following examples apply the style classes to tables but the "General Utility Classes" can as well be used on DIVs or other [[HTML block elements|HTML Block Elements]] + +!! Centred Table + +To center a table horizontally, use `tc-center`: + +<<wikitext-example-without-html src:"""|tc-center|k +|This is a caption |c +|Cell1 |Cell2 | +|Cell3 |Cell4 | +|Header|Header|h +|Footer|Footer|f +""">> + +!! Centred Table, 80% Width + +To add empty left and right margins to a table that is otherwise full-tiddler-width, you can use `tc-max-width-80` + +<<wikitext-example-without-html src:"""|tc-center tc-max-width-80|k +|This is a caption |c +|Cell1 |<<.lorem>> | +|<<.lorem>> |Cell4 | +|Header|Header|h +""">> + +!! Table with Maximum Width + +To expand a table to full tiddler width, use `tc-max-width` + +<<wikitext-example-without-html src:"""|tc-max-width|k +|Header|Header|h +|Cell1 |Cell2 | +|Cell3 |Cell4 | +""">> + +!! Table with First Column Minimum Width + +The following example shows a simple "form" where the first columns width is adjusted to its content by means of `tc-first-col-min-width` + +<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width|k +|Header|Header|h +|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | +|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | +""">> + +!! Table with Maximum Width ~TextWidgets + +Here, the previous "form" is styled further to give the [[TextWidget]]s full width by adding the class `tc-edit-max-width` + +<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width|k +|Header|Header|h +|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | +|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | +""">> + +!! Table with No Borders + +The following is a table with maximum width. It contains [[TextWidget]]s with maximum width. The first column is set to be minimum width. Further, all links in the first column are set to __not__ line break (wrap) regardless of window resize. + +<<wikitext-example-without-html src:"""|tc-max-width tc-first-col-min-width tc-edit-max-width tc-table-no-border tc-first-link-nowrap|k +| Cell1|<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> | +|^ [[Link to a tiddler]]<br>some more text|<$edit-text tiddler="$:/temp/test-table-input" field="text"/> | +""">> diff --git a/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid b/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid new file mode 100644 index 000000000..373ce9b45 --- /dev/null +++ b/editions/tw5.com/tiddlers/definitions/HTML Block Elements.tid @@ -0,0 +1,9 @@ +created: 20220818091959523 +modified: 20220818092101307 +tags: Definitions +title: HTML Block Elements +type: text/vnd.tiddlywiki + +<<< +HTML (Hypertext Markup Language) elements historically were categorized as either "block-level" elements or "inline-level" elements. Since this is a presentational characteristic it is nowadays specified by CSS in the Flow Layout. A Block-level element occupies the entire horizontal space of its parent element (container), and vertical space equal to the height of its contents, thereby creating a "block". +<<< https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements diff --git a/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid b/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid new file mode 100644 index 000000000..9e09827a2 --- /dev/null +++ b/editions/tw5.com/tiddlers/wikitext/Table Classes Captions Headers and Footers.tid @@ -0,0 +1,20 @@ +created: 20220819100636227 +modified: 20220819101309072 +tags: [[Tables in WikiText]] +title: Table Classes, Captions, Headers and Footers +type: text/vnd.tiddlywiki + +Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: + +* `|myclass anotherClass|k` assigns the CSS classes "myclass" and "anotherClass" to the table +* `|This is a caption |c` gives the table the caption "This is a caption" +* `|Header|Header|h` adds a header row of cells with the text "Header" +* `|Footer|Footer|f` adds a footer row of cells with the text "Footer" + +<<wikitext-example-without-html src:"""|myclass anotherClass|k +|This is a caption |c +|Cell1 |Cell2 | +|Cell3 |Cell3 | +|Header|Header|h +|Footer|Footer|f +""">> diff --git a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid index 9c1d83ed4..c7af206d7 100644 --- a/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Tables in WikiText.tid @@ -1,6 +1,6 @@ caption: Tables created: 20130914132100000 -modified: 20220513115945053 +modified: 20220819103416274 tags: WikiText title: Tables in WikiText type: text/vnd.tiddlywiki @@ -66,17 +66,7 @@ To merge a table cell with the one above, use the special cell text `~`. To merg ! Table Classes, Captions, Headers and Footers -Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example: +{{Table Classes, Captions, Headers and Footers}} -* assigns the CSS classes "myclass" and "anotherClass" to the table -* gives the table the caption "This is a caption" -* adds a header row of cells with the text "Header" -* adds a footer row of cells with the text "Footer" -<<wikitext-example-without-html src:"""|myclass anotherClass|k -|This is a caption |c -|Cell1 |Cell2 | -|Cell3 |Cell3 | -|Header|Header|h -|Footer|Footer|f -""">> +More examples can be found at: [[Tables in WikiText CSS Utility Classes]] diff --git a/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid b/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid new file mode 100644 index 000000000..4a291e34b --- /dev/null +++ b/editions/tw5.com/tiddlers/wikitext/Utility Classes.tid @@ -0,0 +1,20 @@ +created: 20220818093624828 +modified: 20221010074235929 +tags: WikiText +title: Utility Classes +type: text/vnd.tiddlywiki + +<<.from-version "5.2.4">> The following outlines a few predefined CSS classes intended to make it simpler to style [[HTML block-elements|HTML Block Elements]] and [[wikitext tables|Tables in WikiText CSS Utility Classes]]. + +!! General Utility Classes + +|`tc-center` |Centres a block-element to the middle of the container | +|`tc-max-width `|Expands a block-element to use the maximum width of the container | +|`tc-max-width-80`|Sets the width of a block-element to use 80% of the maximum container width. This setting is useful with the `tc-center` class | +|`tc-edit-max-width `|Expands [[TextWidget]]s to use the maximum available width. See [[ControlPanel -> Info -> Basics|$:/core/ui/ControlPanel/Basics]]| +|`tc-first-link-nowrap` |Ensures that any links in the first table column will never wrap to the next line | + +!! Table Utility Classes + +|`tc-table-no-border` |Removes the borders of a table | +|`tc-first-col-min-width` |The first column of a table will take up minimal possible width. It adapts to the content | diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 74274595a..6ff10e040 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -326,7 +326,7 @@ table { } table th, table td { - padding: 0 7px 0 7px; + padding: 4px 6px 4px 6px; border-top: 1px solid <<colour table-border>>; border-left: 1px solid <<colour table-border>>; } @@ -357,11 +357,36 @@ Table utility classes width: 1%; } +/* +** Utility classes work well with tables but also for other containers +*/ + /* First link A element will not wrap */ .tc-first-link-nowrap:first-of-type a { white-space: nowrap; } +/* Move the table to the center of the container */ +.tc-center { + margin-left: auto; + margin-right: auto; +} + +.tc-max-width { + width: 100%; +} + +.tc-max-width-80 { + max-width: 80%; +} + +/* Allow input and textarea to look like the ControlPanel inputs */ +.tc-edit-max-width input, +.tc-edit-max-width textarea { + width: 100%; + padding: 3px; +} + /* CSV parser plugin */ From 882e040e62c0713a6a3f384828c61e0e19daaba4 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Wed, 23 Nov 2022 22:53:21 +0100 Subject: [PATCH 099/937] Refactor import preview to not use a hidden table row (#7057) --- core/ui/ImportListing.tid | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/ui/ImportListing.tid b/core/ui/ImportListing.tid index 5100eb831..4db1d4757 100644 --- a/core/ui/ImportListing.tid +++ b/core/ui/ImportListing.tid @@ -117,15 +117,15 @@ title: $:/core/ui/ImportListing </div> </td> </$reveal> -<tr> +<$reveal type="match" text="yes" state=<<previewPopupState>> tag="tr"> <td colspan="3"> -<$reveal type="match" text="yes" state=<<previewPopupState>> tag="div"> <$list filter="[{$:/state/importpreviewtype}has[text]]" variable="listItem" emptyMessage={{$:/core/ui/ImportPreviews/Text}}> -<$transclude tiddler={{$:/state/importpreviewtype}}/> + <div> + <$transclude tiddler={{$:/state/importpreviewtype}}/> + </div> </$list> -</$reveal> </td> -</tr> +</$reveal> </$list> </tbody> </table> From 00927d2e13ece5a14bf8ec5364e3e3f5da85a846 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 23 Nov 2022 22:35:32 +0000 Subject: [PATCH 100/937] Add parsermode pragma Fixes #7058 --- .../parsers/wikiparser/rules/parsermode.js | 68 +++++++++++++++++++ core/modules/parsers/wikiparser/wikiparser.js | 4 +- .../tests/data/pragmas/Parsermode.tid | 36 ++++++++++ .../tiddlers/pragmas/Pragma_ _parsermode.tid | 17 +++++ .../wikitext/parser/WikiText Parser Modes.tid | 2 +- 5 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 core/modules/parsers/wikiparser/rules/parsermode.js create mode 100644 editions/test/tiddlers/tests/data/pragmas/Parsermode.tid create mode 100644 editions/tw5.com/tiddlers/pragmas/Pragma_ _parsermode.tid diff --git a/core/modules/parsers/wikiparser/rules/parsermode.js b/core/modules/parsers/wikiparser/rules/parsermode.js new file mode 100644 index 000000000..ad4287f99 --- /dev/null +++ b/core/modules/parsers/wikiparser/rules/parsermode.js @@ -0,0 +1,68 @@ +/*\ +title: $:/core/modules/parsers/wikiparser/rules/parsermode.js +type: application/javascript +module-type: wikirule + +Wiki pragma rule for parser mode specifications + +``` +\parsermode block +\parsermode inline +``` + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +exports.name = "parsermode"; +exports.types = {pragma: true}; + +/* +Instantiate parse rule +*/ +exports.init = function(parser) { + this.parser = parser; + // Regexp to match + this.matchRegExp = /^\\parsermode[^\S\n]/mg; +}; + +/* +Parse the most recent match +*/ +exports.parse = function() { + // Move past the pragma invocation + this.parser.pos = this.matchRegExp.lastIndex; + // Parse whitespace delimited tokens terminated by a line break + var reMatch = /[^\S\n]*(\S+)|(\r?\n)/mg, + parserMode = undefined; + reMatch.lastIndex = this.parser.pos; + var match = reMatch.exec(this.parser.source); + while(match && match.index === this.parser.pos) { + this.parser.pos = reMatch.lastIndex; + // Exit if we've got the line break + if(match[2]) { + break; + } + // Process the token + if(match[1]) { + parserMode = match[1]; + } + // Match the next token + match = reMatch.exec(this.parser.source); + } + // Process the tokens + if(parserMode !== undefined) { + if(parserMode === "block") { + this.parser.parseAsInline = false; + } else if(parserMode === "inline") { + this.parser.parseAsInline = true; + } + } + // No parse tree nodes to return + return []; +}; + +})(); diff --git a/core/modules/parsers/wikiparser/wikiparser.js b/core/modules/parsers/wikiparser/wikiparser.js index 8d6c442de..4c7419030 100644 --- a/core/modules/parsers/wikiparser/wikiparser.js +++ b/core/modules/parsers/wikiparser/wikiparser.js @@ -47,6 +47,8 @@ var WikiParser = function(type,text,options) { this.sourceLength = this.source.length; // Flag for ignoring whitespace this.configTrimWhiteSpace = false; + // Parser mode + this.parseAsInline = options.parseAsInline; // Set current parse position this.pos = 0; // Start with empty output @@ -83,7 +85,7 @@ var WikiParser = function(type,text,options) { // Parse any pragmas var topBranch = this.parsePragmas(); // Parse the text into inline runs or blocks - if(options.parseAsInline) { + if(this.parseAsInline) { topBranch.push.apply(topBranch,this.parseInlineRun()); } else { topBranch.push.apply(topBranch,this.parseBlocks()); diff --git a/editions/test/tiddlers/tests/data/pragmas/Parsermode.tid b/editions/test/tiddlers/tests/data/pragmas/Parsermode.tid new file mode 100644 index 000000000..57869e37a --- /dev/null +++ b/editions/test/tiddlers/tests/data/pragmas/Parsermode.tid @@ -0,0 +1,36 @@ +title: Pragmas/Parsermode +description: parsermode pragma +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +{{AlwaysInline}} + +{{AlwaysBlock}} + +{{AlwaysInline}}{{AlwaysBlock}} + ++ +title: AlwaysInline + +\parsermode inline +! Not Heading + +Text with ''bold'' ++ +title: AlwaysBlock + +\parsermode block +! Heading + +Text with ''bold'' ++ +title: ExpectedResult + +! Not Heading + +Text with <strong>bold</strong><h1 class="">Heading</h1><p>Text with <strong>bold</strong></p><p>! Not Heading + +Text with <strong>bold</strong><h1 class="">Heading</h1><p>Text with <strong>bold</strong></p> +</p> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/pragmas/Pragma_ _parsermode.tid b/editions/tw5.com/tiddlers/pragmas/Pragma_ _parsermode.tid new file mode 100644 index 000000000..2b0444ef4 --- /dev/null +++ b/editions/tw5.com/tiddlers/pragmas/Pragma_ _parsermode.tid @@ -0,0 +1,17 @@ +created: 20221123223127425 +modified: 20221123223127425 +tags: Pragmas +title: Pragma: \parsermode +type: text/vnd.tiddlywiki + +The ''\parsermode'' [[pragma|Pragmas]] adjusts whether the remaining text is parsed in block mode or inline mode. See [[WikiText Parser Modes]] for details of parser modes. + +``` +\parsermode block|inline +``` + +For example: + +``` +\parsermode inline +``` diff --git a/editions/tw5.com/tiddlers/wikitext/parser/WikiText Parser Modes.tid b/editions/tw5.com/tiddlers/wikitext/parser/WikiText Parser Modes.tid index 4a9c431b2..8056b9493 100644 --- a/editions/tw5.com/tiddlers/wikitext/parser/WikiText Parser Modes.tid +++ b/editions/tw5.com/tiddlers/wikitext/parser/WikiText Parser Modes.tid @@ -10,7 +10,7 @@ In order to display Tiddlers (usually the text field), the WikiText parser reads * ''block mode'' - the parser will recognise only [[block mode WikiText|Block Mode WikiText]] punctuation * ''inline mode'' - the parser will recognise only [[inline mode WikiText|Inline Mode WikiText]] -The parser [[transitions between these modes|WikiText parser mode transitions]] based on the text it encounters. In addition, there are [[places where the parser ignores WikiText|Places where the parser ignores WikiText]] punctuation. +The parser [[transitions between these modes|WikiText parser mode transitions]] based on the text it encounters. In addition, there are [[places where the parser ignores WikiText|Places where the parser ignores WikiText]] punctuation. The parser mode can also be set directly with the [[Pragma: \parsermode]]. <<.tip "The concept of inline vs block also exists for standard HTML elements. For HTML, these [[two layout modes|https://www.w3schools.com/html/html_blocks.asp]] determine if the output flows together on the same line or not. <p>Most [[block mode WikiText|Block Mode WikiText]] corresponds to [[block level HTML elements|https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements]] and most [[inline mode WikiText|Inline Mode WikiText]] corresponds to [[inline level HTML elements|https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements]]. However, for Wikitext the two modes are just as important for determining which syntax will be recognised by the parser as they are for determining how the output will flow.</p>">> \ No newline at end of file From 2fcbf3b521365a89890f01613c799614887caaa4 Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Thu, 24 Nov 2022 19:43:51 +0100 Subject: [PATCH 101/937] Update documentation to fix a mistake with format used by `created` and `modified` (#7060) --- editions/tw5.com/tiddlers/features/DateFormat.tid | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/features/DateFormat.tid b/editions/tw5.com/tiddlers/features/DateFormat.tid index db6a1f3e4..4083dad42 100644 --- a/editions/tw5.com/tiddlers/features/DateFormat.tid +++ b/editions/tw5.com/tiddlers/features/DateFormat.tid @@ -4,7 +4,7 @@ tags: Features title: DateFormat type: text/vnd.tiddlywiki -The default representation of dates is a compact string such as `20211002153802059`. For example, the `created` and `modified` fields are stored like this. +The default representation of dates is a compact string such as `20211002153802059`. For example, the `created` and `modified` fields are stored like this. The display format for this string can be controlled with a template. For example, transcluding the `modified` field automatically applies a template to display the date as `Sat Oct 02 2021 17:40:50 GMT+0200 (Central European Summer Time)`. A few widgets and filter operators allow you to manually specify a template, for example the ViewWidget: @@ -71,10 +71,10 @@ You can calculate the difference between two dates by doing the following: Here is an example of calculating the number of days that passed between creation and last modification of current tiddler: -* Fields `modified` and `created` contain their respective datetimes in the format `YYYYMMDDHHMMSSmmm` so convert them to timestamps +* Fields `modified` and `created` contain their respective datetimes in the format `[UTC]YYYY0MM0DD0hh0mm0ssXXX` so convert them to timestamps * `86400000` is the number of milliseconds in a day (1000 * 60 * 60 * 24) -<$macrocall $name=".example" n="0" eg="""<$let +<$macrocall $name=".example" n="0" eg="""<$let timestamp-modified={{{ [{!!modified}format:date[TIMESTAMP]] }}} timestamp-created={{{ [{!!created}format:date[TIMESTAMP]] }}} difference-days={{{ [<timestamp-modified>subtract<timestamp-created>divide[86400000]floor[]] }}}> From ebc1f7e4ce02dc1be28c2beb86cf93e90f743bd6 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 25 Nov 2022 15:14:15 +0000 Subject: [PATCH 102/937] Add link to official Mastodon account --- editions/tw5.com/tiddlers/hellothere/HelloThere.tid | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index c7097c677..25b5856eb 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -27,6 +27,9 @@ Unlike conventional online services, TiddlyWiki lets you choose where to keep yo <a href="https://twitter.com/TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#5E9FCA;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/twitter}} Twitter </a> +<a rel="me" href="https://fosstodon.org/@TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#5E9FCA;" target="_blank" rel="noopener noreferrer"> +{{$:/core/images/globe}} Mastodon +</a> <a href="https://github.com/Jermolene/TiddlyWiki5" class="tc-btn-big-green" style="border-radius:4px;background-color:#444;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/github}} ~GitHub </a> @@ -47,4 +50,4 @@ It's well worth spending an hour or so playing with it to see how it can help yo Finding code that works flawlessly after just two or three years is magical enough but after seven years?! <<< [[Mark Gibbs, Network World|http://www.networkworld.com/article/3028098/open-source-tools/tiddlywiki-a-free-open-source-wiki-revisited.html]] -<div style="font-size:0.7em;text-align:center;margin:3em auto;">{{Product Hunt Link}}</div> \ No newline at end of file +<div style="font-size:0.7em;text-align:center;margin:3em auto;">{{Product Hunt Link}}</div> From d707e6f825c66882fe4b873fe1f05ad959e22cbd Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 25 Nov 2022 15:28:12 +0000 Subject: [PATCH 103/937] Add Mastodon icon --- core/images/mastodon.tid | 6 ++++++ editions/tw5.com/tiddlers/hellothere/HelloThere.tid | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 core/images/mastodon.tid diff --git a/core/images/mastodon.tid b/core/images/mastodon.tid new file mode 100644 index 000000000..b27c751fd --- /dev/null +++ b/core/images/mastodon.tid @@ -0,0 +1,6 @@ +title: $:/core/images/mastodon +tags: $:/tags/Image + +<svg width="22pt" height="22pt" class="tc-image-mastodon tc-image-button" viewBox="0 0 128 128"> + <path d="M112.716,76.735C111.231,85.764 99.411,95.646 85.836,97.561C78.757,98.559 71.787,99.476 64.355,99.073C52.201,98.415 42.61,95.646 42.61,95.646C42.61,97.044 42.683,98.374 42.829,99.619C44.409,113.79 54.723,114.639 64.493,115.035C74.354,115.434 83.134,112.163 83.134,112.163L83.539,122.695C83.539,122.695 76.642,127.071 64.355,127.875C57.58,128.315 49.167,127.674 39.369,124.61C18.118,117.965 14.463,91.202 13.904,64.048C13.733,55.985 13.839,48.383 13.839,42.024C13.839,14.257 29.238,6.118 29.238,6.118C37.002,1.905 50.326,0.134 64.177,-0L64.517,-0C78.369,0.134 91.701,1.905 99.465,6.118C99.465,6.118 114.864,14.257 114.864,42.024C114.864,42.024 115.057,62.511 112.716,76.735ZM96.7,44.179C96.7,37.307 95.219,31.847 92.245,27.807C89.177,23.767 85.16,21.696 80.174,21.696C74.403,21.696 70.034,24.316 67.146,29.556L64.337,35.118L61.529,29.556C58.64,24.316 54.271,21.696 48.501,21.696C43.514,21.696 39.497,23.767 36.43,27.807C33.455,31.847 31.974,37.307 31.974,44.179L31.974,77.8L43.249,77.8L43.249,45.167C43.249,38.288 45.699,34.796 50.599,34.796C56.017,34.796 58.733,38.938 58.733,47.128L58.733,64.99L69.941,64.99L69.941,47.128C69.941,38.938 72.657,34.796 78.075,34.796C82.975,34.796 85.425,38.288 85.425,45.167L85.425,77.8L96.7,77.8L96.7,44.179Z"/> +</svg> diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index 25b5856eb..58d7ed517 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -28,7 +28,7 @@ Unlike conventional online services, TiddlyWiki lets you choose where to keep yo {{$:/core/images/twitter}} Twitter </a> <a rel="me" href="https://fosstodon.org/@TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#5E9FCA;" target="_blank" rel="noopener noreferrer"> -{{$:/core/images/globe}} Mastodon +{{$:/core/images/mastodon}} Mastodon </a> <a href="https://github.com/Jermolene/TiddlyWiki5" class="tc-btn-big-green" style="border-radius:4px;background-color:#444;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/github}} ~GitHub From 850a4dd3510f6d255230a4b52ee46de78987fb58 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 25 Nov 2022 17:59:11 +0000 Subject: [PATCH 104/937] Correct colour for Mastodon icon --- editions/tw5.com/tiddlers/hellothere/HelloThere.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index 58d7ed517..e9d93b70e 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -27,7 +27,7 @@ Unlike conventional online services, TiddlyWiki lets you choose where to keep yo <a href="https://twitter.com/TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#5E9FCA;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/twitter}} Twitter </a> -<a rel="me" href="https://fosstodon.org/@TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#5E9FCA;" target="_blank" rel="noopener noreferrer"> +<a rel="me" href="https://fosstodon.org/@TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#2b90d9;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/mastodon}} Mastodon </a> <a href="https://github.com/Jermolene/TiddlyWiki5" class="tc-btn-big-green" style="border-radius:4px;background-color:#444;" target="_blank" rel="noopener noreferrer"> From 97f7db169a58915415ead16b9af772b85423b365 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Sat, 26 Nov 2022 12:15:47 +0100 Subject: [PATCH 105/937] Allow the big download button to be defined using the colour palette values (#7064) --- .../tw5.com/tiddlers/system/tw5.com-styles.tid | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid index 251851457..db6e09c16 100644 --- a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid +++ b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid @@ -183,17 +183,17 @@ div.content { .tc-btn-download { padding: 10px 30px; border-radius: 5px; - background: #1462ff; - border: none; - box-shadow: 0 2px 2px 0 #4a74c9; + background: <<colour "download-background">>; + border: none; + box-shadow: 1px 2px 2px 0 <<colour muted-foreground>>; overflow: hidden; cursor: pointer; - font-size: 1.2em; - line-height: 1.4em; - color: #fff; - fill: #fff; + font-size: 1.2em; + line-height: 1.4em; + color: #fff; + fill: #fff; } .tc-btn-download:active { - background: #1475ff; + box-shadow: none; } From 32a033bb50359d7666b7043f0fa0a73868ba60de Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 26 Nov 2022 11:22:24 +0000 Subject: [PATCH 106/937] Fix advanced search keyboard shortcut navigation Fixes #7008 --- core/ui/KeyboardShortcuts/advanced-search.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/ui/KeyboardShortcuts/advanced-search.tid b/core/ui/KeyboardShortcuts/advanced-search.tid index 79c9df619..44ebd7b10 100644 --- a/core/ui/KeyboardShortcuts/advanced-search.tid +++ b/core/ui/KeyboardShortcuts/advanced-search.tid @@ -4,6 +4,6 @@ key: ((advanced-search)) \whitespace trim <$navigator story="$:/StoryList" history="$:/HistoryList"> -<$action-navigate $to="$:/AdvancedSearch"/> +<$action-navigate $to="$:/AdvancedSearch" $scroll="yes"/> <$action-sendmessage $message="tm-focus-selector" $param="""[data-tiddler-title="$:/AdvancedSearch"] .tc-search input""" preventScroll="true"/> </$navigator> From bea1a6b14f26b52b8432f2209129a69f4c23c6e1 Mon Sep 17 00:00:00 2001 From: btheado <brian.theado@gmail.com> Date: Sat, 26 Nov 2022 09:05:10 -0600 Subject: [PATCH 107/937] Fix issue with linked list remove (#7065) * Added failing linked-list test for #7059 * Fixed linked-list remove bug #7059 --- core/modules/utils/linked-list.js | 10 +++------- editions/test/tiddlers/tests/test-linked-list.js | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/core/modules/utils/linked-list.js b/core/modules/utils/linked-list.js index dca096419..45f22f90a 100644 --- a/core/modules/utils/linked-list.js +++ b/core/modules/utils/linked-list.js @@ -136,13 +136,9 @@ function _removeOne(list,value) { // we need to know if the FIRST value is the last in the list, not the last. if(next !== undefined) { if(typeof list.prev[next] === "object") { - if(prev === undefined) { - // Must have been first, and 'i' would be 0. - list.prev[next].shift(); - } else { - var i = list.prev[next].indexOf(value); - list.prev[next][i] = prev; - } + // Nothing special needed for first since list.prev[next][0] will be 'undefined' + var i = list.prev[next].indexOf(value); + list.prev[next][i] = prev; } else { list.prev[next] = prev; } diff --git a/editions/test/tiddlers/tests/test-linked-list.js b/editions/test/tiddlers/tests/test-linked-list.js index cf16fb91c..16bb33f61 100644 --- a/editions/test/tiddlers/tests/test-linked-list.js +++ b/editions/test/tiddlers/tests/test-linked-list.js @@ -137,6 +137,21 @@ describe("LinkedList class tests", function() { compare(pushTop(newPair(["C", "X", "A", "A"]), "X")); // CAAX }); + it("can remove all instances of a multi-instance value #7059", function() { + // Remove duplicate items when one or more items between the duplicates + // are not removed and the first of those duplicates is not the first item. + // These tests used to fail prior to the fix to #7059 + compare(remove(newPair(["A", "A", "C", "B", "A"]), ["A", "C", "A", "A"])); // B + compare(remove(newPair(["A", "A", "C", "B", "A"]), ["C", "A", "A", "A"])); // B + compare(remove(newPair(["A", "A", "C", "B", "A"]), ["A", "A", "A"])); // CB + compare(remove(newPair(["A", "A", "C", "B", "A"]), ["A", "A", "A", "C"])); // B + compare(remove(newPair(["A", "A", "B", "A"]), ["A", "A", "A"])); // B + compare(remove(newPair(["A", "A", "B", "A"]), ["A", "A", "A", "B"])); // + compare(remove(newPair(["C", "A", "B", "A"]), ["C", "A", "A"])); // B + compare(remove(newPair(["C", "A", "B", "A", "C"]), ["C", "A", "A", "C"])); // B + compare(remove(newPair(["B", "A", "B", "A"]), ["B", "A", "A"])); // B + }); + it("can handle particularly nasty pushTop pitfall", function() { var pair = newPair(["A", "B", "A", "C"]); pushTop(pair, "A"); // BACA From 684673cbffd7f8f075389169ed2ccf2d79f07f06 Mon Sep 17 00:00:00 2001 From: Marxsal <throaway@yahoo.com> Date: Sun, 27 Nov 2022 00:48:41 -0800 Subject: [PATCH 108/937] TiddlyBucket - Save to AWS or Google Storage (#7066) --- ...iddlyBucket - Save to AWS or Google Storage.tid | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid diff --git a/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid b/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid new file mode 100644 index 000000000..272f22bbc --- /dev/null +++ b/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid @@ -0,0 +1,14 @@ +caption: ~TiddlyBucket +color: #f48fb1 +created: 20221126192148031 +delivery: Protocol +description: Save to AWS or Google Storage +method: save +modified: 20221126192853897 +tags: Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows iOS Edge +title: TiddlyBucket - Save to AWS or Google Storage +type: text/vnd.tiddlywiki + +~TiddlyBucket - Save to AWS or Google Storage using Go + +This tool replicates the ~TiddlyWeb backend API and can read and write the tiddler files to a local directory like the canonical ~TiddlyWiki5 app. But, in addition, it can do the same with a given a Google Cloud Storage bucket or AWS S3 bucket. Written in the Go programming language \ No newline at end of file From 56f13133d82210a585838da12e94930f593b02ff Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 27 Nov 2022 13:35:56 +0000 Subject: [PATCH 109/937] Missed off preparation for v5.2.4 --- bin/build-site.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-site.sh b/bin/build-site.sh index 388782da4..fd1430199 100755 --- a/bin/build-site.sh +++ b/bin/build-site.sh @@ -5,7 +5,7 @@ # Default to the current version number for building the plugin library if [ -z "$TW5_BUILD_VERSION" ]; then - TW5_BUILD_VERSION=v5.2.3 + TW5_BUILD_VERSION=v5.2.4 fi echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]" From 34a20463c70c9b59bd1833310f224412438394dc Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 27 Nov 2022 13:55:22 +0000 Subject: [PATCH 110/937] Update release note --- editions/prerelease/tiddlers/Release 5.2.4.tid | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index 8b13c27b9..aa6d9baec 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -1,6 +1,6 @@ caption: 5.2.4 -created: 20221116172656216 -modified: 20221116172656216 +created: 20221127133944178 +modified: 20221127133944178 tags: ReleaseNotes title: Release 5.2.4 type: text/vnd.tiddlywiki @@ -45,6 +45,7 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6970">> detection of infinite recursion errors in widgets and filters * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6877">> default styles for [[styled runs|Styles and Classes in WikiText]] * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6881">> upgrade wizard to make the version number more prominent +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7042">> parsing of tiddlers containing CSV data for greater compatibility ! Widget Improvements @@ -53,10 +54,12 @@ Improvements to the translation features of TiddlyWiki: ! Filter improvements -* +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6303">> issue with availability of variables within filter runs +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7065">> issue with removing multiple items from a linked list during filter processing ! Hackability Improvements +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7004">> support for nested [[macro definitions|Macro Definitions in WikiText]] * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6976">> support for [[SystemTag: $:/tags/ClassFilters/TiddlerTemplate]] and [[SystemTag: $:/tags/ClassFilters/PageTemplate]] to assign dynamic CSS classes to both tiddler frames and the page template * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]] and [[format Operator]] * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/c5d3d4c26e8fe27f272dda004aec27d6b66c4f60">> safe mode to disable wiki store indexers @@ -67,13 +70,16 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6913">> [[Table-of-Contents Macros]] to allow the default icons to be overridden * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6939">> ''data-tags-*'' and ''data-tiddler-title'' attributes to the edit preview area * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/5947">> [[timeline Macro]] to override the link template +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7043">> support for Unix epoch timestamps in [[date format strings|DateFormat]] +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7064">> the "big green download button" to use the defined palette colour ! Bug Fixes * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/fb34df84ed41882c1c2a6ff54f0e908b43ef95a3">> "new image" keyboard shortcut not to assign journal tags * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6987">> SelectWidget class to update if it uses a filter -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6303">> issue with availability of variables within filter runs * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7017">> issue with wikification within the advanced search filter dropdown +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7057">> the table in $:/Import to avoid creating hidden empty rows +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7008">> advanced search keyboard shortcut not navigating correctly ! Developer Improvements @@ -85,6 +91,8 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7014">> problem with lazy loading deleting tiddler bodies under certian circumstances * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/344110e2890caf711ab8f3c4f4deaa7d86771231">> handling of ".mp4" file extension so that it defaults to video not audio * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6588">> test server to the plugin library edition +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7049">> [[Hidden Setting: Sync Logging]] to control logging of sync-related messages +* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6944">> Jasmine plugin to require the explicit use of the `--test` command in order to cause the tests to be run ! Performance Improvements @@ -113,6 +121,7 @@ pmario rmunn roma0104 saqimtiaz +talha131 tw-FRed twMat xcazin From 856aca2f929ecef60ae8b8ab8c258b2a54702cb6 Mon Sep 17 00:00:00 2001 From: Cameron Fischer <fischer.cameron@gmail.com> Date: Sun, 27 Nov 2022 12:48:08 -0500 Subject: [PATCH 111/937] Linked-List refactor (#6056) * Added failing linked-list test for #7059 * Fixed linked-list remove bug #7059 * Added failing linked-list test for #7059 * Switched LinkedList to use Map * Removed this.last from LinkedList * Removed this.first from LinkedList * Switching to deleting old LinkedList entries * LinkedList rewritten to be better * Using null as LinkList ends to reduce hashing * Using adhoc map... cause it's better than ECMA6 Map * compliance with TiddlyWiki coding conventions * Made link-list tests confirm the prev links Co-authored-by: btheado <brian.theado@gmail.com> --- core/modules/utils/linked-list.js | 154 +++++++++--------- .../test/tiddlers/tests/test-linked-list.js | 29 +++- 2 files changed, 108 insertions(+), 75 deletions(-) diff --git a/core/modules/utils/linked-list.js b/core/modules/utils/linked-list.js index 45f22f90a..917069d16 100644 --- a/core/modules/utils/linked-list.js +++ b/core/modules/utils/linked-list.js @@ -15,10 +15,11 @@ function LinkedList() { LinkedList.prototype.clear = function() { // LinkedList performs the duty of both the head and tail node - this.next = Object.create(null); - this.prev = Object.create(null); - this.first = undefined; - this.last = undefined; + this.next = new LLMap(); + this.prev = new LLMap(); + // Linked list head initially points to itself + this.next.set(null, null); + this.prev.set(null, null); this.length = 0; }; @@ -41,28 +42,29 @@ Push behaves like array.push and accepts multiple string arguments. But it also accepts a single array argument too, to be consistent with its other methods. */ LinkedList.prototype.push = function(/* values */) { - var values = arguments; + var i, values = arguments; if($tw.utils.isArray(values[0])) { values = values[0]; } - for(var i = 0; i < values.length; i++) { + for(i = 0; i < values.length; i++) { _assertString(values[i]); } - for(var i = 0; i < values.length; i++) { + for(i = 0; i < values.length; i++) { _linkToEnd(this,values[i]); } return this.length; }; LinkedList.prototype.pushTop = function(value) { + var t; if($tw.utils.isArray(value)) { - for (var t=0; t<value.length; t++) { + for (t=0; t<value.length; t++) { _assertString(value[t]); } - for(var t=0; t<value.length; t++) { + for(t=0; t<value.length; t++) { _removeOne(this,value[t]); } - for(var t=0; t<value.length; t++) { + for(t=0; t<value.length; t++) { _linkToEnd(this,value[t]); } } else { @@ -74,11 +76,11 @@ LinkedList.prototype.pushTop = function(value) { LinkedList.prototype.each = function(callback) { var visits = Object.create(null), - value = this.first; - while(value !== undefined) { + value = this.next.get(null); + while(value !== null) { callback(value); - var next = this.next[value]; - if(typeof next === "object") { + var next = this.next.get(value); + if(Array.isArray(next)) { var i = visits[value] || 0; visits[value] = i+1; value = next[i]; @@ -105,87 +107,79 @@ LinkedList.prototype.makeTiddlerIterator = function(wiki) { }; function _removeOne(list,value) { - var prevEntry = list.prev[value], - nextEntry = list.next[value], + var nextEntry = list.next.get(value); + if(nextEntry === undefined) { + return; + } + var prevEntry = list.prev.get(value), prev = prevEntry, - next = nextEntry; - if(typeof nextEntry === "object") { + next = nextEntry, + ref; + if(Array.isArray(nextEntry)) { next = nextEntry[0]; prev = prevEntry[0]; } // Relink preceding element. - if(list.first === value) { - list.first = next - } else if(prev !== undefined) { - if(typeof list.next[prev] === "object") { - if(next === undefined) { - // Must have been last, and 'i' would be last element. - list.next[prev].pop(); - } else { - var i = list.next[prev].indexOf(value); - list.next[prev][i] = next; - } - } else { - list.next[prev] = next; - } + ref = list.next.get(prev); + if(Array.isArray(ref)) { + var i = ref.indexOf(value); + ref[i] = next; } else { - return; + list.next.set(prev,next); } + // Now relink following element - // Check "next !== undefined" rather than "list.last === value" because - // we need to know if the FIRST value is the last in the list, not the last. - if(next !== undefined) { - if(typeof list.prev[next] === "object") { - // Nothing special needed for first since list.prev[next][0] will be 'undefined' - var i = list.prev[next].indexOf(value); - list.prev[next][i] = prev; - } else { - list.prev[next] = prev; - } + ref = list.prev.get(next); + if(Array.isArray(ref)) { + var i = ref.indexOf(value); + ref[i] = prev; } else { - list.last = prev; + list.prev.set(next,prev); } + // Delink actual value. If it uses arrays, just remove first entries. - if(typeof nextEntry === "object") { + if(Array.isArray(nextEntry) && nextEntry.length > 1) { nextEntry.shift(); prevEntry.shift(); } else { - list.next[value] = undefined; - list.prev[value] = undefined; + list.next.set(value,undefined); + list.prev.set(value,undefined); } list.length -= 1; }; // Sticks the given node onto the end of the list. function _linkToEnd(list,value) { - if(list.first === undefined) { - list.first = value; + var old = list.next.get(value); + var last = list.prev.get(null); + // Does it already exists? + if(old !== undefined) { + if(!Array.isArray(old)) { + old = [old]; + list.next.set(value,old); + list.prev.set(value,[list.prev.get(value)]); + } + old.push(null); + list.prev.get(value).push(last); } else { - // Does it already exists? - if(list.first === value || list.prev[value] !== undefined) { - if(typeof list.next[value] === "string") { - list.next[value] = [list.next[value]]; - list.prev[value] = [list.prev[value]]; - } else if(typeof list.next[value] === "undefined") { - // list.next[value] must be undefined. - // Special case. List already has 1 value. It's at the end. - list.next[value] = []; - list.prev[value] = [list.prev[value]]; - } - list.prev[value].push(list.last); - // We do NOT append a new value onto "next" list. Iteration will - // figure out it must point to End-of-List on its own. - } else { - list.prev[value] = list.last; - } - // Make the old last point to this new one. - if(typeof list.next[list.last] === "object") { - list.next[list.last].push(value); - } else { - list.next[list.last] = value; - } + list.next.set(value,null); + list.prev.set(value,last); + } + // Make the old last point to this new one. + if(value !== last) { + var array = list.next.get(last); + if(Array.isArray(array)) { + array[array.length-1] = value; + } else { + list.next.set(last,value); + } + list.prev.set(null,value); + } else { + // Edge case, the pushed value was already the last value. + // The second-to-last nextPtr for that value must point to itself now. + var array = list.next.get(last); + array[array.length-2] = value; } - list.last = value; list.length += 1; }; @@ -195,6 +189,20 @@ function _assertString(value) { } }; +var LLMap = function() { + this.map = Object.create(null); +}; + +// Just a wrapper so our object map can also accept null. +LLMap.prototype = { + set: function(key,val) { + (key === null) ? (this.null = val) : (this.map[key] = val); + }, + get: function(key) { + return (key === null) ? this.null : this.map[key]; + } +}; + exports.LinkedList = LinkedList; })(); diff --git a/editions/test/tiddlers/tests/test-linked-list.js b/editions/test/tiddlers/tests/test-linked-list.js index 16bb33f61..de477257d 100644 --- a/editions/test/tiddlers/tests/test-linked-list.js +++ b/editions/test/tiddlers/tests/test-linked-list.js @@ -59,10 +59,35 @@ describe("LinkedList class tests", function() { return pair; }; + // This returns an array in reverse using a LinkList's prev member. Thus + // testing that prev is not corrupt. It doesn't exist in the LinkList module + // itself to avoid full support for it. Maybe that will change later. + function toReverseArray(list) { + var visits = Object.create(null), + value = list.prev.get(null), + array = []; + while(value !== null) { + array.push(value); + var prev = list.prev.get(value); + if(Array.isArray(prev)) { + var i = (visits[value] || prev.length) - 1; + visits[value] = i; + value = prev[i]; + } else { + value = prev; + } + } + return array; + }; + // compares an array and a linked list to make sure they match up function compare(pair) { - expect(pair.list.toArray()).toEqual(pair.array); + var forward = pair.list.toArray(); + expect(forward).toEqual(pair.array); expect(pair.list.length).toBe(pair.array.length); + // Now we reverse the linked list and test it back to front, thus + // confirming that the list.prev isn't corrupt. + expect(toReverseArray(pair.list)).toEqual(forward.reverse()); return pair; }; @@ -115,7 +140,7 @@ describe("LinkedList class tests", function() { // for list.last to be anything other than a string, but I // can't figure out how to make that corruption manifest a problem. // So I dig into its private members. Bleh... - expect(typeof pair.list.last).toBe("string"); + expect(typeof pair.list.prev.get(null)).toBe("string"); }); it("can pushTop value linked to by a repeat item", function() { From 67c8f29160f59d0e19e8e9f5917c61cc23f5f16f Mon Sep 17 00:00:00 2001 From: Guang Li <oflg@foxmail.com> Date: Wed, 30 Nov 2022 06:57:13 +0800 Subject: [PATCH 112/937] more localized translation (#7069) --- languages/zh-Hans/Buttons.multids | 64 +++++++++---------- languages/zh-Hans/ControlPanel.multids | 34 +++++----- languages/zh-Hans/CoreReadMe.tid | 2 +- languages/zh-Hans/Docs/ModuleTypes.multids | 4 +- languages/zh-Hans/Docs/PaletteColours.multids | 16 ++--- languages/zh-Hans/Fields.multids | 10 +-- languages/zh-Hans/Filters.multids | 2 +- languages/zh-Hans/GettingStarted.tid | 7 +- languages/zh-Hans/Help/fetch.tid | 12 ++-- languages/zh-Hans/Help/init.tid | 2 +- languages/zh-Hans/Help/listen.tid | 10 +-- languages/zh-Hans/Help/makelibrary.tid | 2 +- languages/zh-Hans/Help/savetiddlers.tid | 2 +- languages/zh-Hans/Help/server.tid | 12 ++-- languages/zh-Hans/Help/setfield.tid | 6 +- languages/zh-Hans/Import.multids | 2 +- languages/zh-Hans/Misc.multids | 22 +++---- languages/zh-Hans/Search.multids | 12 ++-- languages/zh-Hans/SiteSubtitle.tid | 2 +- languages/zh-Hans/Snippets/ListByTag.tid | 2 +- languages/zh-Hans/ThemeTweaks.multids | 14 ++-- languages/zh-Hans/TiddlerInfo.multids | 4 +- 22 files changed, 122 insertions(+), 121 deletions(-) diff --git a/languages/zh-Hans/Buttons.multids b/languages/zh-Hans/Buttons.multids index 6feef4e92..97f403745 100644 --- a/languages/zh-Hans/Buttons.multids +++ b/languages/zh-Hans/Buttons.multids @@ -1,11 +1,11 @@ title: $:/language/Buttons/ -AdvancedSearch/Caption: 高级查找 -AdvancedSearch/Hint: 高级查找 +AdvancedSearch/Caption: 高级搜索 +AdvancedSearch/Hint: 高级搜索 Cancel/Caption: 取消 -Cancel/Hint: 放弃对此条目的更改 -Clone/Caption: 克隆 -Clone/Hint: 克隆此条目 +Cancel/Hint: 取消对此条目的修改 +Clone/Caption: 复制 +Clone/Hint: 复制此条目 Close/Caption: 关闭 Close/Hint: 关闭此条目 CloseAll/Caption: 全部关闭 @@ -34,21 +34,21 @@ ExportTiddler/Caption: 导出此条目 ExportTiddler/Hint: 导出此条目 ExportTiddlers/Caption: 导出条目 ExportTiddlers/Hint: 导出条目 -SidebarSearch/Hint: 选择侧边栏的查找字段 -Fold/Caption: 收合条目 -Fold/Hint: 收合此条目的内容 +SidebarSearch/Hint: 选择侧边栏的搜索字段 +Fold/Caption: 折叠条目 +Fold/Hint: 折叠此条目的内容 Unfold/Caption: 展开条目 Unfold/Hint: 展开此条目的内容 -FoldOthers/Caption: 收合其他条目 -FoldOthers/Hint: 收合其他已开启条目的内容 -FoldAll/Caption: 收合所有条目 -FoldAll/Hint: 收合所有已开启条目的内容 -Fold/FoldBar/Caption: 收合栏 -Fold/FoldBar/Hint: 可选的收合与展开条目的长条按钮 +FoldOthers/Caption: 折叠其他条目 +FoldOthers/Hint: 折叠其他已开启条目的内容 +FoldAll/Caption: 折叠所有条目 +FoldAll/Hint: 折叠所有已开启条目的内容 +Fold/FoldBar/Caption: 折叠栏 +Fold/FoldBar/Hint: 可选的折叠与展开条目的长条按钮 UnfoldAll/Caption: 展开所有条目 UnfoldAll/Hint: 展开所有已开启条目的内容 -FullScreen/Caption: 全屏幕 -FullScreen/Hint: 进入或离开全屏模式 +FullScreen/Caption: 全屏 +FullScreen/Hint: 进入或退出全屏模式 Help/Caption: 帮助 Help/Hint: 显示帮助面板 Home/Caption: 首页 @@ -58,11 +58,11 @@ Import/Hint: 导入许多类型的文件包括文本、图像、~TiddlyWiki 或 Info/Caption: 信息 Info/Hint: 显示此条目的信息 Language/Caption: 语言 -Language/Hint: 选择用户介面语言 +Language/Hint: 选择用户界面语言 Manager/Caption: 条目管理器 Manager/Hint: 开启条目管理器 More/Caption: 更多 -More/Hint: 更多动作 +More/Hint: 更多操作 NewHere/Caption: 添加子条目 NewHere/Hint: 创建一个标签为此条目名称的新条目 NewJournal/Caption: 添加日志 @@ -91,7 +91,7 @@ Save/Caption: 确定 Save/Hint: 确定对此条目的更改 SaveWiki/Caption: 保存变更 SaveWiki/Hint: 保存变更 -StoryView/Caption: 查看模式 +StoryView/Caption: 视图模式 StoryView/Hint: 选择查看条目的视觉效果 HideSideBar/Caption: 隐藏侧边栏 HideSideBar/Hint: 隐藏侧边栏 @@ -99,20 +99,20 @@ ShowSideBar/Caption: 显示侧边栏 ShowSideBar/Hint: 显示侧边栏 TagManager/Caption: 标签管理 TagManager/Hint: 标签管理 -Timestamp/Caption: 时间戳记 -Timestamp/Hint: 选择修改是否更新时间戳记 -Timestamp/On/Caption: 时间戳记开启 -Timestamp/On/Hint: 条目被修改时,更新时间戳记 -Timestamp/Off/Caption: 时间戳记关闭 -Timestamp/Off/Hint: 条目被修改时,不更新时间戳记 -Theme/Caption: 布景主题 -Theme/Hint: 选择布景主题 +Timestamp/Caption: 时间戳 +Timestamp/Hint: 选择修改是否更新时间戳 +Timestamp/On/Caption: 时间戳开启 +Timestamp/On/Hint: 条目被修改时,更新时间戳 +Timestamp/Off/Caption: 时间戳关闭 +Timestamp/Off/Hint: 条目被修改时,不更新时间戳 +Theme/Caption: 布局主题 +Theme/Hint: 选择布局主题 Bold/Caption: 粗体 Bold/Hint: 套用粗体格式于所选文本 Clear/Caption: 清除 Clear/Hint: 清除图像为纯色 EditorHeight/Caption: 编辑器高度 -EditorHeight/Caption/Auto: 自动调整高度以适合内容 +EditorHeight/Caption/Auto: 自动调整高度以适应内容 EditorHeight/Caption/Fixed: 固定高度︰ EditorHeight/Hint: 选择文本编辑器的高度 Excise/Caption: 剪切 @@ -124,7 +124,7 @@ Excise/Caption/Replace/Macro: 宏 Excise/Caption/Replace/Link: 链接 Excise/Caption/Replace/Transclusion: 嵌入 Excise/Caption/Tag: 将新条目的标签设为此条目的名称 -Excise/Caption/TiddlerExists: 警示:条目已经存在 +Excise/Caption/TiddlerExists: 提醒:条目已经存在 Excise/Hint: 剪切所选文本到一个新条目 Heading1/Caption: 标题 1 Heading1/Hint: 套用标题级别 1 的格式于包含所选文本的列 @@ -164,8 +164,8 @@ Preview/Caption: 预览 Preview/Hint: 显示预览窗格 PreviewType/Caption: 预览类型 PreviewType/Hint: 选择预览类型 -Quote/Caption: 引言 -Quote/Hint: 套用引言文本格式于包含所选文本的列 +Quote/Caption: 引用 +Quote/Hint: 套用引用文本格式于包含所选文本的列 RotateLeft/Caption: 向左旋转 RotateLeft/Hint: 图像向左旋转 90 度 Size/Caption: 图像大小 @@ -177,7 +177,7 @@ Stamp/Caption: 印记 Stamp/Caption/New: 添加您自己的 Stamp/Hint: 插入一个预配置的文本片段 Stamp/New/Title: 在选单中显示的标题 -Stamp/New/Text: 片段的文本。(记得在 `caption` 栏位中添加一个说明性的标题)。 +Stamp/New/Text: 片段的文本。(记得在 `caption` 字段中添加一个说明性的标题)。 Strikethrough/Caption: 删除线 Strikethrough/Hint: 套用删除线格式于所选文本 Subscript/Caption: 下标 diff --git a/languages/zh-Hans/ControlPanel.multids b/languages/zh-Hans/ControlPanel.multids index 81a883281..4275a4d5c 100644 --- a/languages/zh-Hans/ControlPanel.multids +++ b/languages/zh-Hans/ControlPanel.multids @@ -2,11 +2,11 @@ title: $:/language/ControlPanel/ Advanced/Caption: 高级 Advanced/Hint: 关于此 TiddlyWiki 的内部信息 -Appearance/Caption: 视觉外观 +Appearance/Caption: 外观 Appearance/Hint: 定制您的 TiddlyWiki 外观。 Basics/AnimDuration/Prompt: 动画持续时间 -Basics/AutoFocus/Prompt: 编辑条目时的默认自动停留栏位 -Basics/Caption: 基本 +Basics/AutoFocus/Prompt: 编辑条目时的默认自动停留字段 +Basics/Caption: 基础 Basics/DefaultTiddlers/BottomHint: 标题含空白时请使用 [[双中括弧]],或者您可用 {{保留开启中的条目顺序||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: 首页 Basics/DefaultTiddlers/TopHint: 默认开启的条目 @@ -92,8 +92,8 @@ Plugins/PluginWillRequireReload: (需要重新加载) Plugins/Plugins/Caption: 插件 Plugins/Plugins/Hint: 插件 Plugins/Reinstall/Caption: 重新安装 -Plugins/Themes/Caption: 布景主题 -Plugins/Themes/Hint: 布景主题插件 +Plugins/Themes/Caption: 布局主题 +Plugins/Themes/Hint: 布局主题插件 Plugins/Update/Caption: 更新 Plugins/Updates/Caption: 更新 Plugins/Updates/Hint: 已安装插件的可用更新 @@ -165,18 +165,18 @@ Settings/LinkToBehaviour/InsideRiver/Hint: 从故事河//中//导航 Settings/LinkToBehaviour/OutsideRiver/Hint: 从故事河//外//导航 Settings/LinkToBehaviour/OpenAbove: 开启于当前条目之上 Settings/LinkToBehaviour/OpenBelow: 开启于当前条目之下 -Settings/LinkToBehaviour/OpenAtTop: 开启于故事河的顶端 +Settings/LinkToBehaviour/OpenAtTop: 开启于故事河的顶部 Settings/LinkToBehaviour/OpenAtBottom: 开启于故事河的底部 Settings/MissingLinks/Caption: 维基链接 Settings/MissingLinks/Hint: 选择是否要链接到尚未存在的条目 Settings/MissingLinks/Description: 启用链接到佚失条目 -Settings/NavigationAddressBar/Caption: 网址栏导览 -Settings/NavigationAddressBar/Hint: 在浏览器网址栏导览到条目时的行为: +Settings/NavigationAddressBar/Caption: 网址栏导航 +Settings/NavigationAddressBar/Hint: 在浏览器网址栏导航到条目时的行为: Settings/NavigationAddressBar/No/Description: 不更新网址栏 Settings/NavigationAddressBar/Permalink/Description: 包含目标条目 Settings/NavigationAddressBar/Permaview/Description: 包括目标条目和当前已开启的条目序列 -Settings/NavigationHistory/Caption: 历史记录导览 -Settings/NavigationHistory/Hint: 当导览到条目时,更新浏览器历史记录: +Settings/NavigationHistory/Caption: 历史记录导航 +Settings/NavigationHistory/Hint: 当导航到条目时,更新浏览器历史记录: Settings/NavigationHistory/No/Description: 不更新历史记录 Settings/NavigationHistory/Yes/Description: 更新历史记录 Settings/NavigationPermalinkviewMode/Caption: 引用链接/固定链接 模式 @@ -201,18 +201,18 @@ Settings/TitleLinks/No/Description: 不显示条目标题为链接 Settings/TitleLinks/Yes/Description: 显示条目标题为链接 StoryTiddler/Caption: 故事条目 StoryTiddler/Hint: 此规则级联用于动态选择模板,以便在故事河中显示条目。 -StoryView/Caption: 查看模式 -StoryView/Prompt: 当前的查看模式: +StoryView/Caption: 视图模式 +StoryView/Prompt: 当前的视图模式: Stylesheets/Caption: 样式表 Stylesheets/Expand/Caption: 全部展开 Stylesheets/Hint: 这是当前标签为 <<tag "$:/tags/Stylesheet">> 的样式表条目呈现的 CSS Stylesheets/Restore/Caption: 复原 -Theme/Caption: 布景主题 -Theme/Prompt: 当前的布景主题: +Theme/Caption: 布局主题 +Theme/Prompt: 当前的布局主题: TiddlerColour/Caption: 条目颜色 TiddlerColour/Hint: 此规则级联用于动态地为条目选择颜色 (用于图示和关联的标签丸)。 -TiddlerFields/Caption: 条目栏位 -TiddlerFields/Hint: 这是本维基使用中的所有条目栏位(含系统条目的栏位,但默认条目的栏位除外)。 +TiddlerFields/Caption: 条目字段 +TiddlerFields/Hint: 这是本维基使用中的所有条目字段(含系统条目的字段,但默认条目的字段除外)。 TiddlerIcon/Caption: 条目图示 TiddlerIcon/Hint: 此规则级联用于动态地为条目选择图示。 Toolbars/Caption: 工具栏 @@ -224,7 +224,7 @@ Toolbars/PageControls/Hint: 选择将显示哪些按钮于主页面的工具栏 Toolbars/EditorToolbar/Caption: 编辑器工具栏 Toolbars/EditorToolbar/Hint: 选择将显示哪些按钮于编辑器工具栏。请注意,某些按钮只会出现在编辑某一类型的条目时。拖放可改变顺序。 Toolbars/ViewToolbar/Caption: 查看工具栏 -Toolbars/ViewToolbar/Hint: 选择将显示哪些按钮于条目的查看模式工具栏。拖放可改变顺序。 +Toolbars/ViewToolbar/Hint: 选择将显示哪些按钮于条目的视图模式工具栏。拖放可改变顺序。 Tools/Download/Full/Caption: 下载完整副本 ViewTemplateBody/Caption: 查看模板主体 ViewTemplateBody/Hint: 默认的查看模板使用此规则级联,动态选择模板以显示条目的主体。 diff --git a/languages/zh-Hans/CoreReadMe.tid b/languages/zh-Hans/CoreReadMe.tid index 7a7435ab8..9acdb0739 100644 --- a/languages/zh-Hans/CoreReadMe.tid +++ b/languages/zh-Hans/CoreReadMe.tid @@ -4,5 +4,5 @@ title: $:/core/zh-Hans/readme * JavaScript 代码模块 * 图标 -* 创建 TiddlyWiki 的用户介面所需的模板 +* 创建 TiddlyWiki 的用户界面所需的模板 * 核心所使用的可当地语系化字串的英国英语 (''en-GB'') 翻译 diff --git a/languages/zh-Hans/Docs/ModuleTypes.multids b/languages/zh-Hans/Docs/ModuleTypes.multids index 75de9a855..e86baa57f 100644 --- a/languages/zh-Hans/Docs/ModuleTypes.multids +++ b/languages/zh-Hans/Docs/ModuleTypes.multids @@ -16,10 +16,10 @@ parser: 不同内容类型的解析器。 route: 定义内置 HTTP 服务器如何处理各个网址格式。 saver: 于浏览器保存文件的不同的保存处理方法。 startup: 启动时期的功能函数。 -storyview: 查看模式用以自订 list 小部件的动画与行为。 +storyview: 视图模式用以自订 list 小部件的动画与行为。 texteditoroperation: 一个文本编辑器工具栏操作。 tiddlerdeserializer: 转换不同内容类型至条目。 -tiddlerfield: 定义个别条目栏位的行为。 +tiddlerfield: 定义个别条目字段的行为。 tiddlermethod: 添加方法至 `$tw.Tiddler` 原型。 upgrader: 于升级/导入过程中,套用升级处理至条目。 utils: 添加方法至 `$tw.utils`。 diff --git a/languages/zh-Hans/Docs/PaletteColours.multids b/languages/zh-Hans/Docs/PaletteColours.multids index 89cc4009c..e4f74d67d 100644 --- a/languages/zh-Hans/Docs/PaletteColours.multids +++ b/languages/zh-Hans/Docs/PaletteColours.multids @@ -1,11 +1,11 @@ title: $:/language/Docs/PaletteColours/ -alert-background: 警示背景 -alert-border: 警示边框 -alert-highlight: 警示高亮度 -alert-muted-foreground: 警示的低调前景 +alert-background: 提醒背景 +alert-border: 提醒边框 +alert-highlight: 提醒高亮度 +alert-muted-foreground: 提醒的低调前景 background: 一般背景 -blockquote-bar: 引言条 +blockquote-bar: 引用条 button-background: 默认按钮背景 button-border: 默认按钮边框 button-foreground: 默认按钮前景 @@ -66,7 +66,7 @@ sidebar-tab-foreground: 侧边栏页签前景 sidebar-tiddler-link-foreground-hover: 侧边栏悬停条目链结前景 sidebar-tiddler-link-foreground: 侧边栏条目链结前景 site-title-foreground: 网站标题前景 -static-alert-foreground: 静态警示前景 +static-alert-foreground: 静态提醒前景 tab-background-selected: 选定的页签背景 tab-background: 页签背景 tab-border-selected: 选定的页签边框 @@ -87,8 +87,8 @@ tiddler-controls-foreground: 条目控制项前景 tiddler-editor-background: 条目编辑器背景 tiddler-editor-border-image: 条目编辑器边框图片 tiddler-editor-border: 条目编辑器边框 -tiddler-editor-fields-even: 条目编辑器中偶数栏位背景 -tiddler-editor-fields-odd: 条目编辑器中奇数栏位背景 +tiddler-editor-fields-even: 条目编辑器中偶数字段背景 +tiddler-editor-fields-odd: 条目编辑器中奇数字段背景 tiddler-info-background: 条目信息面板背景 tiddler-info-border: 条目信息面板边框 tiddler-info-tab-background: 条目信息面板页签背景 diff --git a/languages/zh-Hans/Fields.multids b/languages/zh-Hans/Fields.multids index b0683aa06..af331b9a4 100644 --- a/languages/zh-Hans/Fields.multids +++ b/languages/zh-Hans/Fields.multids @@ -5,21 +5,21 @@ bag: 条目的来源集的名称 caption: 显示于页签或按钮上的标题文字 code-body: 若设置为 ''yes'',视图模板将以程式码形式显示条目 color: 条目的 CSS 颜色值 -component: 负责[[警示条目|AlertMechanism]]的组件名称 +component: 负责[[提醒条目|AlertMechanism]]的组件名称 created: 条目的创建日期 creator: 条目的创建者 current-tiddler: 用于缓存[[浏览历史列表|HistoryMechanism]]的最上层条目 -dependents: 插件的相依插件列表 +dependents: 插件的依赖插件列表 description: 插件的说明、描述 -draft.of: 草稿条目,包含条目的标题、标签、栏位 ... +draft.of: 草稿条目,包含条目的标题、标签、字段 ... draft.title: 草稿条目的标题 footer: 互动窗口的注脚 hide-body: 若设置为 ''yes'',视图模板将隐藏条目的主体 icon: 条目的标题含有与条目关联的图标 library: 若设置为 ''yes'',表示条目应该被保存为一个 JavaScript 程序库 list: 条目的列表,指定一些条目的标题清单 -list-before:当前条目名称将被添加到条目排序清单中的设置条目名称之前,或若此栏位存在但是空的,则被添加于清单的前端 -list-after: 当前条目名称将被添加到条目排序清单的设置条目名称之后,或若此栏位存在但是空的,则被添加于清单的尾端 +list-before:当前条目名称将被添加到条目排序清单中的设置条目名称之前,或若此字段存在但是空的,则被添加于清单的前端 +list-after: 当前条目名称将被添加到条目排序清单的设置条目名称之后,或若此字段存在但是空的,则被添加于清单的尾端 modified: 条目的最近修改日期与时间 modifier: 条目的最近修改者 name: 具可读性的插件条目的名称 diff --git a/languages/zh-Hans/Filters.multids b/languages/zh-Hans/Filters.multids index a1e496847..a8be46eaf 100644 --- a/languages/zh-Hans/Filters.multids +++ b/languages/zh-Hans/Filters.multids @@ -9,7 +9,7 @@ Drafts: 草稿条目 Orphans: 孤立条目 SystemTiddlers: 系统条目 ShadowTiddlers: 默认条目 -OverriddenShadowTiddlers: 被覆写的默认条目 +OverriddenShadowTiddlers: 被覆盖的默认条目 SessionTiddlers: 自维基加载后修改的条目 SystemTags: 系统标签 StoryList: 故事河中的条目,不含 ~$:/AdvancedSearch diff --git a/languages/zh-Hans/GettingStarted.tid b/languages/zh-Hans/GettingStarted.tid index 47b3098cd..ba2bc797d 100644 --- a/languages/zh-Hans/GettingStarted.tid +++ b/languages/zh-Hans/GettingStarted.tid @@ -1,9 +1,10 @@ title: GettingStarted \define lingo-base() $:/language/ControlPanel/Basics/ -欢迎使用 ~TiddlyWiki 及参与 ~TiddlyWiki 社群 -开始将重要资讯存放于 ~TiddlyWiki 之前,确认您可以可靠地保存变更是很重要的。详细资讯请参阅 https://tiddlywiki.com/#GettingStarted +欢迎来到 ~TiddlyWiki 和 ~TiddlyWiki 社区 + +开始在 ~TiddlyWiki 中存储重要信息之前,确保能够可靠地保存更改很重要。详情见 https://tiddlywiki.com/#GettingStarted !! 设置此 ~TiddlyWiki @@ -15,4 +16,4 @@ title: GettingStarted |^ <$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link><br><<lingo DefaultTiddlers/TopHint>>|<$edit tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | </div> -请参阅[[控制台|$:/ControlPanel]]查看更多选项。 \ No newline at end of file +可在[[控制台|$:/ControlPanel]]查看更多选项。 \ No newline at end of file diff --git a/languages/zh-Hans/Help/fetch.tid b/languages/zh-Hans/Help/fetch.tid index 39c37bb6c..2fdd9efb6 100644 --- a/languages/zh-Hans/Help/fetch.tid +++ b/languages/zh-Hans/Help/fetch.tid @@ -1,7 +1,7 @@ title: $:/language/Help/fetch -description: 通过网址从维基撷取条目 +description: 通过网址从维基提取条目 -通过 HTTP/HTTPS 撷取一个或多个文件,并导入匹配筛选器的条目,可选的转换传入的名称。 +通过 HTTP/HTTPS 提取一个或多个文件,并导入匹配筛选器的条目,可选的转换传入的名称。 ``` --fetch file <url> <import-filter> <transform-filter> @@ -10,11 +10,11 @@ description: 通过网址从维基撷取条目 --fetch raw-files <url-filter> <transform-filter> ``` - "file" 和 "files" 选项撷取指定的文件,并尝试导入其中的条目(与将文件拖动到浏览器视窗中的处理相同)。 "raw-file" 和 "raw-files" 变选项撷取指定的文件,并将原始文件资料存储于条目,而不套用导入逻辑。 + "file" 和 "files" 选项提取指定的文件,并尝试导入其中的条目(与将文件拖动到浏览器视窗中的处理相同)。 "raw-file" 和 "raw-files" 变选项提取指定的文件,并将原始文件资料存储于条目,而不套用导入逻辑。 -使用 "file" and "raw-file" 选项为仅撷取单个文件,且第一个参数为要读取文件的网址。 +使用 "file" and "raw-file" 选项为仅提取单个文件,且第一个参数为要读取文件的网址。 -使用 "files" 和 "raw-files" 选项为撷取多个文件,且第一个参数是一个产生要读取文件的网址清单的筛选器。例如,给定标签为 "remote-server" 的一组具有字段 "url" 的条目,筛选器 `[tag[remote-server]get[url]]` 将取回所有可用的网址。 +使用 "files" 和 "raw-files" 选项为提取多个文件,且第一个参数是一个产生要读取文件的网址清单的筛选器。例如,给定标签为 "remote-server" 的一组具有字段 "url" 的条目,筛选器 `[tag[remote-server]get[url]]` 将取回所有可用的网址。 对于 "file" 和 "files" 选项,the `<import-filter>` 参数指定一个筛选器,用于确定要导入哪些条目。如果未提供,则默认为 `[all[tiddlers]]`。 @@ -22,7 +22,7 @@ description: 通过网址从维基撷取条目 于 `--fetch` 之前使用 `--verbose` 命令,将在导入期间输出进度信息。 -请注意,TiddlyWiki 不会撷取一个已经加载插件的旧版本。 +请注意,TiddlyWiki 不会提取一个已经加载插件的旧版本。 以下示例从 https://tiddlywiki.com 取回所有非系统条目,并将其保存到一个 JSON 文件: diff --git a/languages/zh-Hans/Help/init.tid b/languages/zh-Hans/Help/init.tid index 6c5dcbcc8..915e99c15 100644 --- a/languages/zh-Hans/Help/init.tid +++ b/languages/zh-Hans/Help/init.tid @@ -19,5 +19,5 @@ tiddlywiki ./MyWikiFolder --init empty * 其中 "edition" 默认为 ''empty'' * 若 wiki 文件夹不是空的,则初始化命令将失败 * 初始化命令会删除 'tiddlywiki.info' 文件内所有 'includeWikis' 的定义。 -* 当指定多个版本时,这些版本于初始化后,将覆写早期版本共用的所有文件 (故此最终的 `tiddlywiki.info` 文件将是从最近的版本复制而得) +* 当指定多个版本时,这些版本于初始化后,将覆盖早期版本共用的所有文件 (故此最终的 `tiddlywiki.info` 文件将是从最近的版本复制而得) * `--editions` 传回所有可用版本的清单。 diff --git a/languages/zh-Hans/Help/listen.tid b/languages/zh-Hans/Help/listen.tid index a75323401..5dbf3be1a 100644 --- a/languages/zh-Hans/Help/listen.tid +++ b/languages/zh-Hans/Help/listen.tid @@ -16,16 +16,16 @@ listen 命令使用[[命名的命令参数|NamedCommandParameters]]: * ''port'' - 侦听的埠号;非数值会被解译为一个系统环境变数,从其中提取埠号 (默认为 "8080") * ''credentials'' - 凭证 CSV 文件的路径名(相对于维基文件夹) * ''anon-username'' - 匿名用户的编辑署名 -* ''username'' - 可选的基本验证用户名称 -* ''password'' - 可选的基本验证密码 +* ''username'' - 可选的基础验证用户名称 +* ''password'' - 可选的基础验证密码 * ''authenticated-user-header'' - 可选的标头名称,用于受信任身份验证 * ''readers'' - 允许读取此维基,以逗号分隔的用户名称的清单 * ''writers'' - 允许写入此维基,以逗号分隔的用户名称的清单 * ''csrf-disable'' - 设置为 "yes" 以禁用 CSRF 检查 (默认为 "no") * ''sse-enabled'' - 设置为 "yes" 以启用服务器传送的事件 (默认为 "no") -* ''root-tiddler'' - 服务的基本条目 (默认为 "$:/core/save/all") -* ''root-render-type'' - 呈现的基本条目的内容类型 (默认为 "text/plain") -* ''root-serve-type'' - 服务的基本条目的内容类型 (默认为 "text/html") +* ''root-tiddler'' - 服务的基础条目 (默认为 "$:/core/save/all") +* ''root-render-type'' - 呈现的基础条目的内容类型 (默认为 "text/plain") +* ''root-serve-type'' - 服务的基础条目的内容类型 (默认为 "text/html") * ''tls-cert'' - TLS 证书文件的路径名(相对于维基文件夹) * ''tls-key'' - TLS 密钥文件的路径名(相对于维基文件夹) * ''debug-level'' - 可选的调试级别;设置为 "debug" 来查看请求的详细信息;(默认为 "none") diff --git a/languages/zh-Hans/Help/makelibrary.tid b/languages/zh-Hans/Help/makelibrary.tid index 54d2df91e..1180af861 100644 --- a/languages/zh-Hans/Help/makelibrary.tid +++ b/languages/zh-Hans/Help/makelibrary.tid @@ -3,7 +3,7 @@ description: 构建升级处理所需的程式库插件 为升级处理构建 `$:/UpgradeLibrary` 条目。 -升级程式库被格式化为一个插件类型为 `library` 的一般插件条目。它包含 TiddlyWiki5 存储库中所有可用的插件、布景主题和语言包的副本。 +升级程式库被格式化为一个插件类型为 `library` 的一般插件条目。它包含 TiddlyWiki5 存储库中所有可用的插件、布局主题和语言包的副本。 此命令仅供内部使用;它只是与使用者构建一个自订的升级程序相关。 diff --git a/languages/zh-Hans/Help/savetiddlers.tid b/languages/zh-Hans/Help/savetiddlers.tid index 9cc5b4921..a47500a4f 100644 --- a/languages/zh-Hans/Help/savetiddlers.tid +++ b/languages/zh-Hans/Help/savetiddlers.tid @@ -11,6 +11,6 @@ description: 将一群条目的原始内容保存到一个文件夹 默认情况下,路径名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件夹。 -保存指定的文件之前,会先清除输出目录的现有文件。可藉由指定 ''noclean'' 旗标,禁用该删除动作。 +保存指定的文件之前,会先清除输出目录的现有文件。可藉由指定 ''noclean'' 旗标,禁用该删除操作。 自动创建在路径中任何缺少的文件夹。 diff --git a/languages/zh-Hans/Help/server.tid b/languages/zh-Hans/Help/server.tid index a26a954a5..af75d0766 100644 --- a/languages/zh-Hans/Help/server.tid +++ b/languages/zh-Hans/Help/server.tid @@ -1,9 +1,9 @@ title: $:/language/Help/server -description: 提供一个 HTTP 服务器介面到 TiddlyWiki (已弃用,支持新的 listen 命令) +description: 提供一个 HTTP 服务器界面到 TiddlyWiki (已弃用,支持新的 listen 命令) 在服务器中内置 TiddlyWiki5 是非常简单。虽与 TiddlyWeb 兼容,但不支持许多健全互联网面向的使用方式所需的功能。 -提供呈现一个指定条目,也可将个别条目编码成 JSON,且支持基本的 HTTP 操作 `GET`、`PUT` 及 `DELETE`. +提供呈现一个指定条目,也可将个别条目编码成 JSON,且支持基础的 HTTP 操作 `GET`、`PUT` 及 `DELETE`. ``` --server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level> @@ -12,11 +12,11 @@ description: 提供一个 HTTP 服务器介面到 TiddlyWiki (已弃用,支持 参数说明: * ''port'' - 要侦听的埠号;非数值会被解译为一个系统环境变数,从其中提取埠号 (默认为 "8080") -* ''root-tiddler'' - 服务的基本条目 (默认为 "$:/core/save/all") -* ''root-render-type'' - 呈现的基本条目的内容类型 (默认为 "text/plain") -* ''root-serve-type'' - 服务的基本条目的内容类型 (默认为 "text/html") +* ''root-tiddler'' - 服务的基础条目 (默认为 "$:/core/save/all") +* ''root-render-type'' - 呈现的基础条目的内容类型 (默认为 "text/plain") +* ''root-serve-type'' - 服务的基础条目的内容类型 (默认为 "text/html") * ''username'' - 默认的编辑者署名 -* ''password'' - 可选的基本验证密码 +* ''password'' - 可选的基础验证密码 * ''host'' - 可选的主机名称, (默认为 "127.0.0.1" 或名为 "localhost") * ''path-prefix'' - 可选的路径前缀 * ''debug-level'' - 可选的调试级别;设置为 "debug" 来查看请求的详细信息;(默认为 "none") diff --git a/languages/zh-Hans/Help/setfield.tid b/languages/zh-Hans/Help/setfield.tid index dc10f8491..896889754 100644 --- a/languages/zh-Hans/Help/setfield.tid +++ b/languages/zh-Hans/Help/setfield.tid @@ -3,7 +3,7 @@ description: 准备用于外部条目 //请注意此命令是试验性的,且可能会更改或在最终定稿前被替换// -设置一群条目的指定栏位到 wikifying 范本条目的结果,其中的 `currentTiddler` 变数设置为各该条目。 +设置一群条目的指定字段到 wikifying 范本条目的结果,其中的 `currentTiddler` 变数设置为各该条目。 ``` --setfield <filter> <fieldname> <templatetitle> <rendertype> @@ -12,6 +12,6 @@ description: 准备用于外部条目 参数说明: * ''filter'' - 受影响的辨识条目的筛选条件 -* ''fieldname'' - 要修改的栏位(默认为 "text") -* ''templatetitle'' - 该条目 wikify 到指定栏位。若为空白或丢失,则删除指定的栏位 +* ''fieldname'' - 要修改的字段(默认为 "text") +* ''templatetitle'' - 该条目 wikify 到指定字段。若为空白或丢失,则删除指定的字段 * ''rendertype'' - 要呈现的文本类型(默认为 "text/plain"; "text/html" 可以用于包含 HTML 标记)) diff --git a/languages/zh-Hans/Import.multids b/languages/zh-Hans/Import.multids index 6fc41d52f..b874dfed5 100644 --- a/languages/zh-Hans/Import.multids +++ b/languages/zh-Hans/Import.multids @@ -28,7 +28,7 @@ Upgrader/System/Disabled: 已禁用系統条目。 Upgrader/System/Suppressed: 封锁的系统条目。 Upgrader/System/Warning: 核心模块条目。 Upgrader/System/Alert: 您即将导入一个条目会覆盖一个核心模块条目。不建议这样做,因为可能会使系统不稳定。 -Upgrader/ThemeTweaks/Created: 从 <$text text=<<from>>/> 迁移布景主题。 +Upgrader/ThemeTweaks/Created: 从 <$text text=<<from>>/> 迁移布局主题。 Upgrader/Tiddler/Disabled: 已禁用系統条目。 Upgrader/Tiddler/Selected: 选定的条目。 Upgrader/Tiddler/Unselected: 未选定的条目。 \ No newline at end of file diff --git a/languages/zh-Hans/Misc.multids b/languages/zh-Hans/Misc.multids index 567ddfaee..3107626d2 100644 --- a/languages/zh-Hans/Misc.multids +++ b/languages/zh-Hans/Misc.multids @@ -1,16 +1,16 @@ title: $:/language/ -AboveStory/ClassicPlugin/Warning: 您貌似要加载为 ~TiddlyWiki 经典版设计的插件。请注意,[[这些插件无法运行于 TiddlyWiki 5.x.x 版|https://tiddlywiki.com/#TiddlyWikiClassic]]。检测到 ~TiddlyWiki 经典版插件: +AboveStory/ClassicPlugin/Warning: 您似乎要加载为 ~TiddlyWiki 经典版设计的插件。请注意,[[这些插件无法运行于 TiddlyWiki 5.x.x 版|https://tiddlywiki.com/#TiddlyWikiClassic]]。检测到 ~TiddlyWiki 经典版插件: BinaryWarning/Prompt: 此条目包含二进制数据 ClassicWarning/Hint: 此条目以经典版 TiddlyWiki 标记格式撰写,不完全兼容新版 TiddlyWiki 的格式,详细信息请参阅:https://tiddlywiki.com/static/Upgrading。 ClassicWarning/Upgrade/Caption: 升级 CloseAll/Button: 全部关闭 ColourPicker/Recent: 最近︰ -ConfirmCancelTiddler: 您确定要放弃对条目 "<$text text=<<title>>/>" 的更改? +ConfirmCancelTiddler: 您确定要取消对条目 "<$text text=<<title>>/>" 的更改? ConfirmDeleteTiddler: 您确定要删除条目 "<$text text=<<title>>/>"? ConfirmDeleteTiddlers: 您确定要删除 <<resultCount>> 个条目? -ConfirmOverwriteTiddler: 您确定要复写条目 "<$text text=<<title>>/>"? -ConfirmEditShadowTiddler: 您即将要编辑默认条目,任何更改将会复盖默认的系统,使未来的升级不寻常。您确定要编辑 "<$text text=<<title>>/>"? +ConfirmOverwriteTiddler: 您确定要覆盖条目 "<$text text=<<title>>/>"? +ConfirmEditShadowTiddler: 您即将要编辑默认条目,任何更改将会覆盖默认的系统,使未来的升级不寻常。您确定要编辑 "<$text text=<<title>>/>"? ConfirmAction: 是否要继续? Count: 计数 DefaultNewTiddlerTitle: 新条目 @@ -35,8 +35,8 @@ Error/NetworkErrorAlert: `<h2>''网络错误''</h2>与服务器的连缐似乎 Error/PutEditConflict: 服务器上的文件已更改 Error/PutForbidden: 没有权限 Error/PutUnauthorized: 需要身分验证 -Error/RecursiveTransclusion: 于 transclude 小部件中的递回嵌入错误 -Error/RetrievingSkinny: 简要条目清单撷取错误 +Error/RecursiveTransclusion: 于 transclude 小部件中的递归嵌入错误 +Error/RetrievingSkinny: 简要条目清单提取错误 Error/SavingToTWEdit: 保存到 TWEdit 时,发生错误 Error/WhileSaving: 保存时,发生错误 Error/XMLHttpRequest: XMLHttpRequest 错误代码 @@ -46,10 +46,10 @@ LayoutSwitcher/Description: 打开布局切换器 LazyLoadingWarning: <p>正在从 ''<$text text={{!!_canonical_uri}}/>'' 加载外部内容 ...</p><p>如果此信息未消失,可能是条目内容类型与外部内容的类型不匹配,或是您可能正在使用的浏览器,不支援单文件式维基的外部内容。请参阅 https://tiddlywiki.com/#ExternalText</p> LoginToTiddlySpace: 登录 TiddlySpace Manager/Controls/FilterByTag/None: (无) -Manager/Controls/FilterByTag/Prompt: 依标签筛选︰ +Manager/Controls/FilterByTag/Prompt: 按标签筛选︰ Manager/Controls/Order/Prompt: 反向顺序 -Manager/Controls/Search/Placeholder: 搜寻 -Manager/Controls/Search/Prompt: 搜寻︰ +Manager/Controls/Search/Placeholder: 搜索 +Manager/Controls/Search/Prompt: 搜索︰ Manager/Controls/Show/Option/Tags: 标签 Manager/Controls/Show/Option/Tiddlers: 条目 Manager/Controls/Show/Prompt: 显示︰ @@ -72,14 +72,14 @@ PluginReloadWarning: 请保存 {{$:/core/ui/Buttons/save-wiki}} 并刷新页面 RecentChanges/DateFormat: YYYY年0MM月0DD日 Shortcuts/Input/Accept/Hint: 接受选取的项目 Shortcuts/Input/AcceptVariant/Hint: 接受选取项目 (变种) -Shortcuts/Input/AdvancedSearch/Hint: 从侧边栏搜寻字段内打开[[进阶搜寻|$:/AdvancedSearch]]面板 +Shortcuts/Input/AdvancedSearch/Hint: 从侧边栏搜索字段内打开[[进阶搜索|$:/AdvancedSearch]]面板 Shortcuts/Input/Cancel/Hint: 清除输入字段 Shortcuts/Input/Down/Hint: 选择下一个项目 Shortcuts/Input/Tab-Left/Hint: 选择上一个页签 Shortcuts/Input/Tab-Right/Hint: 选择下一个页签 Shortcuts/Input/Up/Hint: 选择前一个项目 Shortcuts/SidebarLayout/Hint: 更改侧边栏布局 -Switcher/Subtitle/theme: 切换布景主题 +Switcher/Subtitle/theme: 切换布局主题 Switcher/Subtitle/layout: 切换布局 Switcher/Subtitle/language: 切换语言 Switcher/Subtitle/palette: 切换调色板 diff --git a/languages/zh-Hans/Search.multids b/languages/zh-Hans/Search.multids index 06bf94170..fca98a709 100644 --- a/languages/zh-Hans/Search.multids +++ b/languages/zh-Hans/Search.multids @@ -2,19 +2,19 @@ title: $:/language/Search/ DefaultResults/Caption: 列表 Filter/Caption: 筛选 -Filter/Hint: 以[[筛选表达式|https://tiddlywiki.com/static/Filters.html]]查找 +Filter/Hint: 以[[筛选表达式|https://tiddlywiki.com/static/Filters.html]]搜索 Filter/Matches: //<small><<resultCount>> 个条目符合条件</small>// Matches: //<small><<resultCount>> 个条目符合条件</small>// Matches/All: 所有匹配: Matches/Title: 条目名称匹配: -Search: 查找 -Search/TooShort: 查找文本太短 +Search: 搜索 +Search/TooShort: 搜索文本太短 Shadows/Caption: 默认 -Shadows/Hint: 查找默认条目 +Shadows/Hint: 搜索默认条目 Shadows/Matches: //<small><<resultCount>> 个条目符合条件</small>// Standard/Caption: 标准 -Standard/Hint: 查找一般条目 +Standard/Hint: 搜索一般条目 Standard/Matches: //<small><<resultCount>> 个条目符合条件</small>// System/Caption: 系统 -System/Hint: 查找系统条目 +System/Hint: 搜索系统条目 System/Matches: //<small><<resultCount>> 个条目符合条件</small>// diff --git a/languages/zh-Hans/SiteSubtitle.tid b/languages/zh-Hans/SiteSubtitle.tid index efde23ad6..f4fd5c0b2 100644 --- a/languages/zh-Hans/SiteSubtitle.tid +++ b/languages/zh-Hans/SiteSubtitle.tid @@ -1,3 +1,3 @@ title: $:/SiteSubtitle -一个非线性的网页式笔记 \ No newline at end of file +卡片式个人网页笔记 \ No newline at end of file diff --git a/languages/zh-Hans/Snippets/ListByTag.tid b/languages/zh-Hans/Snippets/ListByTag.tid index 5b65eb9b4..11108156c 100644 --- a/languages/zh-Hans/Snippets/ListByTag.tid +++ b/languages/zh-Hans/Snippets/ListByTag.tid @@ -1,5 +1,5 @@ title: $:/language/Snippets/ListByTag tags: $:/tags/TextEditor/Snippet -caption: 依标签筛选的条目列表 +caption: 按标签筛选的条目列表 <<list-links "[tag[task]sort[title]]">> diff --git a/languages/zh-Hans/ThemeTweaks.multids b/languages/zh-Hans/ThemeTweaks.multids index 02df2d7ec..b5c1c0c4a 100644 --- a/languages/zh-Hans/ThemeTweaks.multids +++ b/languages/zh-Hans/ThemeTweaks.multids @@ -1,21 +1,21 @@ title: $:/language/ThemeTweaks/ ThemeTweaks: 主题调整 -ThemeTweaks/Hint: 您可以调整 ''Vanilla'' 布景主题的某些样貌。 +ThemeTweaks/Hint: 您可以调整 ''Vanilla'' 布局主题的某些样貌。 Options: 选项 Options/SidebarLayout: 侧边栏布局 Options/SidebarLayout/Fixed-Fluid: 固定故事,浮动侧边栏 Options/SidebarLayout/Fluid-Fixed: 浮动故事,固定侧边栏 Options/StickyTitles: 置顶标题 -Options/StickyTitles/Hint: 使条目名称"黏着"于浏览器窗口的顶端 -Options/CodeWrapping: 在代码区块中折行 +Options/StickyTitles/Hint: 使条目名称吸顶 +Options/CodeWrapping: 在代码区块中换行 Settings: 设置 Settings/FontFamily: 字型 Settings/CodeFontFamily: 代码字型 Settings/EditorFontFamily: 编辑器字型 Settings/BackgroundImage: 页面背景图像 Settings/BackgroundImageAttachment: 页面背景图像附属 -Settings/BackgroundImageAttachment/Scroll: 随条目卷动 +Settings/BackgroundImageAttachment/Scroll: 随条目滚动 Settings/BackgroundImageAttachment/Fixed: 固定于窗口 Settings/BackgroundImageSize: 页面背景图像大小 Settings/BackgroundImageSize/Auto: 自动 @@ -28,8 +28,8 @@ Metrics/BodyFontSize: 条目本文的字体大小 Metrics/BodyLineHeight: 条目本文的行高 Metrics/StoryLeft: 故事左侧位置 Metrics/StoryLeft/Hint: 故事河(条目区)的左边缘与页面左端的间距 -Metrics/StoryTop: 故事顶端位置 -Metrics/StoryTop/Hint: 故事河(条目区)的上边缘与页面顶端的间距 +Metrics/StoryTop: 故事顶部位置 +Metrics/StoryTop/Hint: 故事河(条目区)的上边缘与页面顶部的间距 Metrics/StoryRight: 故事右侧位置 Metrics/StoryRight/Hint: 侧边栏的左边缘与页面左端的间距 Metrics/StoryWidth: 故事的宽度 @@ -39,4 +39,4 @@ Metrics/TiddlerWidth/Hint: 在故事河内 Metrics/SidebarBreakpoint: 侧边栏中断点 Metrics/SidebarBreakpoint/Hint: 故事河和侧边栏会并排显示的最小页面宽度 Metrics/SidebarWidth: 侧边栏宽度 -Metrics/SidebarWidth/Hint: 在浮动-固定布局中,侧边栏的宽度 +Metrics/SidebarWidth/Hint: 在 浮动故事,固定侧边栏 布局中,侧边栏的宽度 diff --git a/languages/zh-Hans/TiddlerInfo.multids b/languages/zh-Hans/TiddlerInfo.multids index b5580d1cf..6ea8f4b4a 100644 --- a/languages/zh-Hans/TiddlerInfo.multids +++ b/languages/zh-Hans/TiddlerInfo.multids @@ -8,8 +8,8 @@ Advanced/ShadowInfo/Heading: 默认条目状态 Advanced/ShadowInfo/NotShadow/Hint: <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 不是一个默认条目 Advanced/ShadowInfo/Shadow/Hint: <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 是一个默认条目 Advanced/ShadowInfo/Shadow/Source: 此条目定义于插件 <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link> -Advanced/ShadowInfo/OverriddenShadow/Hint: 已被一般条目覆写 -Fields/Caption: 栏位 +Advanced/ShadowInfo/OverriddenShadow/Hint: 已被一般条目覆盖 +Fields/Caption: 字段 List/Caption: 列表 List/Empty: 此条目无指定列表 Listed/Caption: 被列于 From 319d7fbe9c23b04263c3e8bfd4600579f6137745 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Wed, 30 Nov 2022 10:57:14 +0100 Subject: [PATCH 113/937] Add hidden option to make "More" sidebar tabs be horizontal (#7063) * make more sidebar tabs configurable vertical or horizontal * more sidebar tabs orientation German translation * remove language specific texts for more-horizontal setting * Add More -> tabs horizontal setting to Hidden Settings --- core/ui/SideBar/More.tid | 4 ++-- .../Hidden Setting_ More Tabs Horizontal.tid | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ More Tabs Horizontal.tid diff --git a/core/ui/SideBar/More.tid b/core/ui/SideBar/More.tid index 93c25aec2..35edb52bf 100644 --- a/core/ui/SideBar/More.tid +++ b/core/ui/SideBar/More.tid @@ -3,6 +3,6 @@ tags: $:/tags/SideBar caption: {{$:/language/SideBar/More/Caption}} \whitespace trim -<div class="tc-more-sidebar"> -<$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]" default={{$:/config/DefaultMoreSidebarTab}} state="$:/state/tab/moresidebar" class="tc-vertical tc-sidebar-tabs-more" explicitState="$:/state/tab/moresidebar-1850697562"/> +<div class={{{ [{$:/config/ui/SideBar/More/horizontal}match[yes]then[tc-sidebar-tabs]else[tc-more-sidebar]] }}}> +<$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]" default={{$:/config/DefaultMoreSidebarTab}} state="$:/state/tab/moresidebar" class={{{ [{$:/config/ui/SideBar/More/horizontal}match[yes]then[tc-sidebar-tabs-more]else[tc-vertical tc-sidebar-tabs-more]] }}} explicitState="$:/state/tab/moresidebar-1850697562"/> </div> diff --git a/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ More Tabs Horizontal.tid b/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ More Tabs Horizontal.tid new file mode 100644 index 000000000..59d58d633 --- /dev/null +++ b/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ More Tabs Horizontal.tid @@ -0,0 +1,7 @@ +created: 20221128092648000 +modified: 20221128092903706 +tags: [[Hidden Settings]] +title: Hidden Setting: More Tabs Horizontal +type: text/vnd.tiddlywiki + +Set the $:/config/ui/SideBar/More/horizontal tiddler to ''yes'', to align the ''More -> Tabs'' in horizontal orientation. \ No newline at end of file From f7ccba4c255cefd1cdfeb15a7b2506fc8cb04b58 Mon Sep 17 00:00:00 2001 From: lin onetwo <linonetwo012@gmail.com> Date: Wed, 30 Nov 2022 18:17:10 +0800 Subject: [PATCH 114/937] Add "code" and "key" to propogateKeydownEvent's cloneEvent (#7071) * feat: add key * feat: add code --- core/modules/editor/factory.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/editor/factory.js b/core/modules/editor/factory.js index 118f44f43..90ab66ae9 100644 --- a/core/modules/editor/factory.js +++ b/core/modules/editor/factory.js @@ -298,7 +298,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) { Propogate keydown events to our container for the keyboard widgets benefit */ EditTextWidget.prototype.propogateKeydownEvent = function(event) { - var newEvent = this.cloneEvent(event,["keyCode","which","metaKey","ctrlKey","altKey","shiftKey"]); + var newEvent = this.cloneEvent(event,["keyCode","code","which","key","metaKey","ctrlKey","altKey","shiftKey"]); return !this.parentDomNode.dispatchEvent(newEvent); }; From 3918e59cc143683ae225892ce3ba61bc8329fad8 Mon Sep 17 00:00:00 2001 From: FlashSystems <developer@flashsystems.de> Date: Thu, 1 Dec 2022 22:16:44 +0100 Subject: [PATCH 115/937] Fixed PR to fix popup position if popup is triggered from within an offsetParent element (#7013) * Fix popup location for tables This commit introduces the `popupAbsCoords` option to the $button widget and implements an absolut coordinate format. Coordinates for popups are stored in the format `(x,y,w,h)`. These coordinates are relative to the offset parent of the element that defines the popup. This commits adds a second format `@(x,y,w,h)`. Coordinates specified in this format a relative to the pages root element. The `popupAbsCoords` option of the $button widget enables the use of this coordinates. * Unify the declaration of the RegEx for parsing the popup-position The regular expression was declared in three locations with the same content. This commit supplies a new function `parseCoordinates` in `popup.js`. This function returns the parsed coordinates and understands the classic/absolute coordinates. This function is used in `reveal.js` and `action-popup.js` to parse the coordinates. * Add documentation for coordinate systems * Consolidate creating coordinate strings The Popup object now contains a `buildCoordinates` method that can be used to build coordinate strings. It takes an "enum" for the coordinate- system to use. This makes everything easily extensible and prevents the use of magic values. * Add tests for `parseCoordinates` and `buildCoordinates` * Add `tv-popup-abs-coords` to `collectDOMVariables` This will make the absolute coordinates available for the `DraggableWidget` and the `EventCatcherWidget`. * Add documentation for the `tv-popup-abs-coords` ... to the `DraggableWidget` and the `EventCatcherWidget`. * Fix crash when generating a static version of the TW The Popup class is not initialized in `startup.js` if `$tw.browser` is not true. After having consolidated the facilities for parsing coordinate strings into `popup.js` this breaks because the static build needs to parse coordinate stings even if no Popup module is initialized. This commit solves this problem by making `readPopupState`, `parseCoordinates` and `buildCoordinates` static methods of `popup.js`. It also adds a comment to these functions to show that these can be called safely even if the Popup-Class is not initialized. --- core/modules/utils/dom/dom.js | 19 ++++- core/modules/utils/dom/popup.js | 75 +++++++++++++++++-- core/modules/widgets/action-popup.js | 18 +++-- core/modules/widgets/button.js | 9 ++- core/modules/widgets/reveal.js | 21 +++--- editions/test/tiddlers/tests/test-popup.js | 63 ++++++++++++++++ .../tiddlers/concepts/CoordinateSystems.tid | 42 +++++++++++ .../tiddlers/mechanisms/PopupMechanism.tid | 1 + .../tiddlers/widgets/ActionPopupWidget.tid | 7 +- .../tw5.com/tiddlers/widgets/ButtonWidget.tid | 3 +- .../tiddlers/widgets/DraggableWidget.tid | 3 +- .../tiddlers/widgets/EventCatcherWidget.tid | 7 +- .../dynannotate/modules/dynannotate.js | 4 +- 13 files changed, 235 insertions(+), 37 deletions(-) create mode 100644 editions/test/tiddlers/tests/test-popup.js create mode 100644 editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid diff --git a/core/modules/utils/dom/dom.js b/core/modules/utils/dom/dom.js index 330d184cc..20aa6896d 100644 --- a/core/modules/utils/dom/dom.js +++ b/core/modules/utils/dom/dom.js @@ -12,6 +12,8 @@ Various static DOM-related utility functions. /*global $tw: false */ "use strict"; +var Popup = require("$:/core/modules/utils/dom/popup.js"); + /* Determines whether element 'a' contains element 'b' Code thanks to John Resig, http://ejohn.org/blog/comparing-document-position/ @@ -294,8 +296,21 @@ exports.collectDOMVariables = function(selectedNode,domNode,event) { }); if(selectedNode.offsetLeft) { - // 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 with a (relative and absolute) popup coordinate string for the selected node + var nodeRect = { + left: selectedNode.offsetLeft, + top: selectedNode.offsetTop, + width: selectedNode.offsetWidth, + height: selectedNode.offsetHeight + }; + variables["tv-popup-coords"] = Popup.buildCoordinates(Popup.coordinatePrefix.csOffsetParent,nodeRect); + + var absRect = $tw.utils.extend({}, nodeRect); + for (var currentNode = selectedNode.offsetParent; currentNode; currentNode = currentNode.offsetParent) { + absRect.left += currentNode.offsetLeft; + absRect.top += currentNode.offsetTop; + } + variables["tv-popup-abs-coords"] = Popup.buildCoordinates(Popup.coordinatePrefix.csAbsolute,absRect); // Add variables for offset of selected node variables["tv-selectednode-posx"] = selectedNode.offsetLeft.toString(); diff --git a/core/modules/utils/dom/popup.js b/core/modules/utils/dom/popup.js index 5eed80c88..017e7da8f 100644 --- a/core/modules/utils/dom/popup.js +++ b/core/modules/utils/dom/popup.js @@ -22,6 +22,19 @@ var Popup = function(options) { this.popups = []; // Array of {title:,wiki:,domNode:} objects }; +/* +Global regular expression for parsing the location of a popup. +This is also used by the Reveal widget. +*/ +exports.popupLocationRegExp = /^(@?)\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/ + +/* +Objekt containing the available prefixes for coordinates build with the `buildCoordinates` function: + - csOffsetParent: Uses a coordinate system based on the offset parent (no prefix). + - csAbsolute: Use an absolute coordinate system (prefix "@"). +*/ +exports.coordinatePrefix = { csOffsetParent: "", csAbsolute: "@" } + /* Trigger a popup open or closed. Parameters are in a hashmap: title: title of the tiddler where the popup details are stored @@ -136,8 +149,17 @@ Popup.prototype.show = function(options) { height: options.domNode.offsetHeight }; } - var popupRect = "(" + rect.left + "," + rect.top + "," + - rect.width + "," + rect.height + ")"; + if(options.absolute && options.domNode) { + // Walk the offsetParent chain and add the position of the offsetParents to make + // the position absolute to the root node of the page. + var currentNode = options.domNode.offsetParent; + while(currentNode) { + rect.left += currentNode.offsetLeft; + rect.top += currentNode.offsetTop; + currentNode = currentNode.offsetParent; + } + } + var popupRect = exports.buildCoordinates(options.absolute?exports.coordinatePrefix.csAbsolute:exports.coordinatePrefix.csOffsetParent,rect); if(options.noStateReference) { options.wiki.setText(options.title,"text",undefined,popupRect); } else { @@ -172,13 +194,54 @@ Popup.prototype.cancel = function(level) { }; /* -Returns true if the specified title and text identifies an active popup +Returns true if the specified title and text identifies an active popup. +This function is safe to call, even if the popup class was not initialized. */ -Popup.prototype.readPopupState = function(text) { - var popupLocationRegExp = /^\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/; - return popupLocationRegExp.test(text); +exports.readPopupState = function(text) { + return exports.popupLocationRegExp.test(text); }; +/* +Parses a coordinate string in the format `(x,y,w,h)` or `@(x,y,z,h)` and returns +an object containing the position, width and height. The absolute-Mark is boolean +value that indicates the coordinate system of the coordinates. If they start with +an `@`, `absolute` is set to true and the coordinates are relative to the root +element. If the initial `@` is missing, they are relative to the offset parent +element and `absoute` is false. +This function is safe to call, even if the popup class was not initialized. +*/ +exports.parseCoordinates = function(coordinates) { + var match = exports.popupLocationRegExp.exec(coordinates); + if(match) { + return { + absolute: (match[1] === "@"), + left: parseFloat(match[2]), + top: parseFloat(match[3]), + width: parseFloat(match[4]), + height: parseFloat(match[5]) + }; + } else { + return false; + } +} + +/* +Builds a coordinate string from a coordinate system identifier and an object +containing the left, top, width and height values. +Use constants defined in coordinatePrefix to specify a coordinate system. +If one of the parameters is invalid for building a coordinate string `(0,0,0,0)` +will be returned. +This function is safe to call, even if the popup class was not initialized. +*/ +exports.buildCoordinates = function(prefix,position) { + var coord = prefix + "(" + position.left + "," + position.top + "," + position.width + "," + position.height + ")"; + if (exports.popupLocationRegExp.test(coord)) { + return coord; + } else { + return "(0,0,0,0)"; + } +} + exports.Popup = Popup; })(); diff --git a/core/modules/widgets/action-popup.js b/core/modules/widgets/action-popup.js index 2903532b6..a3ce20165 100644 --- a/core/modules/widgets/action-popup.js +++ b/core/modules/widgets/action-popup.js @@ -14,6 +14,8 @@ Action widget to trigger a popup. var Widget = require("$:/core/modules/widgets/widget.js").widget; +var Popup = require("$:/core/modules/utils/dom/popup.js"); + var ActionPopupWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; @@ -57,20 +59,20 @@ Invoke the action associated with this widget */ ActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) { // Trigger the popup - var popupLocationRegExp = /^\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/, - match = popupLocationRegExp.exec(this.actionCoords || ""); - if(match) { + var coordinates = Popup.parseCoordinates(this.actionCoords || ""); + if(coordinates) { $tw.popup.triggerPopup({ domNode: null, domNodeRect: { - left: parseFloat(match[1]), - top: parseFloat(match[2]), - width: parseFloat(match[3]), - height: parseFloat(match[4]) + left: coordinates.left, + top: coordinates.top, + width: coordinates.width, + height: coordinates.height }, title: this.actionState, wiki: this.wiki, - floating: this.floating + floating: this.floating, + absolute: coordinates.absolute }); } else { $tw.popup.cancel(0); diff --git a/core/modules/widgets/button.js b/core/modules/widgets/button.js index a32820e8b..a724d8448 100644 --- a/core/modules/widgets/button.js +++ b/core/modules/widgets/button.js @@ -14,6 +14,8 @@ Button widget var Widget = require("$:/core/modules/widgets/widget.js").widget; +var Popup = require("$:/core/modules/utils/dom/popup.js"); + var ButtonWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; @@ -147,7 +149,7 @@ ButtonWidget.prototype.isSelected = function() { ButtonWidget.prototype.isPoppedUp = function() { var tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup); - var result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false; + var result = tiddler && tiddler.fields.text ? Popup.readPopupState(tiddler.fields.text) : false; return result; }; @@ -173,6 +175,7 @@ ButtonWidget.prototype.triggerPopup = function(event) { if(this.popupTitle) { $tw.popup.triggerPopup({ domNode: this.domNodes[0], + absolute: (this.popupAbsCoords === "yes"), title: this.popupTitle, wiki: this.wiki, noStateReference: true @@ -180,6 +183,7 @@ ButtonWidget.prototype.triggerPopup = function(event) { } else { $tw.popup.triggerPopup({ domNode: this.domNodes[0], + absolute: (this.popupAbsCoords === "yes"), title: this.popup, wiki: this.wiki }); @@ -223,6 +227,7 @@ ButtonWidget.prototype.execute = function() { this.setField = this.getAttribute("setField"); this.setIndex = this.getAttribute("setIndex"); this.popupTitle = this.getAttribute("popupTitle"); + this.popupAbsCoords = this.getAttribute("popupAbsCoords", "no"); this.tabIndex = this.getAttribute("tabindex"); this.isDisabled = this.getAttribute("disabled","no"); // Make child widgets @@ -252,7 +257,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["default"]) { + 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.popupAbsCoords || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled || changedAttributes["default"]) { this.refreshSelf(); return true; } else if(changedAttributes["class"]) { diff --git a/core/modules/widgets/reveal.js b/core/modules/widgets/reveal.js index 46e55e99e..3e3510f75 100755 --- a/core/modules/widgets/reveal.js +++ b/core/modules/widgets/reveal.js @@ -14,6 +14,8 @@ Reveal widget var Widget = require("$:/core/modules/widgets/widget.js").widget; +var Popup = require("$:/core/modules/utils/dom/popup.js"); + var RevealWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; @@ -94,6 +96,13 @@ RevealWidget.prototype.positionPopup = function(domNode) { left = Math.max(0,left); top = Math.max(0,top); } + if (this.popup.absolute) { + // Traverse the offsetParent chain and correct the offset to make it relative to the parent node. + for (var offsetParentDomNode = domNode.offsetParent; offsetParentDomNode; offsetParentDomNode = offsetParentDomNode.offsetParent) { + left -= offsetParentDomNode.offsetLeft; + top -= offsetParentDomNode.offsetTop; + } + } domNode.style.left = left + "px"; domNode.style.top = top + "px"; }; @@ -183,19 +192,11 @@ RevealWidget.prototype.compareStateText = function(state) { }; RevealWidget.prototype.readPopupState = function(state) { - var popupLocationRegExp = /^\((-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+),(-?[0-9\.E]+)\)$/, - match = popupLocationRegExp.exec(state); + this.popup = Popup.parseCoordinates(state); // Check if the state matches the location regexp - if(match) { + if(this.popup) { // If so, we're open this.isOpen = true; - // Get the location - this.popup = { - left: parseFloat(match[1]), - top: parseFloat(match[2]), - width: parseFloat(match[3]), - height: parseFloat(match[4]) - }; } else { // If not, we're closed this.isOpen = false; diff --git a/editions/test/tiddlers/tests/test-popup.js b/editions/test/tiddlers/tests/test-popup.js new file mode 100644 index 000000000..455da2b9b --- /dev/null +++ b/editions/test/tiddlers/tests/test-popup.js @@ -0,0 +1,63 @@ +/*\ +title: test-popup.js +type: application/javascript +tags: [[$:/tags/test-spec]] + +Tests some utility function of the Popup prototype. + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +describe("Popup tests", function() { + + it("parseCoordinates should parse valid coordinates", function() { + var popup = require("$:/core/modules/utils/dom/popup.js"); + + expect(popup.parseCoordinates("(1,2,3,4)")).toEqual({absolute: false, left: 1, top: 2, width: 3, height: 4}); + expect(popup.parseCoordinates("(1.5,2.6,3.7,4.8)")).toEqual({absolute: false, left: 1.5, top: 2.6, width: 3.7, height: 4.8}); + expect(popup.parseCoordinates("@(1,2,3,4)")).toEqual({absolute: true, left: 1, top: 2, width: 3, height: 4}); + expect(popup.parseCoordinates("@(1.5,2.6,3.7,4.8)")).toEqual({absolute: true, left: 1.5, top: 2.6, width: 3.7, height: 4.8}); + }); + + it("parseCoordinates should not parse invalid coordinates", function() { + var popup = require("$:/core/modules/utils/dom/popup.js"); + + expect(popup.parseCoordinates("#(1,2,3,4)")).toEqual(false); + expect(popup.parseCoordinates("(1,2,3,4")).toEqual(false); + expect(popup.parseCoordinates("(1,2,3)")).toEqual(false); + }); + + it("buildCoordinates should create valid coordinates", function() { + var popup = require("$:/core/modules/utils/dom/popup.js"); + + var coordinates = { + left: 1.5, + top: 2.6, + width: 3.7, + height: 4.8 + }; + + expect(popup.buildCoordinates(popup.coordinatePrefix.csOffsetParent, coordinates)).toEqual("(1.5,2.6,3.7,4.8)"); + expect(popup.buildCoordinates(popup.coordinatePrefix.csAbsolute, coordinates)).toEqual("@(1.5,2.6,3.7,4.8)"); + }); + + it("buildCoordinates should detect invalid input", function() { + var popup = require("$:/core/modules/utils/dom/popup.js"); + + var coordinates = { + left: "invalid", + top: 2.6, + width: 3.7, + height: 4.8 + }; + + expect(popup.buildCoordinates(popup.coordinatePrefix.csOffsetParent, coordinates)).toEqual("(0,0,0,0)"); + expect(popup.buildCoordinates("dummy", coordinates)).toEqual("(0,0,0,0)"); + }); +}); + +})(); diff --git a/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid b/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid new file mode 100644 index 000000000..9b66f941b --- /dev/null +++ b/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid @@ -0,0 +1,42 @@ +created: 20220810201659784 +modified: 20220810201659784 +tags: Concepts +title: Coordinate Systems +type: text/vnd.tiddlywiki + +TiddlyWiki (primarily the RevealWidget) supports two coordinate systems for positioning popups (see PopupMechanism to learn more about popups). + +<<.from-version "5.2.4">> We introduced absolute coordinates that may not work with all extensions and plugins. For maximum backwards compatibility, use absolute coordinates only where necessary. + +!! Relative coordinate system + +The default coordinate system is relative to the nearest positioned ancestor element. This is either: + +* an element with a non-static position, or +* a ''td'', ''th'', ''table'' in case the element itself is static positioned. + +For tiddlers the nearest positioned ancestor element mostly is the body of the tiddler. Read the next chapter to learn about the exceptions. + +Relative coordinates are expressed in the form ''(x,y,w,h)''. Where ''x'' and ''y'' represent the position and ''w'' and ''h'' the width and height of the element. + +!! Absolute coordinate system + +The relative coordinate system works flawless most of the time. Problems occure if the target element (for example, a popup) and the source element (the triggering button) do not share the same positioned ancherstor element. This is often the case if the popup is declared outside a table and the triggering button is declared within a table cell. In this case the coordiante systems have different origins and the popup will be displayed in the wrong location. + +Absolute coordinates can fix this problem by using the root element of the page (the upper-left corner of the page) as the origin of the coordinate system. Absolute coordinates are expressed in the form ''@(x,y,w,h)''. Where ''x'' and ''y'' represent the position and ''w'' and ''h'' the width and height of the element. The leading ''@''-symbol marks these coordinates as absolute. + +The ButtonWidget has an option (''popupAbsCoords'') to put absolute coordinates into the state tiddler. The DraggableWidget and the EventCatcherWidget provide the absolute coordinate of an event within the attribute `tv-popup-abs-coords`. + + +!! Example + +The following example shows a popup that is triggerd from within a table cell. The table cell is the nearest positioned ancestor element. The popup was defined outside the table cell. The button using relative coordinates will open the popup in the wrong location because the button and the popup do not agree on the same coordinate system. Using absolute coordinates fixes this problem. + +<<wikitext-example-without-html '<$reveal type="popup" state="$:/state/CoordinateSampleReveal"> +<div class="tc-drop-down"> +Popup +</div> +</$reveal> + +| Table Row 1 |<$button popup="$:/state/CoordinateSampleReveal">Relative coordinates</$button>| +| Table Row 2 |<$button popup="$:/state/CoordinateSampleReveal" popupAbsCoords="yes">Absolute coordinates</$button>|'>> diff --git a/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid b/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid index 60566a329..79f3de4c5 100644 --- a/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid +++ b/editions/tw5.com/tiddlers/mechanisms/PopupMechanism.tid @@ -8,6 +8,7 @@ The popup mechanism allows blocks of content to be selectively displayed and pos * [[StateTiddlers|StateMechanism]] to record whether a popup is currently displayed or not * The RevealWidget to selectively display the popup content +** <<.from-version "5.2.4">> For positioning the popups relative or absolute coordinates can be used. See [[Coordinate Systems]] for more information about usage and format. ** For "sticky" popups — those that don't close when clicking inside one — set the ''class'' attribute to `tc-popup-keep` * The ButtonWidget to trigger the display of the popup by setting the state tiddler appropriately diff --git a/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid b/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid index e423b6576..590e25a92 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid @@ -1,6 +1,6 @@ caption: action-popup created: 20200303114556528 -modified: 20210501203451387 +modified: 20220815205132124 tags: Widgets ActionWidgets title: ActionPopupWidget type: text/vnd.tiddlywiki @@ -15,10 +15,11 @@ The ''action-popup'' widget is invisible. Any content within it is ignored. |!Attribute |!Description | |$state |The title of the state tiddler for the popup | -|$coords |Optional coordinates for the handle to which popup is positioned (in the format `(x,y,w,h)`) | +|$coords |Optional coordinates for the handle to which popup is positioned (see [[Coordinate Systems]] for the supported formats) | |$floating |<<.from-version "5.2.0">> Optional. Defaults to `no`. Set to `yes` to create a popup that must be closed explicitly. | -<<.from-version "5.1.23">> If the ''$coords'' attribute is missing or empty then all popups are cancelled. +<<.from-version "5.1.23">> If the ''$coords'' attribute is missing or empty then all popups are cancelled.<br/> +<<.from-version "5.2.4">> The ''$coords'' attribute supports absolute and relative coordinates. See [[Coordinate Systems]] for more information. <<.tip "Delete the state tiddler for a floating popup to close it.">> diff --git a/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid b/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid index e94504659..da61838af 100644 --- a/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid @@ -1,6 +1,6 @@ caption: button created: 20131024141900000 -modified: 20211009121239795 +modified: 20220810192251345 tags: Widgets TriggeringWidgets title: ButtonWidget type: text/vnd.tiddlywiki @@ -37,6 +37,7 @@ The content of the `<$button>` widget is displayed within the button. |default |Default value if <<.attr set>> tiddler is missing for testing against <<.attr setTo>> to determine <<.attr selectedClass>> | |popup |Title of a state tiddler for a popup that is toggled when the button is clicked. See PopupMechanism for details | |popupTitle |Title of a state tiddler for a popup that is toggled when the button is clicked. In difference to the <<.attr popup>> attribute, ''no'' TextReference is used. See PopupMechanism for details | +|popupAbsCoords |<<.from-version "5.2.4">> If set to ''yes'' writes absolute coordinates to the tiddler referenced by the <<.attr popup>>. If set to ''no'' (the default) uses relative coordinates. See [[Coordinate Systems]] for details | |aria-label |Optional [[Accessibility]] label | |tooltip |Optional tooltip | |class |An optional CSS class name to be assigned to the HTML element| diff --git a/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid b/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid index fc65c4e74..c25b15791 100644 --- a/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid @@ -41,7 +41,8 @@ The LinkWidget incorporates the functionality of the DraggableWidget via the ''d |!Variables |!Description | |`modifier` |The [[modifier Variable]] contains the Modifier Key held while dragging | |`dom-*` |All DOM attributes of the node being dragged are made available as variables, with the prefix `dom-` | -|`tv-popup-coords` |A co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node that's being dragged where the event originated | +|`tv-popup-coords` |A relative co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | +|`tv-popup-abs-coords` |<<.from-version "5.2.4">> An absolute co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | |`tv-selectednode-posx` |`x` offset position of the dragged DOM node | |`tv-selectednode-posy` |`y` offset position of the dragged DOM node | |`tv-selectednode-width` |`offsetWidth` of the dragged DOM node | diff --git a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid index f0c8c257c..5c2568a19 100644 --- a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid @@ -1,5 +1,5 @@ created: 20201123113532200 -modified: 20220507184043398 +modified: 20221012194222875 tags: Widgets TriggeringWidgets title: EventCatcherWidget type: text/vnd.tiddlywiki @@ -10,7 +10,7 @@ type: text/vnd.tiddlywiki //This is an advanced widget intended for use by those familiar with HTML, CSS and JavaScript handling of DOM events.// -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. +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: @@ -47,7 +47,8 @@ The following variables are made available to the actions: |`event-mousebutton` |The mouse button (if any) used to trigger the event (can be "left", "right" or "middle"). Note that not all event types support the mousebutton property | |`event-type` |The type property of the JavaScript event | |`event-detail-*` |Any properties in the detail attribute of the event are made available with the prefix `event-detail-` | -|`tv-popup-coords` |A co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated | +|`tv-popup-coords` |A relative co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | +|`tv-popup-abs-coords` |<<.from-version "5.2.4">> An absolute co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see [[Coordinate Systems]] for more information) | |`tv-widgetnode-width` |<<.from-version "5.2.3">> `offsetWidth` of the DOM node created by the eventcatcher widget | |`tv-widgetnode-height` |<<.from-version "5.2.3">> `offsetHeight` of the DOM node created by the eventcatcher widget | |`tv-selectednode-posx` |`x` offset position of the selected DOM node | diff --git a/plugins/tiddlywiki/dynannotate/modules/dynannotate.js b/plugins/tiddlywiki/dynannotate/modules/dynannotate.js index 9a913384d..00314dab2 100644 --- a/plugins/tiddlywiki/dynannotate/modules/dynannotate.js +++ b/plugins/tiddlywiki/dynannotate/modules/dynannotate.js @@ -16,6 +16,8 @@ var TextMap = require("$:/plugins/tiddlywiki/dynannotate/textmap.js").TextMap; var Widget = require("$:/core/modules/widgets/widget.js").widget; +var Popup = require("$:/core/modules/utils/dom/popup.js"); + var DynannotateWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; @@ -191,7 +193,7 @@ DynannotateWidget.prototype.applyAnnotations = function() { "tv-selection-posy": (bounds.top).toString(), "tv-selection-width": (bounds.width).toString(), "tv-selection-height": (bounds.height).toString(), - "tv-selection-coords": "(" + bounds.left + "," + bounds.top + "," + bounds.width + "," + bounds.height + ")" + "tv-selection-coords": Popup.buildCoordinates(Popup.coordinatePrefix.csOffsetParent,bounds) }); if(self.hasAttribute("popup")) { $tw.popup.triggerPopup({ From fa4dc2a4e9da333a8806b60691c4eada637d004f Mon Sep 17 00:00:00 2001 From: Carlo Colombo <carlo.colombo@gmx.com> Date: Thu, 1 Dec 2022 22:26:08 +0100 Subject: [PATCH 116/937] Signing the CLA (#7074) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 0ad84a378..b1af82fcc 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -499,3 +499,5 @@ Keiichi Shiga (🎈 BALLOON | FU-SEN), @fu-sen. 2022/07/07 Nathaniel Knight, @nathanielknight, 2022/07/26 HuanCheng Bai, @bestony, 2022/09/17 + +Carlo Colombo, @carlo-colombo, 2022/11/30 From 45a7eb1c0368c9bc98503bd86dfe292c8aad7f0b Mon Sep 17 00:00:00 2001 From: Mohammad Rahmani <830394+kookma@users.noreply.github.com> Date: Sat, 3 Dec 2022 11:52:21 +0330 Subject: [PATCH 117/937] Add new focus attribute to $select widget (#7081) * Add focus attribute to $select widget This address https://github.com/Jermolene/TiddlyWiki5/issues/7070 * Update SelectWidget.tid Update the documentation for $select widget to include the new attribute: focus --- core/modules/widgets/select.js | 4 ++++ editions/tw5.com/tiddlers/widgets/SelectWidget.tid | 1 + 2 files changed, 5 insertions(+) diff --git a/core/modules/widgets/select.js b/core/modules/widgets/select.js index 8272a2783..cd789423f 100644 --- a/core/modules/widgets/select.js +++ b/core/modules/widgets/select.js @@ -42,6 +42,9 @@ SelectWidget.prototype.render = function(parent,nextSibling) { this.execute(); this.renderChildren(parent,nextSibling); this.setSelectValue(); + if(this.selectFocus == "yes") { + this.getSelectDomNode().focus(); + } $tw.utils.addEventListeners(this.getSelectDomNode(),[ {name: "change", handlerObject: this, handlerMethod: "handleChangeEvent"} ]); @@ -143,6 +146,7 @@ SelectWidget.prototype.execute = function() { this.selectMultiple = this.getAttribute("multiple", false); this.selectSize = this.getAttribute("size"); this.selectTooltip = this.getAttribute("tooltip"); + this.selectFocus = this.getAttribute("focus"); // Make the child widgets var selectNode = { type: "element", diff --git a/editions/tw5.com/tiddlers/widgets/SelectWidget.tid b/editions/tw5.com/tiddlers/widgets/SelectWidget.tid index d2acb49f9..b46f0359f 100644 --- a/editions/tw5.com/tiddlers/widgets/SelectWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/SelectWidget.tid @@ -40,6 +40,7 @@ The content of the `<$select>` widget should be one or more HTML `<option>` or ` |multiple |If present, switches to multiple selection mode | |size |The number of rows to display in multiple selection mode | |actions |A string containing ActionWidgets to be triggered when the key combination is detected | +|focus |<<.from-version "5.2.4">> Optional. Set to "yes" to automatically focus the HTML select element after creation | ! Examples From 451a3454b523ca6818fdb8ae6c40aa643a2f4726 Mon Sep 17 00:00:00 2001 From: lin onetwo <linonetwo012@gmail.com> Date: Sun, 4 Dec 2022 01:26:44 +0800 Subject: [PATCH 118/937] Optionally allow click outside to close modals (#7072) * feat: option to allow click on modalBackdrop to close modal * feat: allow switcher modals closable * feat: allow use caption field as modal title * refactor: make maskClosable a variable * fix: use "true" * fix: code style * docs: add description about maskClosable * fix: convention is to have double quotes for strings in the TW core * refactor: using a "mask-closable" field on the modal tiddlers instead of as a message parameter * docs: move to modal tid * Update WidgetMessage_ tm-modal.tid --- core/modules/utils/dom/modal.js | 6 ++++++ core/ui/SwitcherModal.tid | 1 + editions/tw5.com/tiddlers/features/Modals.tid | 3 +++ .../tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid | 6 ++++-- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/modules/utils/dom/modal.js b/core/modules/utils/dom/modal.js index 58fe34efe..1e620aa9a 100644 --- a/core/modules/utils/dom/modal.js +++ b/core/modules/utils/dom/modal.js @@ -26,6 +26,8 @@ Display a modal dialogue options: see below Options include: downloadLink: Text of a big download link to include + event: widget event + variables: from event.paramObject */ Modal.prototype.display = function(title,options) { options = options || {}; @@ -209,6 +211,10 @@ Modal.prototype.display = function(title,options) { headerWidgetNode.addEventListener("tm-close-tiddler",closeHandler,false); bodyWidgetNode.addEventListener("tm-close-tiddler",closeHandler,false); footerWidgetNode.addEventListener("tm-close-tiddler",closeHandler,false); + // Whether to close the modal dialog when the mask (area outside the modal) is clicked + if(tiddler.fields && (tiddler.fields["mask-closable"] === "yes" || tiddler.fields["mask-closable"] === "true")) { + modalBackdrop.addEventListener("click",closeHandler,false); + } // Set the initial styles for the message $tw.utils.setStyle(modalBackdrop,[ {opacity: "0"} diff --git a/core/ui/SwitcherModal.tid b/core/ui/SwitcherModal.tid index 3477f5778..320bbc363 100644 --- a/core/ui/SwitcherModal.tid +++ b/core/ui/SwitcherModal.tid @@ -1,6 +1,7 @@ title: $:/core/ui/SwitcherModal subtitle: <$text text={{{[<switch>lookup[$:/language/Switcher/Subtitle/]]}}}/> class: tc-modal-centered +mask-closable: yes <$tiddler tiddler={{{[<switch>lookup[$:/config/SwitcherTargets/]]}}}> diff --git a/editions/tw5.com/tiddlers/features/Modals.tid b/editions/tw5.com/tiddlers/features/Modals.tid index 56b596947..045822958 100644 --- a/editions/tw5.com/tiddlers/features/Modals.tid +++ b/editions/tw5.com/tiddlers/features/Modals.tid @@ -13,9 +13,12 @@ The tiddler to be displayed can contain the following optional fields that are u |subtitle|The subtitle text for a modal, displayed in a `h3` html tag| |class|An additional class to apply to the modal wrapper| |help|An optional external link that will be displayed at the left of the footer with the text "Help"| +|mask-closable|When set to ''yes'' or ''true'', will close the modal dialog when the mask (area outside the modal) is clicked| Note that the footer and subtitle fields are not limited to plain text, and wiki text features such as widgets and transclusions can be used as well. Modals are displayed with the [[WidgetMessage: tm-modal]]. <$button message="tm-modal" param="SampleWizard">Open demo modal</$button> + +<<.tip """<$macrocall $name=".from-version" version="5.2.4"/> allow using "mask-closable" field""">> diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid index b6db37eef..9a5d8ccd1 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid @@ -10,12 +10,14 @@ type: text/vnd.tiddlywiki |paramObject |Hashmap of variables to be provided to the modal, contains all extra parameters passed to the widget sending the message. | |rootwindow |<<.from-version 5.1.18>> ''yes'' or ''true'' will always display a modal in the wiki-root-window | -The "currentTiddler" variable is set to the title of the modal tiddler, but can be overridden by specifying a different value in `paramObject`. - The modal message is usually generated with the ButtonWidget. The modal message is handled by the TiddlyWiki core. [[Fields within the tiddler|Modals]] being displayed in the modal can be used to customize its appearance. +!! paramObject + +The "currentTiddler" variable is set to the title of the modal tiddler, but can be overridden by specifying a different value in `paramObject`. + ! Example Here is an example of displaying a modal and passing parameters to it: From 2c33502a4ac18043f66f2ae5ab3908ad7f52d835 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 3 Dec 2022 17:53:42 +0000 Subject: [PATCH 119/937] Exclude drafts from the advanced search filter dropdown Fixes #7083 --- core/ui/AdvancedSearch/FilterButtons/dropdown.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/ui/AdvancedSearch/FilterButtons/dropdown.tid b/core/ui/AdvancedSearch/FilterButtons/dropdown.tid index b1d400aeb..44878af77 100644 --- a/core/ui/AdvancedSearch/FilterButtons/dropdown.tid +++ b/core/ui/AdvancedSearch/FilterButtons/dropdown.tid @@ -14,7 +14,7 @@ tags: $:/tags/AdvancedSearch/FilterButton <$linkcatcher actions="<$action-setfield $tiddler='$:/temp/advancedsearch' text=<<navigateTo>>/><$action-setfield $tiddler='$:/temp/advancedsearch/input' text=<<navigateTo>>/><$action-setfield $tiddler='$:/temp/advancedsearch/refresh' text='yes'/><$action-sendmessage $message='tm-focus-selector' $param='.tc-advanced-search input' />"> <div class="tc-block-dropdown-wrapper"> <div class="tc-block-dropdown tc-edit-type-dropdown"> -<$list filter="[all[shadows+tiddlers]tag[$:/tags/Filter]]"> +<$list filter="[all[shadows+tiddlers]tag[$:/tags/Filter]!is[draft]]"> <$link to={{!!filter}}><$let tv-wikilinks="no"><$transclude field="description"/></$let></$link> </$list> </div> From a93a4996848578ec5625c2ce079804a7e15ff37b Mon Sep 17 00:00:00 2001 From: Carlo Colombo <carlo.colombo@gmx.com> Date: Sun, 4 Dec 2022 11:59:59 +0100 Subject: [PATCH 120/937] Add commands command to run commands returned from a filter (#7073) --- core/language/en-GB/Help/commands.tid | 14 +++++++++ core/modules/commands/commands.js | 43 +++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 core/language/en-GB/Help/commands.tid create mode 100644 core/modules/commands/commands.js diff --git a/core/language/en-GB/Help/commands.tid b/core/language/en-GB/Help/commands.tid new file mode 100644 index 000000000..1f2c01ffc --- /dev/null +++ b/core/language/en-GB/Help/commands.tid @@ -0,0 +1,14 @@ +title: $:/language/Help/commands +description: Run commands returned from a filter + +It runs sequentially the commands returned from the filter. + +``` +--commands <filter> +``` + +Examples + +`--commands "[enlist{$:/build-commands-as-text}]"` + +`--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]"` diff --git a/core/modules/commands/commands.js b/core/modules/commands/commands.js new file mode 100644 index 000000000..2842454f8 --- /dev/null +++ b/core/modules/commands/commands.js @@ -0,0 +1,43 @@ +/*\ +title: $:/core/modules/commands/commands.js +type: application/javascript +module-type: command + +Runs sequentially the commands returned from the filter. + +\*/ + +(function() { + + /*jslint node: true, browser: true */ + /*global $tw: false */ + "use strict"; + + exports.info = { + name: "commands", + synchronous: true + }; + + var Command = function(params, commander) { + this.params = params; + this.commander = commander; + }; + + Command.prototype.execute = function() { + // Parse the filter + var filter = this.params[0]; + if(!filter) { + return "No filter specified"; + } + var commands = this.commander.wiki.filterTiddlers(filter) + if(commands.length === 0) { + return "No tiddlers found for filter '" + filter + "'"; + } + + this.commander.addCommandTokens(commands); + return null; + }; + + exports.Command = Command; + +})(); From 0db987da600f261bb5f887698bf1dac6552084ab Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 11:03:51 +0000 Subject: [PATCH 121/937] Minor tweaks for #7073 --- core/language/en-GB/Help/commands.tid | 10 +++-- core/modules/commands/commands.js | 53 +++++++++++++-------------- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/core/language/en-GB/Help/commands.tid b/core/language/en-GB/Help/commands.tid index 1f2c01ffc..454159b44 100644 --- a/core/language/en-GB/Help/commands.tid +++ b/core/language/en-GB/Help/commands.tid @@ -1,7 +1,7 @@ title: $:/language/Help/commands description: Run commands returned from a filter -It runs sequentially the commands returned from the filter. +Sequentially run the command tokens returned from a filter ``` --commands <filter> @@ -9,6 +9,10 @@ It runs sequentially the commands returned from the filter. Examples -`--commands "[enlist{$:/build-commands-as-text}]"` +``` +--commands "[enlist{$:/build-commands-as-text}]" +``` -`--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]"` +``` +--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]" +``` diff --git a/core/modules/commands/commands.js b/core/modules/commands/commands.js index 2842454f8..813f19064 100644 --- a/core/modules/commands/commands.js +++ b/core/modules/commands/commands.js @@ -3,41 +3,40 @@ title: $:/core/modules/commands/commands.js type: application/javascript module-type: command -Runs sequentially the commands returned from the filter. +Runs the commands returned from a filter \*/ (function() { - /*jslint node: true, browser: true */ - /*global $tw: false */ - "use strict"; +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; - exports.info = { - name: "commands", - synchronous: true - }; +exports.info = { + name: "commands", + synchronous: true +}; - var Command = function(params, commander) { - this.params = params; - this.commander = commander; - }; +var Command = function(params, commander) { + this.params = params; + this.commander = commander; +}; - Command.prototype.execute = function() { - // Parse the filter - var filter = this.params[0]; - if(!filter) { - return "No filter specified"; - } - var commands = this.commander.wiki.filterTiddlers(filter) - if(commands.length === 0) { - return "No tiddlers found for filter '" + filter + "'"; - } +Command.prototype.execute = function() { + // Parse the filter + var filter = this.params[0]; + if(!filter) { + return "No filter specified"; + } + var commands = this.commander.wiki.filterTiddlers(filter) + if(commands.length === 0) { + return "No tiddlers found for filter '" + filter + "'"; + } + this.commander.addCommandTokens(commands); + return null; +}; - this.commander.addCommandTokens(commands); - return null; - }; - - exports.Command = Command; +exports.Command = Command; })(); From acc7224758903f22f5b2d5ba4f93e239b63bd4fe Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 11:19:54 +0000 Subject: [PATCH 122/937] Ensure unfold indicator is always visible Fixes #7084 --- core/ui/ViewTemplate/unfold.tid | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/ui/ViewTemplate/unfold.tid b/core/ui/ViewTemplate/unfold.tid index 68fc27117..9b09f71a4 100644 --- a/core/ui/ViewTemplate/unfold.tid +++ b/core/ui/ViewTemplate/unfold.tid @@ -2,17 +2,21 @@ title: $:/core/ui/ViewTemplate/unfold tags: $:/tags/ViewTemplate \whitespace trim -<$reveal tag="div" type="nomatch" state="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar" text="hide"> +<div class="tc-reveal"> +<$list filter="[{$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar}match[show]]" variable="ignore"> <$reveal tag="div" type="nomatch" stateTitle=<<folded-state>> text="hide" default="show" retain="yes" animate="yes"> <$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class="tc-fold-banner"> <$action-sendmessage $message="tm-fold-tiddler" $param=<<currentTiddler>> foldedState=<<folded-state>>/> {{$:/core/images/chevron-up}} </$button> </$reveal> +</$list> +<$list filter="[{$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar}match[show]] :else[<folded-state>get[text]match[hide]]" variable="ignore"> <$reveal tag="div" type="nomatch" stateTitle=<<folded-state>> text="show" default="show" retain="yes" animate="yes"> <$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class="tc-unfold-banner"> <$action-sendmessage $message="tm-fold-tiddler" $param=<<currentTiddler>> foldedState=<<folded-state>>/> {{$:/core/images/chevron-down}} </$button> </$reveal> -</$reveal> +</$list> +</div> \ No newline at end of file From 5b8f36a594d5cffe2f59aa57610b953b6c1634bf Mon Sep 17 00:00:00 2001 From: Bram Chen <bram.chen@gmail.com> Date: Sun, 4 Dec 2022 20:44:31 +0800 Subject: [PATCH 123/937] Add chinese help texts for commands command (#7085) --- languages/zh-Hans/Help/commands.tid | 18 ++++++++++++++++++ languages/zh-Hant/Help/commands.tid | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 languages/zh-Hans/Help/commands.tid create mode 100644 languages/zh-Hant/Help/commands.tid diff --git a/languages/zh-Hans/Help/commands.tid b/languages/zh-Hans/Help/commands.tid new file mode 100644 index 000000000..68f86f20c --- /dev/null +++ b/languages/zh-Hans/Help/commands.tid @@ -0,0 +1,18 @@ +title: $:/language/Help/commands +description: 运行从筛选器传回的命令 + +按顺序运行从筛选器传回的命令符记 + +``` +--commands <filter> +``` + +示例 + +``` +--commands "[enlist{$:/build-commands-as-text}]" +``` + +``` +--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]" +``` diff --git a/languages/zh-Hant/Help/commands.tid b/languages/zh-Hant/Help/commands.tid new file mode 100644 index 000000000..afeaa1e49 --- /dev/null +++ b/languages/zh-Hant/Help/commands.tid @@ -0,0 +1,18 @@ +title: $:/language/Help/commands +description: 執行從篩選器傳回的命令 + +按順序執行從篩選器傳回的命令符記 + +``` +--commands <filter> +``` + +範例 + +``` +--commands "[enlist{$:/build-commands-as-text}]" +``` + +``` +--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]" +``` From 90449c94586a581537cd6af9bed556a31a68ad3c Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 16:06:37 +0000 Subject: [PATCH 124/937] Fix modified data for "Installing TiddlyWiki on Node.js" --- .../tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid b/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid index 447975ffc..7f98e3b13 100644 --- a/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid +++ b/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid @@ -4,7 +4,7 @@ created: 20131219100608529 delivery: DIY description: Flexible hosting on your own machine or in the cloud method: sync -modified: 20221151230831173 +modified: 20221115230831173 tags: Saving [[TiddlyWiki on Node.js]] Windows Mac Linux title: Installing TiddlyWiki on Node.js type: text/vnd.tiddlywiki From 272ba6a4b7157b0e7f48ad76d1acb4497c0f0b95 Mon Sep 17 00:00:00 2001 From: lin onetwo <linonetwo012@gmail.com> Date: Mon, 5 Dec 2022 00:25:13 +0800 Subject: [PATCH 125/937] Add layout switcher page control button (#7076) * feat: add layout switcher page control button * feat: use icon from https://morosanuae.github.io/tw-icons/ $:/images/tabler-icons/layout * fix: trigger switcher * feat: beautify button icon * fix: caption * feat: group palette theme and layout buttons together * fix: review * fix: style issue --- core/images/layout-button.tid | 4 ++++ core/language/en-GB/Buttons.multids | 2 ++ core/ui/PageControls/layout.tid | 15 +++++++++++++++ core/wiki/tags/PageControls.tid | 2 +- themes/tiddlywiki/vanilla/base.tid | 4 ++++ 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100755 core/images/layout-button.tid create mode 100644 core/ui/PageControls/layout.tid diff --git a/core/images/layout-button.tid b/core/images/layout-button.tid new file mode 100755 index 000000000..19371cde1 --- /dev/null +++ b/core/images/layout-button.tid @@ -0,0 +1,4 @@ +title: $:/core/images/layout-button +tags: $:/tags/Image + +<svg width="22pt" height="22pt" class="tc-image-layout-button tc-image-button" viewBox="0 0 24 24" stroke-width="1" stroke="none"><path d="M0 0h24v24H0z" fill="none"/><rect x="2" y="2" width="7" height="7" rx="2"/><rect x="2" y="13" width="7" height="9" rx="2"/><rect x="12" y="2" width="10" height="20" rx="2"/></svg> \ No newline at end of file diff --git a/core/language/en-GB/Buttons.multids b/core/language/en-GB/Buttons.multids index 7cf1c9955..85a71ac08 100644 --- a/core/language/en-GB/Buttons.multids +++ b/core/language/en-GB/Buttons.multids @@ -59,6 +59,8 @@ Home/Caption: home Home/Hint: Open the default tiddlers Language/Caption: language Language/Hint: Choose the user interface language +LayoutSwitcher/Hint: Open layout switcher +LayoutSwitcher/Caption: layout Manager/Caption: tiddler manager Manager/Hint: Open tiddler manager More/Caption: more diff --git a/core/ui/PageControls/layout.tid b/core/ui/PageControls/layout.tid new file mode 100644 index 000000000..703bbcb1b --- /dev/null +++ b/core/ui/PageControls/layout.tid @@ -0,0 +1,15 @@ +title: $:/core/ui/Buttons/layout +tags: $:/tags/PageControls +caption: {{$:/core/images/layout-button}} {{$:/language/Buttons/LayoutSwitcher/Caption}} +description: {{$:/language/LayoutSwitcher/Description}} + +\whitespace trim +<$button tooltip={{$:/language/Buttons/LayoutSwitcher/Hint}} aria-label={{$:/language/Buttons/LayoutSwitcher/Caption}} class=<<tv-config-toolbar-class>>> +<$action-sendmessage $message="tm-show-switcher" switch="layout"/> +<$list filter="[<tv-config-toolbar-icons>match[yes]]"> +{{$:/core/images/layout-button}} +</$list> +<$list filter="[<tv-config-toolbar-text>match[yes]]"> +<span class="tc-btn-text"><$text text={{$:/language/Buttons/LayoutSwitcher/Caption}}/></span> +</$list> +</$button> diff --git a/core/wiki/tags/PageControls.tid b/core/wiki/tags/PageControls.tid index 4d5972827..c6234751c 100644 --- a/core/wiki/tags/PageControls.tid +++ b/core/wiki/tags/PageControls.tid @@ -1,2 +1,2 @@ title: $:/tags/PageControls -list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]] +list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/layout]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]] diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 6ff10e040..c323a6f19 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -1525,6 +1525,10 @@ html body.tc-body.tc-single-tiddler-window { fill: <<colour toolbar-done-button>>; } +.tc-page-controls svg.tc-image-layout-button { + fill: <<colour toolbar-options-button>>; +} + /* ** Tiddler edit mode */ From 62308792c84eb4996b452fe2dd1ad3baba5a51bc Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 16:26:52 +0000 Subject: [PATCH 126/937] Layout switcher page control button should be hidden by default --- .../tiddlers/system/PageControlButtonsVisibility.multids | 1 + 1 file changed, 1 insertion(+) diff --git a/editions/translators/tiddlers/system/PageControlButtonsVisibility.multids b/editions/translators/tiddlers/system/PageControlButtonsVisibility.multids index 65f2405ec..714479946 100644 --- a/editions/translators/tiddlers/system/PageControlButtonsVisibility.multids +++ b/editions/translators/tiddlers/system/PageControlButtonsVisibility.multids @@ -13,4 +13,5 @@ core/ui/Buttons/more-page-actions: show core/ui/Buttons/new-journal: hide core/ui/Buttons/permaview: hide core/ui/Buttons/storyview: hide +core/ui/Buttons/layout: hide core/ui/Buttons/theme: hide From 52fd6ce9c21b961a18bda3d5a40a116475d08baa Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 17:55:00 +0000 Subject: [PATCH 127/937] Remove creator field from docs tiddlers By convention we don't attribute authors to tiddlers on tiddlywiki.com --- .../community/plugins/_JD Mobile Layout plugin_ by JD.tid | 1 - .../tiddlers/community/resources/_Dropboard_ by Reid Gould.tid | 1 - .../tiddlers/community/resources/_Hacks_ by Thomas Elmiger.tid | 2 -- .../tiddlers/community/resources/_MathCell_ by Ste Wilson.tid | 1 - .../community/resources/_TiddlyServer_ by Matt Lauber.tid | 1 - .../resources/_X3DOM for TiddlyWiki 5_ by Jamal Wills.tid | 1 - 6 files changed, 7 deletions(-) diff --git a/editions/tw5.com/tiddlers/community/plugins/_JD Mobile Layout plugin_ by JD.tid b/editions/tw5.com/tiddlers/community/plugins/_JD Mobile Layout plugin_ by JD.tid index 6bd891b23..6c1593a09 100644 --- a/editions/tw5.com/tiddlers/community/plugins/_JD Mobile Layout plugin_ by JD.tid +++ b/editions/tw5.com/tiddlers/community/plugins/_JD Mobile Layout plugin_ by JD.tid @@ -1,5 +1,4 @@ created: 20171107181449175 -creator: Ste Willson modified: 20210106151027136 tags: [[Community Plugins]] title: "JD Mobile Layout plugin" by JD diff --git a/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid b/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid index 6f0eb3523..efda31cbe 100644 --- a/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid +++ b/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid @@ -1,5 +1,4 @@ created: 20171111192738730 -creator: MAS modified: 20210106151027013 tags: [[Other Resources]] title: "Dropboard" by Reid Gould diff --git a/editions/tw5.com/tiddlers/community/resources/_Hacks_ by Thomas Elmiger.tid b/editions/tw5.com/tiddlers/community/resources/_Hacks_ by Thomas Elmiger.tid index 8d9cb326b..dac485c6c 100644 --- a/editions/tw5.com/tiddlers/community/resources/_Hacks_ by Thomas Elmiger.tid +++ b/editions/tw5.com/tiddlers/community/resources/_Hacks_ by Thomas Elmiger.tid @@ -1,7 +1,5 @@ created: 20161226165024380 -creator: Thomas Elmiger modified: 20210106151027097 -modifier: Thomas Elmiger tags: [[Other Resources]] title: "Hacks" by Thomas Elmiger type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/community/resources/_MathCell_ by Ste Wilson.tid b/editions/tw5.com/tiddlers/community/resources/_MathCell_ by Ste Wilson.tid index 20957e433..d804f9052 100644 --- a/editions/tw5.com/tiddlers/community/resources/_MathCell_ by Ste Wilson.tid +++ b/editions/tw5.com/tiddlers/community/resources/_MathCell_ by Ste Wilson.tid @@ -1,5 +1,4 @@ created: 20161226165024380 -creator: Ste Willson modified: 20210106151027156 tags: [[Other Resources]] title: "MathCell" by Stephen Kimmel diff --git a/editions/tw5.com/tiddlers/community/resources/_TiddlyServer_ by Matt Lauber.tid b/editions/tw5.com/tiddlers/community/resources/_TiddlyServer_ by Matt Lauber.tid index 4b1e660c2..6a65fe825 100644 --- a/editions/tw5.com/tiddlers/community/resources/_TiddlyServer_ by Matt Lauber.tid +++ b/editions/tw5.com/tiddlers/community/resources/_TiddlyServer_ by Matt Lauber.tid @@ -1,5 +1,4 @@ created: 20161226165024380 -creator: Matt Lauber modified: 20211113230709926 tags: [[Other Resources]] title: "TiddlyServer" by Matt Lauber diff --git a/editions/tw5.com/tiddlers/community/resources/_X3DOM for TiddlyWiki 5_ by Jamal Wills.tid b/editions/tw5.com/tiddlers/community/resources/_X3DOM for TiddlyWiki 5_ by Jamal Wills.tid index 4df710ad4..c7e2790e2 100644 --- a/editions/tw5.com/tiddlers/community/resources/_X3DOM for TiddlyWiki 5_ by Jamal Wills.tid +++ b/editions/tw5.com/tiddlers/community/resources/_X3DOM for TiddlyWiki 5_ by Jamal Wills.tid @@ -1,5 +1,4 @@ created: 20171107175718679 -creator: Ste Willson modified: 20210106151027400 tags: [[Other Resources]] title: "X3DOM for TiddlyWiki 5" by Jamal Wills From 1eddb52de5ee4eac8a6c9bb5101ee70073f8bf2f Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 17:55:52 +0000 Subject: [PATCH 128/937] Remove obsolete HelloThere badges --- .../thumbnails/HelloThumbnail - Classic.tid | 6 ------ .../thumbnails/HelloThumbnail - Developers.tid | 7 ------- .../HelloThumbnail - Gentle Guide.tid | 11 ----------- .../HelloThumbnail - HelpingTiddlyWiki.tid | 7 ------- .../thumbnails/HelloThumbnail - TWEUM2017.tid | 8 -------- .../thumbnails/HelloThumbnail - TiddlyMap.tid | 6 ------ .../tw5.com/tiddlers/images/Dev Thumbnail.jpg | Bin 25020 -> 0 bytes .../tiddlers/images/Dev Thumbnail.jpg.meta | 3 --- editions/tw5.com/tiddlers/images/TiddlyMap.png | Bin 20854 -> 0 bytes .../tw5.com/tiddlers/images/TiddlyMap.png.meta | 3 --- 10 files changed, 51 deletions(-) delete mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Classic.tid delete mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Developers.tid delete mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Gentle Guide.tid delete mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - HelpingTiddlyWiki.tid delete mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TWEUM2017.tid delete mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyMap.tid delete mode 100644 editions/tw5.com/tiddlers/images/Dev Thumbnail.jpg delete mode 100644 editions/tw5.com/tiddlers/images/Dev Thumbnail.jpg.meta delete mode 100644 editions/tw5.com/tiddlers/images/TiddlyMap.png delete mode 100644 editions/tw5.com/tiddlers/images/TiddlyMap.png.meta diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Classic.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Classic.tid deleted file mode 100644 index ec4af8412..000000000 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Classic.tid +++ /dev/null @@ -1,6 +0,0 @@ -title: HelloThumbnail - Classic -tags: HelloThumbnail -color: #D5B7EA -image: TiddlyWiki Classic.png -caption: ~TiddlyWiki Classic -link: TiddlyWikiClassic diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Developers.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Developers.tid deleted file mode 100644 index 141c8c90f..000000000 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Developers.tid +++ /dev/null @@ -1,7 +0,0 @@ -title: HelloThumbnail - Developers -tags: HelloThumbnail -color: #6B6E98 -background-color: #EAE57D -image: Dev Thumbnail.jpg -caption: Developers -link: Developers diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Gentle Guide.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Gentle Guide.tid deleted file mode 100644 index 9dda9420f..000000000 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Gentle Guide.tid +++ /dev/null @@ -1,11 +0,0 @@ -background-color: #EDB431 -caption: A Gentle Guide -color: #fff -created: 20150325172634195 -image: Motovun Jack.jpg -link: A Gentle Guide to TiddlyWiki -modified: 20150414071032492 -tags: HelloThumbnail -title: HelloThumbnail - Gentle Guide -type: text/vnd.tiddlywiki - diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - HelpingTiddlyWiki.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - HelpingTiddlyWiki.tid deleted file mode 100644 index 46f477bca..000000000 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - HelpingTiddlyWiki.tid +++ /dev/null @@ -1,7 +0,0 @@ -title: HelloThumbnail - HelpingTiddlyWiki -tags: HelloThumbnail -color: #B7D5EA -background-color: #fff -caption: Helping ~TiddlyWiki -link: HelpingTiddlyWiki -image: Tiddler Poster.png diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TWEUM2017.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TWEUM2017.tid deleted file mode 100644 index 658ada797..000000000 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TWEUM2017.tid +++ /dev/null @@ -1,8 +0,0 @@ -title: HelloThumbnail - TWEUM2017 -tags: HelloThumbnail-disabled -color: #fff -background-color: #000 -icon: <span style="font-size:3.5em;font-weight:bold;text-shadow:1px 1px 3px rgba(0,0,0,1);">2017</span> -image: TWEUM Thumbnail.jpg -caption: European Meetup 2017 -link: TiddlyWiki European Meetup 2017 diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyMap.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyMap.tid deleted file mode 100644 index 26feee0d9..000000000 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyMap.tid +++ /dev/null @@ -1,6 +0,0 @@ -title: HelloThumbnail - TiddlyMap -tags: HelloThumbnail -color: #D5B7EA -image: TiddlyMap.png -caption: ~TiddlyMap Plugin -link: TiddlyMap Plugin by Felix Küppers diff --git a/editions/tw5.com/tiddlers/images/Dev Thumbnail.jpg b/editions/tw5.com/tiddlers/images/Dev Thumbnail.jpg deleted file mode 100644 index 1a26d1aeea1fc07b95f8802771060aa85b2acbb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25020 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ΞZP#(%uia>kCUh%+Raj0w5y+{>B^d&%8LaR8-x&=3%-*g?Bwq3_)VC~o!~}rf zk_XH&Aalyk(8mg(^xvHq?%;nnQNVvTQRYVDj7UZ#=UC8d0CP5I0CSrrP-)Ao%Ee&h zn-TZZ^rYY?hJqtW2|#BtGr9}i6%D+23;bN1bW{8J5`#Q6fLfs?8N~`Py(kZrC`=!r z)1LoNDpUTdbN!AY*BXBUe?Lus4Ta{32hVZt4&;-LEH?s@4jaI|2Z}CvmO1R8dFN`- zi)34!)lC!lF(3=~AnTx4jqO0~)l3(7OR4NA&YqrNU%;LhdZ%AE;S>3>z@XBhfk*x| z`+3@0{?N=L&dg4cM9`!2vFcZP+|NcAL<PZVw$<!@G`)+QNAdI$0_1y5^mfS;&Bg8< zpbbrM3X$LBL|}teDDADT)m)a=sSNKH&uZUK9WrrkTErA!bJagS{k?J!l2kmQEbT2< zoCEcU-9hB;in>}QV=AW?nL-M=%jQNX??jIQujy~N9I%cpgSWum&XkpqV?g~xZTu)z z??H|zEaatuz<SXW<>^!%xiXCjU1>nz;$8-SYM}a*u7`(T>CBBXJ4ss^j1jNrRf5gu zr|CTu(L8K_Il_7G7%+-o*~f3ccrfbM{>`qTQKT-0tg(`Ni8p7I+A1qs(DYlLO?c?g zL{`_aBj|&OR*EirLen#{s$k=7%|U6bNS%x*>WzL#8-JENHa*N=UJ87HUie7KK8jz( zZ@au=tKGi{$FB@*(5YxAWL=T|cE;szc6aW|SHs+*nkmfdGSwZ_1?76_i{EHBaOk5j z`oOVfr>9Wsj)qM71P$H=xlQK$kcH<y&4|A`%**@58LSGDTxkvvt6Z53K5%S@oqICZ zoZ>6gjAJCL&IZPLJ>|=0HRkob7G^aYMKkmR9s{QAM~=8nH<PGg*N+}^9sws_t0i+@ zQRaRzMx2>$G=YWnx3`F>X4GZ{`&oC9SonXBJT!WOSc4fLiT3ud2qm58Zk*<&irfZs zK$VUGdxzuTRUSB%Sl=E-FMl?Dql~3_Z+pAoa~)%e@Y|Gve2dT_-BB*%biof2NNSQ` zY>&S@L%+;K&|c86jp=9ji-(%cjGaAi`bFXF@9(`cbSsP##&j^M2Z>s(IPddT<5$mL zr==vK&qf@H(7Kww_5a+xvhKE={U#It)<@CSsT<~tQoP8g;^|nHnBk{ka$i<e;34SA zRheyy?Oeb6$^LX3jgm}M)?Bvx;Q9Q5C3)3yW$@nCBz{$neo@i@vv}_u5w()gM@wlg z-DRr7ZZseE?T@o-TfF<W0a`TGde>-dEHMn4*P%546&=w3NJ$@0iOgHjl?eT#u7W1p z|2ABI`fIr6n~A%ry~d1ZT8``x_Zc;M0Dg}JaB*aC{wfIK0yHG0X5fz=7#0FTir>m@ kT2k+J$SXq3H_TpsI<Z}L2ikWqjsX^Bj9J-UjXIwG7aoS#mjD0& diff --git a/editions/tw5.com/tiddlers/images/Dev Thumbnail.jpg.meta b/editions/tw5.com/tiddlers/images/Dev Thumbnail.jpg.meta deleted file mode 100644 index b52891518..000000000 --- a/editions/tw5.com/tiddlers/images/Dev Thumbnail.jpg.meta +++ /dev/null @@ -1,3 +0,0 @@ -title: Dev Thumbnail.jpg -type: image/jpeg -tags: picture diff --git a/editions/tw5.com/tiddlers/images/TiddlyMap.png b/editions/tw5.com/tiddlers/images/TiddlyMap.png deleted file mode 100644 index bed2ab3455cd09d6c85811bd0982fd2523312200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20854 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 JPDHLkV1k#SiaG!Q diff --git a/editions/tw5.com/tiddlers/images/TiddlyMap.png.meta b/editions/tw5.com/tiddlers/images/TiddlyMap.png.meta deleted file mode 100644 index 986f25906..000000000 --- a/editions/tw5.com/tiddlers/images/TiddlyMap.png.meta +++ /dev/null @@ -1,3 +0,0 @@ -title: TiddlyMap.png -type: image/png -tags: picture From 1ab9f457b4cafc645a7dfab369c7455be3b468c0 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 17:57:18 +0000 Subject: [PATCH 129/937] Fix description of emergency tiddler expert Confusing that it was using the same wording as the HTML5 fallback saver --- editions/tw5.com/tiddlers/saving/Emergency Tiddler Export.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/saving/Emergency Tiddler Export.tid b/editions/tw5.com/tiddlers/saving/Emergency Tiddler Export.tid index 59a1f4484..92b78788b 100644 --- a/editions/tw5.com/tiddlers/saving/Emergency Tiddler Export.tid +++ b/editions/tw5.com/tiddlers/saving/Emergency Tiddler Export.tid @@ -2,7 +2,7 @@ caption: Emergency Export color: #7986CB created: 20180309211328412 delivery: Saver -description: Awkward but useful emergency technique for saving tiddlers +description: Retrieve and save tiddlers when saving is broken method: save modified: 20200507202809334 tags: Android Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows Edge From 38dce175d6d2ad3ade86a61aeb97b3b17a2988ac Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 17:58:16 +0000 Subject: [PATCH 130/937] Add Funding and Marketplace material, and refresh HelloThere --- .../_tw_shared/favicons/markplace.png | Bin 0 -> 17703 bytes .../_tw_shared/favicons/markplace.png.meta | 3 + .../tiddlers/_tw_shared/sites/marketplace.tid | 6 + .../_tw_shared/tags-TiddlyWikiSites.tid | 2 +- .../tiddlers/about/Funding TiddlyWiki.tid | 19 ++ .../tiddlers/about/Open Collective.tid | 14 ++ .../tiddlers/definitions/Federatial.tid | 14 +- .../definitions/TiddlyWikiClassic.tid | 4 +- .../tiddlers/hellothere/HelloThere.tid | 44 ++--- .../tiddlers/hellothere/HelloThumbnail.tid | 2 +- .../thumbnails/HelloThumbnail - Funding.tid | 10 + .../HelloThumbnail - Grok TiddlyWiki.tid | 2 + .../HelloThumbnail - Introduction Video.tid | 2 + .../HelloThumbnail - Latest Version.tid | 4 +- .../HelloThumbnail - Marketplace.tid | 10 + .../HelloThumbnail - TiddlyWikiLinks.tid | 4 +- .../HelloThumbnail_-_Federatial.tid | 11 ++ .../tw5.com/tiddlers/images/Federatial.png | Bin 0 -> 225053 bytes .../tiddlers/images/Federatial.png.meta | 3 + editions/tw5.com/tiddlers/images/Funding.png | Bin 0 -> 188284 bytes .../tw5.com/tiddlers/images/Funding.png.meta | 3 + .../tiddlers/images/Marketplace Banner.png | Bin 0 -> 90753 bytes .../images/Marketplace Banner.png.meta | 3 + .../marketplace/TiddlyWiki Marketplace.tid | 18 ++ .../tiddlers/saving/Saving with Polly.tid | 1 + editions/tw5.com/tiddlers/saving/Saving.tid | 2 +- ...Bucket - Save to AWS or Google Storage.tid | 1 + .../tiddlers/system/tw5.com-card-template.tid | 17 +- .../tiddlers/system/tw5.com-styles.tid | 187 ++++++++++++++---- .../tiddlers/system/wikitext-macros.tid | 35 ++++ .../Testimonials - Joe Armstrong.tid | 8 + .../Testimonials - Network World.tid | 8 + .../Testimonials - Product Hunt.tid | 6 + 33 files changed, 363 insertions(+), 80 deletions(-) create mode 100644 editions/tw5.com/tiddlers/_tw_shared/favicons/markplace.png create mode 100644 editions/tw5.com/tiddlers/_tw_shared/favicons/markplace.png.meta create mode 100644 editions/tw5.com/tiddlers/_tw_shared/sites/marketplace.tid create mode 100644 editions/tw5.com/tiddlers/about/Funding TiddlyWiki.tid create mode 100644 editions/tw5.com/tiddlers/about/Open Collective.tid create mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Funding.tid create mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Marketplace.tid create mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail_-_Federatial.tid create mode 100644 editions/tw5.com/tiddlers/images/Federatial.png create mode 100644 editions/tw5.com/tiddlers/images/Federatial.png.meta create mode 100644 editions/tw5.com/tiddlers/images/Funding.png create mode 100644 editions/tw5.com/tiddlers/images/Funding.png.meta create mode 100644 editions/tw5.com/tiddlers/images/Marketplace Banner.png create mode 100644 editions/tw5.com/tiddlers/images/Marketplace Banner.png.meta create mode 100644 editions/tw5.com/tiddlers/marketplace/TiddlyWiki Marketplace.tid create mode 100644 editions/tw5.com/tiddlers/testimonials/Testimonials - Joe Armstrong.tid create mode 100644 editions/tw5.com/tiddlers/testimonials/Testimonials - Network World.tid create mode 100644 editions/tw5.com/tiddlers/testimonials/Testimonials - Product Hunt.tid diff --git a/editions/tw5.com/tiddlers/_tw_shared/favicons/markplace.png b/editions/tw5.com/tiddlers/_tw_shared/favicons/markplace.png new file mode 100644 index 0000000000000000000000000000000000000000..8819475067136fca89937aff44bcb9d195a410f0 GIT binary patch literal 17703 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 literal 0 HcmV?d00001 diff --git a/editions/tw5.com/tiddlers/_tw_shared/favicons/markplace.png.meta b/editions/tw5.com/tiddlers/_tw_shared/favicons/markplace.png.meta new file mode 100644 index 000000000..aa3f9d11a --- /dev/null +++ b/editions/tw5.com/tiddlers/_tw_shared/favicons/markplace.png.meta @@ -0,0 +1,3 @@ +title: $:/_tw_shared/favicons/marketplace +type: image/png +tags: TiddlyWikiSitesMenu diff --git a/editions/tw5.com/tiddlers/_tw_shared/sites/marketplace.tid b/editions/tw5.com/tiddlers/_tw_shared/sites/marketplace.tid new file mode 100644 index 000000000..53b14585d --- /dev/null +++ b/editions/tw5.com/tiddlers/_tw_shared/sites/marketplace.tid @@ -0,0 +1,6 @@ +title: $:/_tw_shared/sites/marketplace +tags: $:/tags/TiddlyWikiSites TiddlyWikiSitesMenu +caption: marketplace +description: Commercial Products and Services +url: https://talk.tiddlywiki.org/c/marketplace/22 +icon: $:/_tw_shared/favicons/marketplace diff --git a/editions/tw5.com/tiddlers/_tw_shared/tags-TiddlyWikiSites.tid b/editions/tw5.com/tiddlers/_tw_shared/tags-TiddlyWikiSites.tid index 0dadeb2e3..00e567510 100644 --- a/editions/tw5.com/tiddlers/_tw_shared/tags-TiddlyWikiSites.tid +++ b/editions/tw5.com/tiddlers/_tw_shared/tags-TiddlyWikiSites.tid @@ -1,3 +1,3 @@ title: $:/tags/TiddlyWikiSites -list: $:/_tw_shared/sites/tiddlywiki.com $:/_tw_shared/sites/tiddlywiki.org $:/_tw_shared/sites/talk.tiddlywiki.org $:/_tw_shared/sites/links.tiddlywiki.org $:/_tw_shared/sites/tiddlywiki.com.upgrade $:/_tw_shared/sites/tiddlywiki.com.dev $:/_tw_shared/sites/tiddlywiki.com.prerelease $:/_tw_shared/sites/classic.tiddlywiki.com +list: $:/_tw_shared/sites/tiddlywiki.com $:/_tw_shared/sites/tiddlywiki.org $:/_tw_shared/sites/talk.tiddlywiki.org $:/_tw_shared/sites/links.tiddlywiki.org $:/_tw_shared/sites/tiddlywiki.com.upgrade $:/_tw_shared/sites/tiddlywiki.com.dev $:/_tw_shared/sites/tiddlywiki.com.prerelease $:/_tw_shared/sites/classic.tiddlywiki.com $:/_tw_shared/sites/marketplace tags: TiddlyWikiSitesMenu diff --git a/editions/tw5.com/tiddlers/about/Funding TiddlyWiki.tid b/editions/tw5.com/tiddlers/about/Funding TiddlyWiki.tid new file mode 100644 index 000000000..938631d55 --- /dev/null +++ b/editions/tw5.com/tiddlers/about/Funding TiddlyWiki.tid @@ -0,0 +1,19 @@ +title: Funding TiddlyWiki +tags: About HelloThere +modified: 20221204165636777 +created: 20221204165636777 + +TiddlyWiki is more useful to everybody if it is free to use, with no financial barriers to long term adoption. It is not altruism; we believe that removing or reducing barriers to adoption will help to ensure TiddlyWiki's future by making the community larger and stronger. + +Nonetheless, TiddlyWiki is a relatively big, complex machine that requires a significant amount of ongoing work to maintain and improve. Some community infrastructure also requires monthly fees to operate (notably the [[TiddlyWiki forum|Forums]]). + +The people in the community that do the work have widely varying needs: + +* At one end, a good proportion of the work on TiddlyWiki is performed by community members on a purely voluntary basis. For those people, the satisfaction of helping others is sufficient reward. Indeed, for many people, unpaid voluntary activities are a satisfying antidote to everyday paid work +* At the other extreme, JeremyRuston and some other contributors are trying to make a full-time living working on TiddlyWiki by offering commercial products and services around it +* In between, there are other people who would appreciate an ocassional token to reward them for their work + +To support these needs in the community, we have two initiatives: + +* We use [[Open Collective]] to collect donations for the infrastructure costs of the Community and to crowdfund specific developments by individuals or organisations +* The [[TiddlyWiki Marketplace]] provides a shop window for individuals and organisations offering commercial products and services diff --git a/editions/tw5.com/tiddlers/about/Open Collective.tid b/editions/tw5.com/tiddlers/about/Open Collective.tid new file mode 100644 index 000000000..8d096cdc8 --- /dev/null +++ b/editions/tw5.com/tiddlers/about/Open Collective.tid @@ -0,0 +1,14 @@ +title: Open Collective +modified: 20221204165636777 +created: 20221204165636777 +tags: About HelloThere [[Open Collective]] + +Open Collective is a platform for transparent fundraising and expenses for projects like TiddlyWiki. It is the official TiddlyWiki community fundraising space. + +https://opencollective.com/tiddlywikidotorg + +You can make a fixed one-time donation, or setup a recurring contribution. + +The main goals listed for donations are to cover basic costs for community infrastructure like the Discourse forum, and a new goal for supporting the TiddlyWiki Core. + +Additionally, the community can make use of the platform for special projects - to pool funds to pay for development, design, or anything else. The [[File Upload Plugin|https://opencollective.com/tiddlywikidotorg/projects/tiddlywiki-file-upload]] is the first of these, and we want to welcome others to launch projects here. diff --git a/editions/tw5.com/tiddlers/definitions/Federatial.tid b/editions/tw5.com/tiddlers/definitions/Federatial.tid index b2ebdf83b..ce256709d 100644 --- a/editions/tw5.com/tiddlers/definitions/Federatial.tid +++ b/editions/tw5.com/tiddlers/definitions/Federatial.tid @@ -1,9 +1,21 @@ created: 20130825154900000 modified: 20170718160846820 +modified: 20221204165636777 tags: Definitions title: Federatial type: text/vnd.tiddlywiki -Federatial Limited is a software consultancy founded by JeremyRuston, the creator of TiddlyWiki. Federatial helps organisations explore new user interaction concepts through rapid prototyping of sophisticated web-based tools. +Federatial Limited helps organisations explore new user interaction concepts through rapid prototyping of sophisticated web-based tools. Services include: + +* Consultancy advice on TiddlyWiki adoption +* Development of custom solutions based on TiddlyWiki +* Multi-user TiddlyWiki hosting – no outages since 2016 +* Sponsorship of TiddlyWiki core development See https://federatial.com/ and https://twitter.com/federatial for more information. + +JeremyRuston founded Federatial Limited in 2011 to support his work on TiddlyWiki for the advertised 25 years. Since then, Federatial has been privileged to have worked with a wide range of fantastic clients in very different sectors, on some very diverse projects: + +* For a law firm in the Washington DC, developing a custom multi-user ~TiddlyWiki application. It replaced a Microsoft Word document hosted on ~SharePoint that had grown to 18,000 pages and 10 million words, and was increasingly unwieldy to manage. We converted the document to a non-linear TiddlyWiki structure. Startup, searching and browsing are an order of magnitude faster than using Word and ~SharePoint +* For a publishing firm in Paris, devising a new TiddlyWiki-based format for interactive electronic publications (including conversion from the established EPUB format). See https://twpub-tools.org/ +* For a charity in London, maintaining a multiuser instance of TiddlyWiki running on Amazon's serverless infrastructure. It has more than 1,000 users, and over 15,000 tiddlers in 500 interlinked wikis. See https://manuals.annafreud.org/ambit diff --git a/editions/tw5.com/tiddlers/definitions/TiddlyWikiClassic.tid b/editions/tw5.com/tiddlers/definitions/TiddlyWikiClassic.tid index 583abf9bc..7af89352c 100644 --- a/editions/tw5.com/tiddlers/definitions/TiddlyWikiClassic.tid +++ b/editions/tw5.com/tiddlers/definitions/TiddlyWikiClassic.tid @@ -4,6 +4,8 @@ tags: Definitions title: TiddlyWikiClassic type: text/vnd.tiddlywiki -"~TiddlyWiki Classic" refers to versions prior to 5.0, before TiddlyWiki was completely rewritten from the ground up. TiddlyWiki Classic is still being maintained at: +[img[TiddlyWiki Classic.png]] + +"~TiddlyWiki Classic" refers to versions prior to 5.0, before TiddlyWiki was completely rewritten. TiddlyWiki Classic is still actively maintained at: https://classic.tiddlywiki.com/ diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index 25b5856eb..dec5d87b4 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -1,33 +1,37 @@ created: 20130822170200000 list: [[A Gentle Guide to TiddlyWiki]] [[Discover TiddlyWiki]] [[Some of the things you can do with TiddlyWiki]] [[Ten reasons to switch to TiddlyWiki]] Examples [[What happened to the original TiddlyWiki?]] -modified: 20220802122551819 +modified: 20221204165636777 tags: TableOfContents title: HelloThere type: text/vnd.tiddlywiki -''Have you ever had the feeling that your head is not quite big enough to hold everything you need to remember?'' - -Welcome to TiddlyWiki, a unique [[non-linear|Philosophy of Tiddlers]] notebook for [[capturing|Creating and editing tiddlers]], [[organising|Structuring TiddlyWiki]] and [[sharing|Sharing your tiddlers with others]] complex information. +!! ''Welcome to TiddlyWiki, a unique [[non-linear|Philosophy of Tiddlers]] notebook for [[capturing|Creating and editing tiddlers]], [[organising|Structuring TiddlyWiki]] and [[sharing|Sharing your tiddlers with others]] complex information'' Use it to keep your [[to-do list|TaskManagementExample]], to plan an [[essay or novel|"TiddlyWiki for Scholars" by Alberto Molina]], or to organise your wedding. Record every thought that crosses your brain, or build a flexible and responsive website. -<div style="font-size:0.7em;text-align:center;margin-top:2em;margin-bottom:2em;"> -<<list-thumbnails filter:"[tag[HelloThumbnail]]" width:"168" height:"95">> -</div> - Unlike conventional online services, TiddlyWiki lets you choose where to keep your data, guaranteeing that in the decades to come you will [[still be able to use|Future Proof]] the notes you take today. -<div style="font-size:0.7em;text-align:center;margin:3em auto;"> +!! ''Find Out More'' + +<div class="tc-cards"> +<$list filter="[tag[HelloThumbnail]]"> +<$macrocall $name="flex-card" captionField="caption" descriptionField="text"/> +</$list> +</div> + +!! ''~TiddlyWiki Hubs'' + +<div class="tc-cards" style="font-size:0.7em;text-align:center;margin:3em auto;"> <a href="https://talk.tiddlywiki.org/" class="tc-btn-big-green" style="border-radius:4px;background-color:#FF8C19;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/help}} ~TalkTW </a> <a href="https://www.youtube.com/c/JeremyRuston" class="tc-btn-big-green" style="border-radius:4px;background-color:#e52d27;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/video}} ~YouTube </a> -<a href="https://twitter.com/TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#5E9FCA;" target="_blank" rel="noopener noreferrer"> +<a href="https://twitter.com/TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#1DA1F2;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/twitter}} Twitter </a> -<a rel="me" href="https://fosstodon.org/@TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#5E9FCA;" target="_blank" rel="noopener noreferrer"> +<a rel="me" href="https://fosstodon.org/@TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#2b90d9;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/globe}} Mastodon </a> <a href="https://github.com/Jermolene/TiddlyWiki5" class="tc-btn-big-green" style="border-radius:4px;background-color:#444;" target="_blank" rel="noopener noreferrer"> @@ -38,16 +42,10 @@ Unlike conventional online services, TiddlyWiki lets you choose where to keep yo </a> </div> -<<<.tc-big-quote -''The ~TiddlyWiki is the best software I've ever found for organising my ideas.'' +!! ''Testimonials & Reviews'' -It's well worth spending an hour or so playing with it to see how it can help you. This will be time well-spent and will change how you think and how you organise your ideas. -<<< [[Joe Armstrong, Co-inventor of Erlang|https://joearms.github.io/]] - -<<<.tc-big-quote -''~TiddlyWiki gets a Gearhead rating of 6 out of 5 (it's that good).'' - -Finding code that works flawlessly after just two or three years is magical enough but after seven years?! -<<< [[Mark Gibbs, Network World|http://www.networkworld.com/article/3028098/open-source-tools/tiddlywiki-a-free-open-source-wiki-revisited.html]] - -<div style="font-size:0.7em;text-align:center;margin:3em auto;">{{Product Hunt Link}}</div> +<div class="tc-cards"> +<$list filter="[tag[Testimonial]]"> +<$macrocall $name="flex-card" class="tc-card-quote" captionField="caption" descriptionField="text"/> +</$list> +</div> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid b/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid index f50bccca6..cd304e703 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid @@ -1,5 +1,5 @@ created: 20150414070451144 -list: [[HelloThumbnail - Introduction Video]] [[HelloThumbnail - Gentle Guide]] [[HelloThumbnail - Grok TiddlyWiki]] [[HelloThumbnail - Firefox Apocalypse]] [[HelloThumbnail - Latest Version]] [[HelloThumbnail - TiddlyWikiLinks]] [[HelloThumbnail - TiddlyMap]] [[HelloThumbnail - HelpingTiddlyWiki]] [[HelloThumbnail - Developers]] [[HelloThumbnail - Classic]] +list: [[HelloThumbnail - Introduction Video]] [[HelloThumbnail - Grok TiddlyWiki]] [[HelloThumbnail - Latest Version]] [[HelloThumbnail - TiddlyWikiLinks]] [[HelloThumbnail - Developers]] [[HelloThumbnail - Funding]] [[HelloThumbnail - Marketplace]] [[HelloThumbnail - Federatial]] modified: 20150414070948246 title: HelloThumbnail type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Funding.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Funding.tid new file mode 100644 index 000000000..bc48ec0c0 --- /dev/null +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Funding.tid @@ -0,0 +1,10 @@ +background-color: #EDB431 +caption: How is ~TiddlyWiki Funded? +color: #ff0 +image: Funding.png +link: Funding TiddlyWiki +tags: HelloThumbnail +title: HelloThumbnail - Funding +ribbon-text: NEW + +Find out how you can help support ~TiddlyWiki financially \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid index a8cb2d5be..f076ced60 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid @@ -4,3 +4,5 @@ color: #D5B7EA image: Grok TiddlyWiki Banner caption: Grok ~TiddlyWiki link: "Grok TiddlyWiki" by Soren Bjornstad + +A guided tutorial through ~TiddlyWiki \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Introduction Video.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Introduction Video.tid index 15ce2b073..aa34f87b5 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Introduction Video.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Introduction Video.tid @@ -6,3 +6,5 @@ icon: {{$:/core/images/video}} caption: Introduction to ~TiddlyWiki link: Introduction Video image: Introduction Video Thumbnail.jpg + +Short video introducing basic ~TiddlyWiki concepts \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Latest Version.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Latest Version.tid index 32498bfc4..5ed5eb0cf 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Latest Version.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Latest Version.tid @@ -1,6 +1,8 @@ title: HelloThumbnail - Latest Version tags: HelloThumbnail -caption: What's New in <<version>> +caption: What's New in v<<version>> link: Releases image: New Release Banner color: #fff + +The latest version v<<version>> of ~TiddlyWiki (released on <$view field="released" tiddler={{{ [<version>addprefix[Release ]] }}} format="date" template="DDth MMM YYYY"/>) \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Marketplace.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Marketplace.tid new file mode 100644 index 000000000..39a72569c --- /dev/null +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Marketplace.tid @@ -0,0 +1,10 @@ +title: HelloThumbnail - Marketplace +tags: HelloThumbnail +color: #6B6E98 +background-color: #EAE57D +image: TiddlyWiki Marketplace Banner +caption: ~TiddlyWiki Marketplace +link: TiddlyWiki Marketplace +ribbon-text: NEW + +Explore commercial products and services for ~TiddlyWiki \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyWikiLinks.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyWikiLinks.tid index a5b3e44ad..221a3ae10 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyWikiLinks.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyWikiLinks.tid @@ -2,5 +2,7 @@ title: HelloThumbnail - TiddlyWikiLinks tags: HelloThumbnail color: #D5B7EA image: TiddlyWikiLinks -caption: links.tiddlywiki.com +caption: links.tiddlywiki.org link: Community Links Aggregator + +Links to ~TiddlyWiki-related content collected by the community \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail_-_Federatial.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail_-_Federatial.tid new file mode 100644 index 000000000..9d76619a7 --- /dev/null +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail_-_Federatial.tid @@ -0,0 +1,11 @@ +background-color: #EDB431 +caption: Federatial +color: #ff0 +image: Federatial.png +link: Federatial +tags: HelloThumbnail +title: HelloThumbnail - Federatial +type: text/vnd.tiddlywiki +ribbon-text: NEW + +Support the development of ~TiddlyWiki by hiring Jeremy Ruston through Federatial Limited \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/images/Federatial.png b/editions/tw5.com/tiddlers/images/Federatial.png new file mode 100644 index 0000000000000000000000000000000000000000..3adde3a11dd6cb0e6b6df57b53414b2ef54e8e69 GIT binary patch literal 225053 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%0D!l#e1Nf@&6254C56e>TX5Yn5EH}5I2%N*) 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,AJAnExGeZxoR<3ZARoWy1t_a8% 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 literal 0 HcmV?d00001 diff --git a/editions/tw5.com/tiddlers/images/Federatial.png.meta b/editions/tw5.com/tiddlers/images/Federatial.png.meta new file mode 100644 index 000000000..528629786 --- /dev/null +++ b/editions/tw5.com/tiddlers/images/Federatial.png.meta @@ -0,0 +1,3 @@ +title: Federatial.png +type: image/png +tags: picture diff --git a/editions/tw5.com/tiddlers/images/Funding.png b/editions/tw5.com/tiddlers/images/Funding.png new file mode 100644 index 0000000000000000000000000000000000000000..b55be844187a8db8ddad0178ded39a8f11421ecb GIT binary patch literal 188284 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%0AH%doXAC&A3A$`;hbj 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ⅅ;Z!*e#F1v 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%0D-y#>&SB0&SW|OMolYlKv6!jH#M4p` z8+jTmpOdj&Pxr51eDd|je{y>J^^0#mA8Q#FSUgm>P9F89&D)SEyJK`cEfv+$FxhH1 zu?z;ge{6|$C7tRNxiM48!jF^emkNcg1=D3`^61M|{Zvz_g_+RGyB@0O#O5rvVDCiB z_ym-11XM}y8H}K+ZNmJteG|+@*MDvIIR?YJZeVPi)eB&OAu#BYGd7Ol2QzvYMMtw$ zA=MJXdJ5=-Ss<_qzG~KKX(i<0Bbl&UIdf%d?sMf@bFI1dnft!ho^y9Iskpl|SJfQT z5XOt2{MqruJ07?y77u2)p^!hXH)_8Jc3K@!q0g5ss%q;fTs4&gdIKGE$Yj>eJQM%} z%wnn^r{~*pw3z%-2Www9tzNw?VW1MZRnI&6|B1ryY)+!n#BuA7r<wkFKN^)OeGi?2 zdQ7Z;6CB(2;=_+lAHL%4{eIrcqwwfhq0!25u>dkM&TqEc?{J^<bk6;jPdBgT_6e~u zzlMHKykihLF{8pI|ErIWzAk!x7Zf{(X14nadFxD<Jt!A!;aOs8zko>a56oXvpJRN= z^S{RUArSF8fABZkfB)}Z{CD5oe3%@45&GrpA$xw9-0hH!Fd9_rU<FY#c>O&vT(%u2 zt>{~iPnq%NAfkb1WkS>5(SR1%0yiT9+Q?vJ4b@jzXYZOzaXOyT34-bU*Tn4>ryy85 zr83S0E{T2d9070&GieKxJPt#D9d7`OXdVL2(1pCWAfX5cyE=H6nIH#o3T#Jl3WtqD zX=ChFTLGeLz(I|AcQ!_1P1gXacml|H6?`@D@z9S>`q?RNLYLH+xqZIkCitUGub3C% zjbhTfUvV6)ek%Pm)TB_O3V;xEBTvMM+5$I&r_ctSgCv%8$-JgOw5A625T$^KId9(l zA+C>F=>=2i0n1!=0GP!P<yvm-AbTiPb=dVDY1V~E0~~Wj*#d`_FJu;}t1@0w>#<>h zvW>Zo2-QDjQv$7Gu;j5Yf0$=UL^oUf^UG@qvxWf*gQ+_S9r0N6W=24^89{Hzb31i- ztSGjK7$)V$w#BxMF~%4erB@g+xLIabu<7{AMykz99nr9HUMlN@FZJio>3gv<XU@5n zbI+V>t*rLZTx*|cFm#>kvajoPUiWp~=XKvNb6(e6hvcKb@p$o*KP#N_UbIw+=qi34 ziGdDWojQ)ky1Oq#4Ujh;Xgv<m%QSEtKKqWASekxEz6ZUIumQ`(yV`$#CZ3<e_GS=) z4s7f&8}&|%@<wajUqhgJ9oJ6&nErNl3@Y`b)3Y~&^aXiOXnFh^VmsY`@ZtHx5AfoC zKcAAJa%-o%2DNN}4Rz`qaK+8H+r!s*^=`k%icL7(UeBM*@dJd2KM;SQzK15^nZ{xY zOMy|mf$I2ntnP1Gm%{;!?O@aeL=DH+etSV$#3T66)UShIaQukpzts2%u<>oa_%;9P zf4Tp+pFRBYa=NKCm%f^=IBI*CDedD6)?e9kk5MV!G<b_JS@+N{89e^n^UjT<+>Sj6 zOY@Ve`7kp*7=SrFH`NkcstTZg2}_*Glpji#oUFD~62@w!2K3k&0H(Mv2-s><I(njl zIM6bR7xDj$Izv5H?QWk>stsW3Y9N8Dm~J#y1ymmZ#A=dz)KXXISvqJD|ACO4c8i8z z;u0>&Z&Pm+sn{ZJg9tn+exKWayu{yMK<d*o9tNl456LHR3YXN9=}o=&b((AKK-%?Y z-i&zIcpEqkoTK*7Zh;Y!aFs5JU10D;jyj{}z(|hM+i%DBUwfaZr&!k7*PNN!R}n;+ z)#z;HK#_XcwT{~HR9&?su}X)@<0p>)Ds9>-<WiAyNMTiWI;b^eC%~0h-l!z?8%btP z6GtvW<tnVoepd0R=tb2jjv@$LRhQ;~HN+Za@59(S`B)-nB5uUSF~%6%*5gIPnah16 z55-!A7mkHTja<>K5~8olQl;B=NzH{!S+>ymXwBsv&pD^8qg!h(qoTF1b)ECNuj^db z-T%$&KCg3KrX}DNu^Oaci^|C+w#t1cpJ5_kXJT~;!>)h(TbMZatJeQ}gxh+T=-jJ; zur#1913{>UeX7oV=9fxy>rL@A#OV~N;|(MjwN?IV0hLqXk!3AgbcOD#@T|l*Vu$~w zU$v<`)+IamkLJ<qk5!IWuoZxn^SZBWPKBsX2OW+Wg*WT19dZLa?dK2wG0yMe;fu>h ze|i1v&#(XGPsVRQ{N&ryhnMk<*6)$ua(xE<4*CH65O^V-Y{1)YdDZg72rN6|s-%LZ zfc&mfJApSXYTd+=G|3D374bXZs|aHIml{7ud_oOA=F9&VfAPQG{*S+Y_|v!BogJ*z z1%q3%2Ojk4Ug&QOp_&<1B1qkV@l3nVWz-CD10b+bFi;ZPHG&F>9A>)#^3XS9D>+sX z;)rT%Zq$jG6+4S2c`mmoNei5r9L^I==_wV^7F^0@6ISwOV6J>xJS9&<iQ1Im3g#G9 zLE%;lk=+KDi6=+$9z{{fYzP3S!7U--&A#3;Za17pxrd<X!4t9h3@3Kx5&+tN?`Q~@ z1{4a|{uLrFnP2UAv+x_@<=~5rH&lRMCqAE=OMp%hAB^}O<rN3unj&x}?R!LvPy&)7 zIE1t3#>ANkxq8P5F`_JP0T6bA-~+~0c@>@}Zpj<BL@@GnGl9qa`1Pm17=QTP&AZ=I z*@|&9l#y)0q9|ARVg^#tuHtod`|&@h=)=Ct&x!p_RX_lRf~*-AK>N2A_^S*hM-r!* zRW5RsjQw}(TpF<%N%@~ebU}(dx*(<5c`mc9mm|AG;$RQ4)>NxIMJTf$f{cM+(B=#E zTC87hny)HQ;Baz{ZW0{=j;s@eCK#m}{cV-Z^1dTafaUa0Svt2Xtyx%W?Q^Y_``oYl zx=hWv=DyZ-?lZ3ib!8I^G>JoD>sf`aGdp-&YTXi-qN`LsL+zG*ppnjA&)BG6DH=gH zhe6QurzO&~ki@a0N`o$QDp1=Bp+jl?D2#NP>Mefo*zTqNGJGyA`&+Q_iMrj{QSZGH z{JHLHkw<^Aa!Mkf>t)gt8YS*aUHAR0^_=)UKds7b?*S|t{sE@-L`0rnd>Pw!w-5jH z?uVbf``KU3fB1zy`;?#m;L~qzKDwOVuI+2BZ<()|-vS$XC%i<wRNMm_y>+C3MPPYI zuX>Tyy{Apiv#RJ|<PsO>lk^?+2k^V#TLcw9(fBdOr@$R1PT%Fnf6Kr8-|znVZ(jWC zZ*M-FHlAdKTvu35bDlvtFd(7yEEF{8=-dUF|4;#=RV^m{Njx_aiy`r>rxmWAf$cKr z2zrO@85mrsPFUE$j*OaZI+PU8Q(;TYZmDfirOPg)@`e$X<-%hhy4mn{UvGB3@XBqv z>a7pw8X8_-+pz9Ad4q#xAJwA5A`%=8w%{Nx6Yo-U>VdJ5tTm%`>WjIBHfSR!yt1#F zE@44U?GNh<T!|3Zg|CR;&)lvw@3){GQsSSkya+$s1mLi_p}1#05u*hr4Rb{y7Hk&b z#GK;0sX5|i<ZaJvsHndr<6)zKw=)4u>0Dqsa@!Vh$rq0w|LpwXPx9L@x62a>pR54M zNJje&h$KTbHFH3ru7%J<boZ^vo{6spwI@!YET>duChY={LRjWd#b^oftTZVFZ>_pT zBQUX=l&Hpwfcp59a+!TFoQkU52_Ss|ssLuNkPQ5X5$Lg1|HFT*fuUxU;rXM=LkCsG z;~6ZW7G>YQ;<of0rF{LeYD9_YD^ujB(WZ&ZY5?VgH%%y4?o(-VhLvkN39U8VLz-*u zrEyp@*Rq1dltMB51U5Zuritum$wLNEU&_=^)AUXYy`|Na2kW7JFSI!3A0iPRaT{UJ zQ{i|gpQmS`Tji<)dQ`+{$Wz>h-ivsUM=RCwozGbi>cjC~vOG!>{a4Jb`b9lm$?n!b zou~Q=sjVMm8ye?DN|~3*tLF*qjAhTE{_XmsnLaZr2W=_{8h4Lz{wyB8+dlry<;Opt zKmSGk(=X<4{s_PS_~qC4FW+oGnRu)G9(sekKwlDH5F2y`&cY3K2i;oQ)ySeBQVCov z7yF&qp?AzTjK|QUVn+aR%lJjcN8pFREf!C2^VR40>EDfi{qOGo&EGxz{JZmqD^3Mj zJ8c(k20$&>BdjWbb(AtHQ5i<Ko6`3f#~wzoi%_Amh_9DlFh(3?!;)GfC(mH|N%W(? z64z3y$05^XYg2k$xdd2_8%t_)W7rKv&;+z}6TxFoUGvHN)LX3E5$=V|lz>rTf(hC? zT7JS%$;Mzc+m6hc#f3xZ^*c<Rfho+T+l_<TQ|{>airN(A?BG`6CXS@%JCbE!V~V$w z&R)WlwvdRb0)vs%1l}f=@}q$<^pt!82DM9<JvZ@YbM!=zn<X&lPB_H~+MHtIDkiuB zXL2NHvkWkZ`$2-2g(*zvhKS+UiFtc-dG*obPySS2{C_uZUdOC;s1O-jdJT*t2xCO` zjg4??pUe?d9LA_>Ub-1cddWm}Z&aL{L5xch9m+1)6{ioR1hR}O)qu$?9gro@$?7tR zS(6r0i^`k|S5f@o)prG5q8moRVPI2BA<VPaKP{$1jjt9*O-If8-UbWV(Jzlvp%BQG zAl_S>a70->H?{hLtWtp38OWWaWo%iyjj{%Q=ghUFxpGdemDiPXt$kl}t?Rz7b6#^^ zbMBe5P1gN+qj&;rc&3oLE-fSkQBipa*}2DvC74+~l}f?&Fx1PsNUQ6??m4S36}tB! zbnDyO6xIKxfsy)()}CGQnW{T-Sz&f{a;+d~<=yb)wPStbp@VmG%OL8TvFN;KjD#cQ z5uKFq3@72fSCPi`>xs<$db&={9@}=G*+J*X>Qx?5Ju6ksG^?P&-0r@K^Y^Fwf7(C# zPwS6={`9M#&(D9g|KktW=O5vlm#^O4et0>}eY>XKLGPpsbVWRc-kKb*y{>3kGrZW= zOW6GAct<Z3L2Nkv0K8MYWIPDB)D~Bq-|7cn>BpbNFaPuTPyfr^ufDkZ;p29@II8MM zR`l;tQ(vjJlZ5F`^Qfk-J&6`|1?r-8bp}>#RyuOuCp#3xusEP9mF)Q>k^v2|Kt>a! zD=~$XLgf}P$Y4gZSURA;ij^hG3MzU6IxDwv*{{J~M-sdj4%}03_e}A2BW+M5t;T1N z_hq6-_r#jvZJMH<1_K(-%q`3n<h8TT4LP8vU3P=nPz$SF(Aj*p49>(TrGvR*Z#QiT zYJI=329w}c1g4+$JgVtQJy99s2DqIHX(MikxnC~gh?{}P)@vkCOF9?>xE<pHt;~Jl zvLI+~k>u7B%~K{>af+DIW%+;b%vwhqr&GRo@$}=L=kNbifB15|yU^S1?C!Z1y#d+K zC$^*zutJ>Agh_O?273$-ApwhJ5bk^5y6lA#JeWH0<@D@f9`2?lW07KmA$9wz#13u( z71<RfOY5a{b-Sr#!aLKPU@9BcU!%<AB0$!fqVnG&)!W7i9Nq6CF%MAGETffUfE1yn z9%d_a+e4hs6_Z-c2ssfO9hHrRaxK|`!k28VN=VAJ)>Vc+nwk6bFw(rvwa=U-`_4Tz zn<)i~Zn71(gzZ2Obm*u&ph_7P@m*>-LVIY0)#-;7?C8hYH~GE9&~U@dE=Cl=TH(AP zO~I(}gW)V!rlwtg7Yka&_%jkk^DWUC#&69MB-AlraUs3$i0}1dD_OnQQc_<OqUeU` z>c3=)<nqb0WCKnA2NJnfa_+GfT~?HLkS}1To_d?QTux5)#x4vrR>VAw>vsE{UVU-; z_;2^0{P^_`|LFSpPx0+f_4tGB@q_XD#r^BshqpI++BC-$r*KW}iK#IutBfn+9tZ~Y ztcGwR&)^BT0Z-J3#c{#iJG}f}AAijs{`UN{e>nZ*v-3}Xcl!9v>0ym?83xpaQagxM zy+tSxbx?#RiM(pYF+&1Vx$Lc{o_2Yk_efh&)GddHWC;%>`IeN_7_tgEP#qdufOW@K zOIXXugY4YKK1B)IQOzY<^e-COTPa|k?PPMQn`DXVx_N`qyO}`TZP<uiNNC!6s%jJ* z^Z_l#6SilXTYWG<MTAR#AZ^TAbGwe+T)aQo=|I*Qn%EvLWc)hO$GvK2py|6-IvXTu zz}sxfe$t=CjP6&HZxRq5MFAVNZCEwLWvWNB@Fgd-N(QAMZ?~Gmx+?cY0x^`}ph(Ts zH38{nFvtmA77}>5;WjXWC&hMqlOOzG{_-!Me*5>^o7Y_F!YWn*G(zHtP%0Lf7{}}Y zL*xLM1!5yyYNP*M-3jLwKcHeE7{LiC3Mup>Sq?cwZ>dnn2UKTCiRFEm>NzB~s-k8P zNY)C<meCK-w*^sC2(?2zOwWZ?-7%v6R@GS1lzo5uBoW0$%H|Ie7IOq+q1$E$^oYYM znoc~XgCy_Rkgr5F*pO>Yf3cO4G;>j~#Cw&sQQDB#l5RURT-Um++^6=nu9?@=H8Go@ zMjgg>7jRp&lmbUtYPiuPTb20XLY{!)pqyCYxlv9fH+FO>pdk{YOuGFr^sPKVNKLPH z&&T6lS?{GL5OJ`>#o;)hzdu!J<W;HR$S?;kX*EfsG&BgSeumRzhX*IxX9-9Va`h>j zMgpt;t~f=AYsEfeu9MbY`WzHlS<Gc;HbcD{KQIXN-~&toECm^p+xNHUH{0Ep>-=~4 z^aEW!IbA=B>!*1AslNLt-@MY}10Nr5FL&d5gU3_8+w?SYA6PAHfKX#hK97iK^G8mN z9d}Q<eTNU;=F4y6<FB?)zBqsS)%lYz&!2pAdhs^yuCXP;(=jce*oI+por+h;w@ zSCCRJ=P{;zdhEyIWb_QDh^{0NvhWNLlE`J@5d`!Q3<s(@O&1BE*lvtYY|aNNpPTNk zSGRvPksF;ZTsLGN<$5mQH5S36e{PT0KnA#IWp*kvd4J*%%&M&-r7LE&WX_jPSyv0` z(Km;<h*ba(8@Z&dE(;L~YAswA?uf0Cdv>yOtX<Hqqq!=J;x=(fbfZX`(x{0_7uBHb z(+CeviF^mV&DwKsyQZPoPB%cBI~pdU#S}&yrWJKDZ(?vH)|!bq^W8$8bROKmAVb_U zF9L}Zxt1Q4nYeCv2#kmf==OH~@Mrqfzgb^?9@lRu3_><#@c6GYqKm?#4PkVswlauv z!zl1n)lna^1KfB<6-~XtD>rQ*=SXAQyf}RJ?0=CBvnp~(s#S@8GLDk7%(zu5ZpYMN zwJU<d8rW(MjbOCGn-*_Gi!}=iwP1x+7IqNxr!aE!_ZBtKj0~)+2(Skc<er!TP}7jc zu%&uOE;U&v<tmykk(jBumY|t)i8)ikT5BcdT-Th}%zfoPbzSqCIjwX*fCd26Zg@&0 zxA%lh&9O7vtvmeLvRHqLUJjuWpbF@Na3rQSL+JIUD0WonauI?l-D*5IZInw_bnfxR zT1Gea3hG4H(Z6oc;Vs@bqh)r@8E)(@w;Tl;gf%PJ1FFvy61zoid>9p_SO>OpQT4D= z$JO;ogVvmL-C)1bzA$%};z3*IrV&5u(nuvk%<gS~MArJHXNw$$w(;~3m+jRX=!;Ef z=8Y~d*X6_Y?t}UGDxW^!{sFHq@OaC|yL@}cr(5j7HK2i2v5TSDCQpjfRL+^#+}`r` z5%=G34_}Q}-^Yt@Z+`Il^ew!eNdN#K07*naRO;#UFvmH^Ib%bus_XHz<{m4Q*VEqB z0>tXr_x%wOHb64C?VQnTD{GQTmEhQDR0qOB?S!uZ>V6Un>R0cP=t4oq{@FhFE_lnk z7+A8=cnM6~;-#cd5s|(HUU^4JoPtGtu57lz3V%t{B@`9GTf`;dJ*v*EC{FGuY%o}* zmYN1kfrBZ{q<5$fRYC1`hU>E!lCWoWz-*19nu9Lf=Gu`o2rDXmI8qz)RjJNQF}N{O zDKe2Z#|z=qcfcVcE2t|N=imk+Fh$k6Ws)j`G6K>d&x1>mi9MBM?jkWZ5;~0#d0n{@ z0p1W#(%Xrri8sLghKCI&Y;pf;{_3ydv%kB4`yWQ`l0trb5lAex65k|ot*CZy#Gza% z(2eWv7j!oA0g|-pPV}f!Czl{fOC~_d-j7)Ts19(l|5(3Q^RgX3)LtGb9<^K@f~ZvQ z5my8TTh2hT2VD;g09in$zZ6~hLzJS7=KKV@AtLjrJn&FQ6LjqiP<62Fn46WpvN-Zg z>t=L}VU;I$S=K2vGi$EZ#!*UJ!*b4qu$HdUT)C%K=3JVyQc>0~w3x$?wYNIRW8eZ5 z4Nlpn8zyX*GALpw0WJ><p_k}AC%LMV!xKY5qKen!;#<Ptu#rkbu3}aEH!A>q1*2<9 zf0E}%+0pMkzZQV)0nz!TX-EJyA6~U*p{0HyA4rtEm_X%QV>-fn3JNBAl-2{gjpI?W z3w9~ws|wECulv&nc^P@#bQa^W?}Dlns9aQ~PRFhyx8ScXrm90=Y7o-t7TZk%7vKtf zkNgJtdCqO^=bUHc4cDEnH+j8V*9Yu(m}jk_9GV951Tw~o(;nLd-<{&Z?UCopcJmas z@3xyOw>8d)6Kww*G3Z*`m#8U<nn<s2&MpviTm}328(18c&jv;yWkZd+ZZn%MRhKt~ z=L!TQv6p2A!l9O|?wcrR5+~oTLYf-1qkomcQJAT)aMsd1sBD&uR7z&k53Tixz7@p* zyJk8$c`!y~N~ho!6tE|627(%Ot?Kxg!&$6A)My@r2DrM(<L!T|PWU0O5LkfA7vw7L z3uKv`Iw52k7jjQrsf~;XYuvXskTn5_z-%SrCTzrtNNA}pyM$}nA>PZct59$SnV|Lk z0gv1wZPUjTxT_wE#UwdGE0NL^FB1bgjR@czLFsX>tFR$X)@~%OscY)8^bop>lRo}Y z{MBDyfB)Ol>o3EfB0(q>5grIa1bc+RWnX}d3~_ZZ@U<#{?2@|5WL5LT^@y4>A;OS} zeeaHBm1x}5>8GQ?kt___*>tw2%?OAx^nnl~ID#8%=(_V#n3OJYj=vGi%V40DPzU^i zpbXFz3xwqA;Mc`s8|gXxA{PL104M{bEL0@nS*+gwc2)nVz@cZAGc%K!ONoW0wU#h5 zGqI9;YF~3fYvsPyOc<AYzPKOL`T{i=9ip)Hrv^|VdmSxyptUL4*s!iD?Fv>w9aJ2e z2epO?)i6MN549xQ*P`0WD8{}{NRhG?y=x-2a8`3_)s8vBSD!Kf5Si>@d6OgpP@ZOR z54IJ;jgg*HOdMYcm8fjGCYL7%0f_3R2diD&>nT|CQK@)*_i%YU&4&k_PvC2w9y4~1 zbR*HL!Po{EKHF929B|cJ*wt8|RfolOxkbE9V1{DLw{qQt0Z}=iGZa|Ezy`}Dba(;w z*hEY+V+foK#gIbwm8ix<Ea6mT87=k=fQX|f=`-;>Oi+)yiU?r%z;6r?iG(S&swC>* zO~5PKpZgwNXjDDfx5Yb?<pQ?*Mx6zb?a_cDh7Ea(_p975Z*#6Q)6=Y7H#-0U-g57= z?jklT?2zF`l%~?1ttm*_Q)G;#Q_qBX@QB2Qy62v?vKpc%^SRYY)}G!jp*AA~5y)J` zDePZ&#MFYKI4%^B!O>!{B?fUxZQ%z`Ltyaa`<RHZ6%&UjVO9}V_4V|s1>@0W&Yc?z zep%yfl5vzVJC;hOzl4-d5s)Hy1D=3ut_56II_jPW2Sjie=dMfY9JmcUNf)i%!o<L7 z!|8m-pZ%--kN;x)?RT+X7ZO#<K+q~Sp&ov)&|eJ&kOu)DeW*<A8ufGnsbaE_MrAjT z4BEx6j<W-mN0k8TIaL+mZc>IoH7ERl1U)N4YjTJf1E?k8W7ti8cr%fTR;&Uq;)qWI z+<+?ADQ8nZA*-&3hpVzAniXGWdxJ3ROF8u}=d%=$E35--kZ8)TMDI2{%HA#LVXcLv za;20@D+@PeCKE9;r`=VBnQ6_-N@XfqSz4i9M{p;pEla=<4gX?;QSNiGG!RglxiaE< zt~${CNO3uG9#S`!-fI^{b!%9}5kPrH*5^itq=3lUY3)b$D4v@Qs;gE2s|s!%F}}(J z3K<p~xps2Ce3k{XvLDGVd7}AfXGyhBO$Xdc>1}xp2AH1QMIcc#{W<ry-^bh6A6#$q zZo57474aswZ;9`vtHO$)Y^3E|VmtFuc}LE*p~zx|N-7PhXvU67b%<5f#qtG+xO4;G zoweqa0l25C0`m<7L5LARDiQWAb1JLkab$?j?zSB-O=ctF>Ye&D`*pL#wJMMCx@lG3 zR4h4q#88($m20AoZbg?w%q1`X&bqZ&Q1)(F4^soE&{P9rmR-L0D5z3FX<rOdq6q|c zF+>e=houTQrL1w;5ChtXE3~Huc@v^7g$B0Bl~mFUb-Y(SsX=7|cCZCG0!!(2w_ce8 z#G+0S-k`CKaPYJi-90Kx*HFzik~on}q=j7&NDsCTGNjENHEA$5s+>FlET<?mOIjRy zN)yG0Zo#c)xqQ=I`iUrov?&VXX=Be&f*c!}c$(`fTvwcsr5qv7F;?Vbu4^JTo;M^o zQxkj=u8Pwb+p7<^zxwO_pZ_kt`JJSY_eJHZphV<hpkZDs=xt7Ys$mD@eh_T<*XOM0 z5LWN-VDi!(ORvV0*{!C&ir(sp*yl}d=t`%vfvsdL`Ew0BMrd$Dj3FX4g5($j%(BrW zgTvsa+En$n=&A_F>{`7PK`KjwGVGUZ7&RzJ83uOf$!yo+g^%nql9|0z%3ta|7EirB zH&-ID?1_XjSSn8;X<uf-(}!~xR%)7*wi=>|HK)=}8L;gZ!13yj|CNsht1y<CDN<1} zE`|bRRwbsMDh@Td`TnFyQ6}9~U@^DW`7(k!CJ3q#6C$z>j88}~x`rjo(gpQqa;6BN z=rj3b7im;=c5Aw#@Kb#V0}EEa!$OzNIE*r;bbuIO2+kaAfEZPAG1St@ZbJYybW21? zjG-5|<D<Lt%iHaKjQhd+f%}1*=!r!Tl`w!(>(%N{$MGzh7yW>jbf@BG5d>g~V~(nW z0e4Hyphb1W=$`se4Xcw3zoG8}31v8Cheh<Q?0_I~wdPg*p-?Pc_X0gKDH={e$GuWS zVLo*Jt8HoZ9qN8pIN%W$u==q?7mX}+KM7dyQ`|<dXq9RgX&my_(v`BKs*Zk6y(+4# zs!D`K=vA}G%G=7U2$LOQ5+xGafeGFOUu-<ZVS!W|NSn(%>Nm%-s&B+dR)0b+6vW>7 z1l34WkpvNy=#TK*1IUf=*m1UW4K>8-qVp*2HVaRrAZD(a0BSO!r3oNv<X?gt07G@% z9EJxu><+6$R)@dqhepfw{0QKl5;#+rl_`t?QXvH;l~`*F-b9@2<2PcA5RoIeZG87` zees#*Ug+H4uRT$vR2r#zV1`9FWo@*}RRPx01^=&XRH4I80ZO}D6-yaPQSCbCA=>&e zsXUyBc4O&78t`~@`1%K9l#dVXJI4`YV|b*lo#{r$xv0n3&q2c>R|vH8kfG`-&pfZj zlTuol3x!(@QMA_5sz#5u6e(2@X0Ek+bKcqy8=$mVoziRfrgxFAxiXjh2iw-w)RA&7 z?TIDYNNFl(Vy2}%T*9pV;Pr&79P53QD<D%EAN=&s{g8*_dnh0#0#T$8t?{q2av-Ao z+z3!nEAUX}HLQ~lgrRRS+zxM9L`6RL7j1J-VT9!|=$fX*=I?#tsv5wemU@bV#}7O= zfufW+ao`UWatfF7td19-gHwlE^1Z3a5+nH;b$1>>$MRN31jMRu(DgUt;U-?4`06I^ zHrxj9f)CV7=8M2RaYx*M8x%?kL$K+dEkvuAWFrS!O@UFG=|gv+QNtBpuIqemL2w`9 zx_(to)OR=7Gh!lCoJOj*P6@}2s7BE`*1Q09AKuT4uqN9m>PWFTF-R@7yn&XSbgR7c zlmC(L{YxAVA-vrtj*6#hAh%t86+$95nXa$6XyTXEc4B}5o&sCokVTf*73^L@^&6e> zSgZWVTB9BSc9qt6qYO<_+ND$A#fdjVq(+r74L$n{xsWcNmLwIyt+1vN0cnd7Vy1#b zGFkx?q`TI~4fT7}ohqYA*S5v~2C+pyKGdiU0|v(=Bj`2V#ULwdZ+4a66p2Bk^t5vJ zY;Bb~N9$DOg=lPQpWGT$Wh67}3DlmtEL{t8^EP;jnub<lCM4WMd~k}F=eXTsgn3Q| zxZU1gfAe4B`|rxbRDw8_p8BfQb}ia;vZ(4FJuh@5DdQf8fyNUF>LCAsND)}MAP}6n zgyIPC{Joq1DemN$8S3h<4CENSGTh##{m+QOjU#G3bKO-RZg{Z9+}Ys(aWH7<6uW9h zYANT+tQAqy8^p`_HFM6gIn9}wYdRU(5jEFt>jZBv@*n4Ns>;=t-8p;kbxrNd+ibB? z`@+7EW$UMzxqw9pu$9z;<{<;=hr!aYAVRHhlGu${7dZfuQgUb%mZ$+`#_)i8^@m)6 zRiaU`ZvbtFQEXj?5bQNZF0@A?843)g(m-tG;1E_+OtxYoi~BlAA5;A<0_zE^`SZ>v zUFF)~DkU1kdS$!UKZle`H-WHR-MH}>6`WOX>tuK&VmC+JF#>6sK@c3k%yhJ~n??kK zTJ!qdH*fy&F1FAnzWOvD9&*S2g4;WuF3gDyV~c@AToZ3sexG<FJP}udz;gF0k%%Rn zxfTxDkUy=CJM2N^LX>3m9$n9g(i%y?Ah0|+JSE}4fwdA)gruNs?r(OqyhYSGqq4E8 zbTI6%l;*)aNeeXDkXT3M?&gvY%_>kVf?zHCvAM-i_Z1Iz__;=O1PH0^w<>elXmvO- zTVGeQG=|FBpt3s~qGZ-i_b!&r6o^PC&QtZ$SR2t%xq6qVJO#JF7CI-NQkTqq<IUiS zti5^QD3he_xxvvBkVZ)0IC3YLsa+8A#9(mwjUxz6&-a2v3%)^5n38U56%DnUA%RBF zTOeGrnAIk=6)w+R<*RhaJeRb*G{oUHG3ZStUNc~E4K^Q!B}IL^B|i>6mboc7xM^Ia zrzMf@p+w`?nY=Dw!-?DmhJA8(Todo+x*6jpNaUVSVhNY+#2<V*|C@h1zWV3w-J=i1 zj4XGieqQ|G1~Yj`ZCT*<xoLzdFhJO3-O@cJBQn#K=;S6h|DgrVo{Eg#idh}XV!xb= z<LFd1R*FJQ&&oLzCBxQ>0Or(+)J3>6MgzL~r<K;gGpkxoT1WJ&QnAomR-epC+2O86 zx~uk@nN}Fr10X3qtEO4CkyXjvI$FiItwg4LSt`ORC)0AFWG+y^RHitQyKr=;nz8f4 z4m1fLDCNQC0Gt)kqAR!(BB2@!0))&_*Efo1CMKG>EUjDDx<GgSiYQ#>(6~VgU)xv` zk%PpBA!*TW4I;-vMTa4bGCFiLq1cm#^*Hv;tK6b$dD|+MBU2F(-eCfl=Rq*TC62f9 z`Zo&}^mQ|07NYuHK8dC~pL<PJF{1JwltMt4ch@g}|7K|8j(L50_3;O{FCNb4n}_YR z;<S$w$7zg>90@%wyqWoZ#+$?h7ql{$!Y9&R*ca3PO<6m*(ED{%9>%2E%qYL=YQfe| zj*5wz@W@W_?TR7QjxOt9hcz9jHrJu;C@8wn(&9c@s3YUqqvG9t#h_SVaL;uA1$G56 zM$oci+P^f4S@jVsx~}H90J#!y2(4`q^*QHKgv}JvmJrI^o>LoF@i>KeD$jy#^XNB7 z6zk%4up+rdrToLAfq;h%1BhBKmHX7=9$uTY6kWEX9>ao4Rmn#`T4Ze~b8x7RP#cOF z-z@>eZnJHmv>MQfoUrK{S{(@54Y?!}K~hQvPhwz2Xz+MG$DD36bEcc#a<CxL1Phor z0rwlNR@jpoL9IY32m-nJdMlI~jF}11@|l5{i6q8|GwcH!NXW~)BR1fM*vJItRoB#a z*9^pq6VKkHx^j-~>EY$+PygHN|NVc(Z~ueV0)$n|>J@@g&ONd&pdyqHV`+yR%3OdU zlkB#AI3{2vi3LjO#!xEVD>F0&C`NYEvEeC^#j?T=;KAIrXfECpEPAqNRp}eOPcuyc zE2k5T52Wo8>SkuQhV&kTA8`y&LG)Snykz}Yk*C>L*vwjO9{xrYY(Ytp!-Cv8I45 z5>rbFR3J@Sa1*o=&qTL9S>cA&;dz0YKIf4iz(ZfgdbCAsYH9*$9;4vFDupdmiU?^T z2Hu;gw`x0{V|b62bk!U7()HVyu1Ve>x>(Ks=o~pA+cc^g4@K;Uy=`2-k$}R*cXb(D zl$Bt-8f66@RQ(22s@b_v$_g$MW8K`dmM<G_vDr5RD8F#}q#vg|Ek1%JoD`IK+BPdB zD_v+kzP)_@yKm<8`sRB1@a?+~U*5lZb$@erzunxO?{3a<zKM;DseH<~gYFX_EnX87 zxuEP-%-NT5O@|Y2rP7%$Rk2t=sNqaxDU}>DIJ(ud1Sxmn3A~QTMaD>tbTMh=K#lh~ z`!E^P*^7saQBL@0=|l)v#4LFdD4pSl2m}|y4}Snlq0~a8+%xmJsD?_9bTFW$H2WtZ zAjh}m<V03;i9wVTJjo#m7#!A6jp8Mt9!W}Kmxii93wh|zoigQf^B78bxZNT(TLesH zLZ=8rQTuV361zFYlHR6b@qR-hm#~CYt6SL(!WjLb?7KsOfhlZhg*>-9*?ul!S2+T0 zBqU3EySr0L0*MnC*2hEJz=)VB5+kf&j}dtu1Ik^l`nP@ML|qG#OC=Lhi6rgP<hlBA z6r0jJ;U;wxJUeiZ;N}Pyz|Dy3THA<BaS$taS8sxOy!$9|#Gvj5H|Ck#$Xnrz;L_`< z>%w<eaKzc0TM)9S<khRYfAc?F{`vp8$>}0J0N3B)xJ*NLnGrDc>ZiPzdzGjTQXrbC zbarcnqHA79)$)15Q2P%`&VDXx8%>kdQ^zrFRMy-PgN)E~i=7c72B!q(=1dMDJ(JVb zaaMx^;&UlfDg^Z(va(S{ekZ3AOIh>gm-H{BSe~f4=%S<siO`+b0wjy_W1d(GP{#4D zrW33H&RlKMEKfmHIdzQKQVA^|rfdjzkl1z7o_i-7k8nUtYpmSQNaTo83rfI1%D2aS zx=a!KOH?-)raUXG`*CxQP)G{*FGr6GCeqE5@{|V`Xtidk6$<sV{7M3rZ)?5psw5Xx zaY|6g8$;il@To%mXg)aN1mT$|m2laGFhDMkn1M%XiuBh^B9vBqutp1=@qty<jiG{s z9CJRsS^s>QuOF|Uyng)n)y)rH+&|pk-{0NezPP)6aX%i;H#g%<<`NdR^w5Sm5J6nN zAQ3(W(}2w#X<-;E)lKfXhajd?2dbk^L{@z$ArsT)W7-xej7276Wa%6-wHOA-8TP%a z?p#$ZW@gBTt@aVD#N)!QDjnTfAu)x?*b$~Vm(uT;#7ZW)puSu<E~U4|pbUp(&T5He zm>-d2EDn}+t+nWf@5&@2X%8WLtccA?7eJzdo;F3M7S<|kZ@;)W@hBQ6BBpX?EICHx zR&grl3NTN^&0ubLyYyyHid&S*sIFUTBezXkEQw*iO=wi1U_#Iy9Ra{w=gg#K)<nxf zEzljP{o=bMCv|ft#2^H%bdbargt$ReF7dMFM*1!c&%;;=K<&kDXbEh=kxNMS#y<js zZlt><C)0)mLg~4yAq>V$jfj<b7qNz}i=iBhZQv^2Zusz2cJEQ%gW7_(C%pjQJ?ZUL zmrM-&;2fh{DT!D&_x$Bw><>TMzWE2c-f1O?jgiub$SPaedG^o*Ql-ddRp-=nM6gmC zX*WMY(x^(h8CthB%mF4cYE6;rm-?%;LDd&@6RDa)R#q{(hgzW7!C8we<GZfm04+L1 z2_g+S3{vV#*<!8=lA=LfBxiy{nf2>SK+HAW!POGH_ckX)OEH~{sw)Rj@UvsD3KMAW zCBjmnnB%tqeOY&afV47Zq-uY(JEN#d-eh9|r26^<6fW*5X{+X7yGW!az(^!vF{Nqu znbRXZ;bIB}jCs@ysDh-Pa|uYRnfyg)@K2Syj=9>!Chb!kK{?iE5l1?Johx!gNGMT% ziI^HQr)d>;5-25edQwag)i`C=n4>`V1-dA1GO99`_sZB<f$n<Ly(#sFg*;6nQ}TL1 zM+mwZLm-urQ0CjO_NUix{_t>q^})jjFK+MePIvdWcenTVw|Dn<H|G<_$V4m%p;1G; z+JYOfvleq1hYES(7zA48<n`fl)y5KDR13*GEa_uJ22(*U)CyODD?=P&oV!bJ+YkkO z!zX1()(NR*0ndZC69W>sue<_Yj|3=aD8|*>uItE?KqN-S@O555u3X4ubD>>$8$G*x zNKqc1<{)CO$Y8_}w(HWBUbsGT+t#4$P}g3|s(bCTktgzo3}O#ZyolE_Zg<^?0o_o8 z*rl1&N`Px!<q49cqt_Hta}Y^xk#|H&YjGjBQQIZ5bhHvVCS#ON9aZkQaF&V67~0ni zRm59%i+5F)m;|AKlDMktFIM>iF=*R>^0uiup#UJ4#Ec6tym|l$avN9@vJ8DQONqCN zvoEiybO;O(aUPJcuUz65l!(AhXd{(5i;{B7nVC9+8k$1D7m_P=T|9MZlU;ZUx*2$R z!k&1y_%!oz=zbgK#YFM6;r4!e^>MuZ%&evcPK-3PizxkX^Fqcc4b<6bz^$4hP+5+s z?&FxSa_!cE$Uo|o0r&;8#RmY$ECWQw@|O>PlpsUl8`nY-S6dOek`bmo6Kkfa_T|S| zHRD_YLR8gTB%I26PDn1Tbno99E{vSZ)Lf;qJovq8ocB7xWt!6%2}e2KS1QZX+-XF# zV?)GJjslSGM<Wu;-8gW1*)$=u7}B7Z5M_fFG)%2Q)vP3<U~F!NuOfL|Qfm#nxVr)4 z&J0tF-g}Zo#a0ye-9u(jz^I+%sNz=|?i3)QuoXgPIS;uhDRZoFM-{2%V!2pbM?6^d z)5B@1q=GtNs0Yv$BD6uOZw)(~nkDo(4n-)dN$m{PvSj*4>*B!=G8+85LvBiMA(I}^ zGFzGf!2TlE^JFnKE6J(Ie7erp-(P-zKHuG(AMQ?fx7+RAdEAWi&FOB7vz0d^M!+N7 zE8KSDMv|jD>;?SFZm~Sl5u}B>Be;zi7Tng}$$%N*s4kOgI}z(C2?WL%+vY>8rge|j z5QfkSy8dg6?Q|Yv1ZyudR;PCs_b%_30Y<LnmvkUr83-054X)A~d)=QG^P=d(2H*ZH zRtx8$vSegv&sZ5dV&+**z0^bC!6H2?n#ak@g-if&=a>;9cWGw%&I|_030#R>@T~jQ z$<n5t!HcRg9?)2#@?Pt4kvVP<+lXu8>QJ_3t{ej+A{Fmeh%th<8#todqZrZ(u1rCr zu78BIC#Gk296+4KA(od(1xC~bckjsEDGX7RJ1Hw7G#$Oy%4NR>JJUL8M*C>MXh2e0 zBkn{(<RA!MQ|>xir@p3gXk{)&&7A)KTz%WFBuR3dnMa<}JKQA+2^1jeQUCuZde(y= z0um&UAfcsphdY<<t_(Lln0aK42IS6k_vxz42)~${-yG|eAT7l`Gy^aiXk`V^mfEwI zK~X<^_TQ@Ya<{)=SEp`u6~8RJ_BV%TPFwFu;3DYWWLgCT+l@Gcj+2$ZHdB)HfGeb? z;YVghORcKvc8(9*HO6=fa2Lyc!48BpwG2mQ?Pd!_p{qIR>+X$t6nFJ3W+o4-_N|HJ z;1`FnvanBVWKc0)YIm5LZepuzYa9Ecd(*%~-Xx)HZVwzt%UeqJy?TRImq|52V#?lb z!QWup@9@mOf8Jb>tL!=e8m^~FK&o&d!^QjJ66o1(0}|U)`pXqo&aqT&XxW{fE=X4; zw<$L#Va&nrR$<~iavGMLuk(8%KP;hMY&!WKR!w(YgB$~4%Abs70H6~bEr>}~YBD`= z7QnZ($tkAu!2PZ{yn<7<9BvVjFKP;-Zy@C}7JQuN$0!=Q>~la!3$*UTBQT`t*}(SK zRBwr!yZ8Nief#<6KULNB`NQ@3@lpKX57*)+*1A3xKNf4%msLdym|pH$b&7N{vw*8o z>(RKxs^Z03XMDYZ+t7BX1(y-0NWY33yJoV9gtgY0sj`xVV<ORMvz?}9FGs#yT67i8 z`mmb);s8@VG_?gRh+5#q+Jx<X;E%Li1H&*_2DVeVq%7l0DTLE7B|zG@yfw0R$g0X( zF<)7-!my|1ch+lhaU0~Ilm;KK8lodq0h_u-br)Ew@2+d$V(~WOSFKuhfQ4Sg&o66z zeyPu@wQk|t-uv|(-+l#ORds{^de<NC^(*Rg=?7P5*0t#(2>woZ0h0UR8mt%aO}N#N zzCeE~3H%G{8%W@S*n8TlxQUn4thI_24?v))g-mO^T*eBd(pfiI7bN2DGO`InXz8)- zlH23EQ41<*i>qDLhHid^=T^w0@X~-md;k~NRo`3J$`#y_fKLbOgoJO>S#9-Y;jec8 z)Ou~c$j?h3&`0&>*ROx~FaP+*pZ{<10%qr>JVeNvp0Gzw>e$;3WZeQ)(@p2dJ3Y`h zn&J&DxwPK3QPp1jprrr+AOJ~3K~xg3y4@|tBxgjB1@6?}ybYPb@f~*T&bYMqWRpO* zD;&^u1`A7j-_v5>w_B9`7V<7sbh}+W{>XN}TN~Xjcj&&IY<D4X<IYmD?f$HmdK)Wx zyh12y$?(&`fqOhUe30L+%}!Yz`!s+yx!G*85h{XQU23ZvvrdSv%5cCMU+q+mDW|y7 z1*&zqI537AYHj!7Q6Sdt#yTLCHT_Ap--R`$N{9T^{1+uSf9v*nk4UP76v;|^G1xZy z2#MwjJ@(IWiG$P(&SH8BJcs7Y{Fp$;NXlfeB-J7o%Xp+s-usku9v&zeYy}gx;~njh z?9dYybQR!ofo)EU3sQULm`8V6Ng68<J>?r&hvn3RcthOK>;4H}4XX;?#We%L3&r{{ z{9V;BHlw4RRBPB8lxn7@a9y={x!spwnj&W53e#Hov9!9A24L9RuHxhhN?5?EH7c(F zAs*-NdHD3elT}!kTOA2j6&BWoqKAoHu8uHBS)vNMT=D0YwdLFo!(`R`PnA1q7E44e zH!oq*!(a}jAzbS!GTSMjk7A{SCAVk3FaEh$o%s(0CR)<GVrEhpxwjjkpbe;!8Hkhs zoH=SmUaLOqv--RCr?eXAd+Yv2d|gXq-QwS4{{(X-b?NFCclN-d1(kPO*DfxRLbJXD zw>E)46#moazN`N6b^Y6}?*6>L|8T!P7dGlE*0;L8fiLi-!nz20fb2^mw6uTN{Ym`F z`hKm=_40Uc8}q8$DlRz5utj+pId!)reUMHwU4FEl>S;pKt#+jI@|cEVgWJ6Y#%iv^ z)6~CMX5nNK1l~Jf{Rj37`<L(fv5TlbT=;$OzyIaOKmXVNQr~_qUcgQFQ@f$TahDUj zCNRU|gpsq{gcFuBrkgRCjVdMc;rTk3a}~P*t(t0^J`BI-N6CBkAhXn-H?UQiI{<Hj zcCE+^8QvaDndx-s{ha`@I`!Dl-rB=40(zVJS_*^VVY}*bca`0WgB`DefFnLHG}?O2 zs^M<Wz-QO=Ys~S5I5jVk0`n6JOkh?ELTV2gvJ9k0|90ITfIO~orgJ7athwm<x@f%O z?2A`M9tRT#4i7$%MBO$E00eq;9wDH)^1D9jQ_+(2ahX;^c(MdM-5__$C`>8{PRDMz z_hNet&onfpH5U>hPYzcSrRQJy0^<rzc2VN3S7l_jTrlmB4!vbkXq>kL&R8&)wNVb6 zTp%DP1t$1}DPH>8nPGjv{AG(`yrmh?>6`69)U?X@%ndV`8pQ&IUk9&-BL&oCxgLn{ z@M91qZ!U*-6eQ~7lz>$QwV6pVfQ(Zwm^l+>#;oXuE$6JTCT-qwe%TJO#9AvYej>0~ zt3Yt|0xv9LY4s|8z+P0B(_O6Pz{WvP)yG<<lM9@o)b4a=71zlOR2B_d*e+uEqP4H$ zb+MKmdlk7>RcQq%)AWLUMsabiv?eCs96*C?<;2ivm9=TLB0^+cYYjK!S>6hpOrh@j zz|T`+1FAQB1KmD!^7oD3`E#_K{X@1nqfx7jH*4lUrntg!;<f6p*V4xCzU^-tl9u-8 z!pBw3x|^FW?Ne`dQ!I&{f+?+jeIb6g>Xv@_zP_P!UEdooK(&A?B^bi1CE~?;p**C< zqwSn0-Jr-8?#OBq^#P=<Z+jOPuX;hR%|cz7=C2p|4P;QXK(Dl?CFlkvefIuq-v9Yy zzp4xMAJ+P7>~DYmKR^A$e}Db+|5$o~jqBR3r*OPnY}6P8u}nc?5<oVcwi|EOF*>2@ zn5H(*xclZEbOsFz!LALnZtgvDKSq^<6cM7zrEX=mNrZ}ZTl0KQ%(TtrOhZ7A%j_52 zfXGwy7GLUSq@IZw$?7Q?!%o!!?(L=OsZ&4-C8VzG5-}C0v0Xa0R8s{PZ-5ynqwzWb zns?<$9hK6N)p9i16@s(eywCLinOTvu@$p~aDdOOnB6_9Yl;a$MojxxQVQ{o|iUM3< z(36@T>tJh15~Z{4%+bsw!U=Y#JCjsvyK<~0(#d?-aiusQyGCXzkL1rXLP>#p5|D|I z0-Q}Oj5iZdneLWUljAi$kiae^px23xnxJTWjF#gGbw*^7J3a?#FXX-GrPLDOF|L@% z*W90LcFi79u7~p=813;b`H6{4N`x&|`B95|Cty=Zik{<|Zw~f93b`i+_BFXArga-d zRCY^S5`z^2Ul^DYh&ZI>85WnqeX&TnaaeVd2UcfK2uwJE0vhaAfwgQIO!3O$rP53| zLyhd5JuzWEgas_%vq1EP2KSdsUuu0>6#FWD)>_bY)x~DEKH*yRvC6#SwU$$Go*GMr zY(cyu&{`xecZysB%S7iAuj^uQxtt#3^jNFbS|>c^%uS_BylVhSv1%>vhw{uo6Pu{* zyo%J!s_sw_tRi3JpMI$V(OOO?5Z|l5N4QCsLu75sz$PCUVTx+iy2#JoE!4UufS@LZ ztmK)GVe^p(%Nc)%l1u5D3uiOmVYO~atlrl~ZDH#MK`s>U>-w$|z}>iCySrFitJi8S zt@VZVcVG5@{2hMysNMYbt^fSzAOG~nKi>cHPe1;zf4KkrFDNI9jKOvLwFl_u-=_xP zD1N9e1q$V@C!cS|*Da)T9JxE!-Z@4F7kIncKj2kV7aWg)WY;mfo%n59lNv)^KmLZs zmXnxxf$7|^Yi%<`u?Nn;bE{`ovce$sRCZ$=ReCkG(}09S2Y_m-XZp*8L>$cC2bn7a zi*t&Gb#?@CSKTa<<*>4egqlPh7l-jKnLjtNL{8X0Y8OQJA=Q{2^?B*DF${2@qh@aq z6Z)h=pLx9b;n+1z?qvpR#u1^|Hvq>k$mocTPH2-r4TAf@whxA3j7+YA%4`BrDfvqu zNrE!Q<)egIV}e}2h)jt#LQ0CHQ!QZm;PM1brfw9|%P&Hv&ZM{5|2~jg84QbZt#km6 zrYDyNp%FmV5jbM=1-09)kbJdze5Un3V{YTM%9zH<J;!x>bPRdPsb~on^DLGQre!Y( z&~|Fh9z;fR0#ZQXihpp5{pVQ&5iB|ac7n=n@Kfo|tX?E<7|)swHYDSBAH<lC%6~eI z6tcjLzV^5py?{{K1r+*1U)YOU&<8g0`Xm;#&<njvm-dCeAdkD730Kanao#)UiwUW` z=)2eDz!2nydgEG`uBvOXmWm-di(FV-=8+Otnagry#A12La#hK7lUP;P2a8u-Rad!+ zub@V)DuRo;GKz0Ghgb=HEzYiWU#qe^$29FqoNuC|s><ESd9G5o8G*G{XnqJ8m=tC- zymr=QM{fjOpo@vz$ed8XI!j$xrh&agZSTqI1|Sl_kp2{xrxL3EZtIHcTD7j9f6|{` z{mU=E{^c(}ef|00zW(LMpa1tief^*RO|P$T95Owh1h%t@9e!N^wt9-?V3ws@Q$jOk z)0^o!2#O_($*Cyo6OHMtE;j(}wL){ZyC6MX{2^J;a4c^YTC)eQj#J^dJ8$8!8Dpf{ zmB5l$nyNiuAbvDWKykHxC0mn>7m_`ao8LS`!5t6Ioh9))?oJ7G#*_QAvBsfsmN0Wj zD!WyYY^us+OAk>r<Pq${cMWW{Ihz?y$0$aqj(L|6TznH#oLY`KQi-2(h!Z{@#N{9* z#sbI6dslgaVq-lws*V`(_Tz&!b#xVuZqJk2CXF{n%p^_#+q7G%z<$nr@jg!RpuSSN zuYgmo%oynDJ>h(Xvr~*0p0?hxf=JY0$K<c_{z~tZfXb<|_7og&e(vO!?aH${7%|vq zg_nO&Z2#LlAWn6LY$S6D{@n5Z5WK$=^w1hjuXpl?1gLuoBpnU9C?0Nbu*CVvoz_;_ zw-6pCFoY>`v~#2OxTaDm_NvM7IUOph(EcdRz@S8Pp3HG>VVu7b?TJ%ZVy7JXz;4|N zTH26-shO$^6mCdjHwE40J?1Bp<k7-GY0@Bmgs=91AOGQQ%%&nWzGs%;vNV<VELcj) z{mQxUXKqUZcI+TQ8_8;t%V@I5#mruU5w{9=6+jQ!nt{BO!BghPk;Us;Ri9iRB#ZJ` zQdeEpy4G52l}nSawbm;04xj6)!&xj|*G2H-<Ku_F`r-QcxZMXvcqXVw*!ejqCSTw0 z1*|V0buAK$<rJl)MHfh6-#38udATd`cqM;U1}Ktdy!P(z_v^Lyz5DgrUw{4e*Pnj+ z<;Nd?{qav<|M{Q$-~JW*8<I;HI=~o}^xU?AVSR+s!wJGn4cKidLkdu?IWv*aJ(`)E z$O4|)r>N=PQ>~1Q541W~#`l3FyFIUa9Qw)xOrErelcyV6DUaiTPMN{*q74OC&+~U! z9U(2T9`5GX+*2|an%4oA(6$sT_RtK0*CBi4a$x|IW*eHzk1ZG=E0BfW=hJNiQYDqE zlvR2F^0^`=e%52GKzP#EKph*B>vmi@2B4+nLQL@`?nNS_7(>_)xW>SZ#e<kTwL6pi zE)T5pjX^qdRr6iPlx+%KZoHjlG$be<H<A!sZyw&+@|aXB>$%yu>OJvNK`IWqKc+Q- z1RP+{i5Rn9Q;(Z4l{iWedIO=5JiWwybxWII*YQY36@&bbDox}oGlmJ+4qg+1rNpMr z)3yiXBN2%UTaa97PII!U6cFkTJ&O|)%vX3(2)H>TLpE2g{Fv#~0_T-&bJLOqz(tQi zz=a_i0$pv^?ac0Rx-J_6#s$NUARq?k7*2TR##a*>o)Z6tdu=Z4gDLLCUeI=Z5>jJq zA0{X~FM3C{9rh6JUyCqB;CrqJ!J1C9F<p05*dEf8drTg5ZwHtfys6m~+Zft82q|R| z@D&PPDK7urZlp#DJJbEu;BI&$QKv^gxyfwonO5kU>*!hp7m}=7Ri5RO$&FQLb#bXs zPI2=3{P^A9{QmRvhp#_<Yc&_S+*sog)gB9qwW>FC-}v%nefje7d9C`8zzgL8d{yh? zL%o6i{KF5|^}&_0or`r{Ypn~bNM5T5s`35%_itan-uw0a+t=4GU%&tS%l*?&ub=<i zub-ip>vjqrnkJVdgkA!m5H^9XoMU>DDE?iWdIoX3c?MHyeD;ty^L|EG+N`4;DNG#{ z$ps`mYa<PFK1DX$q45&S<3K6^iy*XF)os7leJfcJ;;kn)eQ46-lW<r($M3Gl@KlLV z7YPzGX@V1xI2>we#UCKac(W#0k5RQ>w4Zj+>HZoAf)(SAu);>laOR!2d#02*0>d2Z z#L4~?tM>#7pnSNxrr|Tc&)AX&JPsctN5cx%uMVC?f&RsVF~uif8dW#jtjJPAG<&mF zmxu7{iA^gr9>@R0)wv|WmJAy9#z@=u5Q8$T>};8|S({*Xj>-Zz=69fSQnv8VudqtC zjSl;r$EULguI@R=AEvt;Gx;r%;`Q^5E@P-ecpLV{GJD*QD^HS!Q$nkeH8>iHVA)#@ z=I1ba9^b~v=fneA3U83E!45Z8)?i41=Sc1INrF}!aHdqm3@`#_N9I}aMAbuA<_d&M z?M5!oa2*3-i8@c8sA#;E#&9#>h%?)3JO2q|L=RtgO9JG{pWTF3MUw=!*A)&njC3+D zVPBnpjx2?-7-Svm7NW$FXJfPygjY0$Cdq9*h7#H0GS_OQaA(-*v17}YtE>H{AXz<W zKA@ouAVbUsuK|aAG(2I~3}=E!*G^>YN6b}YGmaVp>i&wK{*sE;8P%V1>O8d)`{CSu zlsQ9L9ZLCGR&lXBL}OR@y;ZBO3tT2hLuYz9fZM6n&`sC{KOs&$#c=H{39D#~F}~b8 z-w`{K0yId*eF)1HO~L@1qp5jKXR{pxiJ<ltJ;!Dg`6vPCs#Lnv!AVbYlVq>1q;6{& z&p0L_Ve1z=gWG9Sx2Z<oC6{+aHt6wj9f?YFeu}{Zf?ODO2#dT_yh10g@Fm(tIMYv~ zt>e0)l8)+_x^`Q^q+jf2#P;xnJd+P)dSIUqdfb<?Js@A0Z2qJWE?*o@4$D6$DuWi= zeW}UL5FX#~SdS-ep&jjUN;=mS1sN?-O@*zbCKeM>O28oKaH+v6KC~FXkWP@!BxTz% z%j8zFFdU#dWRedM5m)CJV}-^i&jDuF4MfJOJJ-@m!L_U3sO^0Rjh=)d^PR{3<8j9G z{65gJV>!y2Vuam?S2YYuvw3@8bQq;UAji+28^@e{KAb(@6q;HtOM<)p4ZxaNkIQ}T z%>01M@?hc52f3mt0iLb9Ay+H;r-U(%KN3pXyVVTwH0}^iK&(>@=~w|LQV{@!$&6;W z_#%GB+@|A3fm?9h7_s*($AbA!WIR&DNSXl=gaSiwL`LEKa|1@1j*d0omxFM5u^bOO zrj7B8=-UP3`0|`7=-Mf0h`(-_T$xWVh3rk-<6}lIh=BWe{F&{Nec2^)ej7>qF9_Nb zVP<@V%Y!H8^{Z`X*PLn78I{H{*HiQWOaxerbMf6cixu}*<$?we7_DMC{mo4gTISM+ zq7Hm<f~5VmJqqODa_ts)3#6$xb41pO-RFeoa|6hNF)+VWbTHV|IKUE%2C(s-UL-sf z5Oaq?QdaK<ybhM6*Yjv{Z%jqWi?xmmtfzCp4YPnfR8Do?AZ9koWCBhHRA)2N`8ht( zdm&kVgZNAWvJ%UMA&{-KkO^*224L>dYMuYF-qVAak*u@J4ILh#pAX?YPn0NjdJZn8 zLrZ7(2?1Pm@mAuj@g_EEyzyokPxd5cFRB|fIDmO1c7DaPjx%U9Vc;pl$}Bm~Xu-!R zHdxu}MDPtA^7%GRmBUDzae!y{wg_|}ld*{%C8YMRU`L-fcWPm7Wmq{)ic^^jVMXl) zT7mOsq{sZv(?I8gF#n8M5`?S}=8<Z}$yj4%zLtj4aag4hB29f>tlG4M5ix?mKoft@ zIANQ5cZCWwwhKz7kSc>}MNX=vAZkxC8iGw0Xs%0V+H{~-(!9uk5e^?oB(jOd6{mzl zV^MM*a|-!=M$;Pd$TSF|d$m39LH?y9S9f%8aCtg9lxlY*Fo?@jLY$nHp1a40ba{$I z(mxL`sYu%t0x<zQj_0ysYogluzmu>Gy{x(1!F7JJ11lx~3bkUM+`_1Xqa0gDv+{x< zXx0ZO(=la3ZU>PW#MHiP#zWcI1S#P+r!sF(;WVbx$d5DL(K1rbu3_pB$%#IP2O*<y zGIN<I6yu)!>c`F7Px*jvf#fYu`E$)w)6LAPhr3e@cxr!+S(+cn&AUzrqFCh$;E?h8 zIhKHRN~<u7$`KsTLX+HSx!4)~ot|#fErgg-a*&>)HvK%od7KB-+$)DV9^=u;f1D6e z1K=iBRW?s3gWhp)$#|<nL5wwzZ?x9gVq++8p6TUo-YB3f>KudHnZUsrdRfDc<6ULO z487?Ap8t>cy5?2MQxf<X(@AaQc1J^<!9v_i{LT;+XSz(@_RU?zh<2u@BCH#doY%rb zZ24%?5f)UT!$-n%jpyFxxO?m|Xwq)(al#S@?3G|HiQ1>6dHgX)50$})$gB|z`j1X3 zS1x<0^r3N78Gb(_;qZVl^(KXJM8RL7$27O^WK)DG8_}?FnzH8A-{d%U5Yt0r1|i1X zf|TPFLGFVVNu0c@w6oq1kSaB!zI)dAJxrgUk7NwAGD^i9g5}hOu!yfdC=jvbj{ZTV zti}BbZ!!~;l?cOMPE>pF7ATc#6<WM!+{WT;@Cx67qqdcRT9sTK6Z8y6wR3>6Mz+uk z<1tz*W);Sk6@OthlTO26G$gKdj2K2q{aTj1LtQGJxZ_9zelz|cK4N%-DuCMasVbv& zo)^|=H&*;nSuZ-*G(%Fyy%A2O_)&XK+%BY!m>s{GS8|`$(NDw6W6E5Ij+(kE#3$<5 z+o**eQI@h?FDzjcFVO%sEN)Vuh64gmxM_h2bUO*_$zY7bL7<3<EAEU(9)|$V4?r?= zF$y<wTec2?2n3<k@NTyR=dpNR@dNXWv0^*;ly8X0a2!Bzc<e)rx8{8<-6-47f|buE z#ha%{WT&s@g@rj~KQeKw6&^U{UJU?PIe<_QSVVD{adFK=Q8rwHk6spbb5oBo#JCD5 z^hPef-dxG$6=gMni5X78sr2QB+nxiUolQ<&^C!=pjjo+H3pN>8oyO%u0f;RvrM@e& z=nq{^VMb6ePL;zRTC(kk2jtH~8VoUswVf_-Ole8m8^!Nxkh#W04Aiv*BW)a=`B_s{ zL$7$q1C<Rr7Q7%chmMrWjA2m7!(0yJssQ0pL?W9n9CJhs0I2L^T^3Q}GOb9n6Cx6q z3z09hrh7n`ay{6DC;U|ED$)d;DkiWMA38EL$75}j24^yEma)2rZyM-<r=g54#vsyU z_U0oUHJqq#qH_lNfk}cOZG_fd|IyYaaRsn?Y%A{p8BXtPOO$$@s5<nUpU!g)Jgfkt zt8w3!ZJVSCT6Ns>T;TNPof{vE$N6OxZ7e$L9dpGh;r!j>=V06xoQPw=vMX^8k|SA& zA6N1@9J`$u@sysPM`xTI6Tl@o#{skXT@8>TfSG8`b3AZ?uT$JdB`HX~@h&*MG3h+m z_e@tITW1<*A4(?nY(gd-2ncw#Hzd=#$&1=uX*_#gVd_F3GZ_^c@t)rZBD3Z0v`|2g zIkI$TbpeS@p52B)F*bA+W@rx;=AH3;`gC&l!yugnFXtHzGiA;z=*DJ+t;%K|+U6o< z#|ELIN#<Zj{~aE2JPHhZ%OU>Z_)ZH<UmeQ(1w5r<;FA_sm*u&O1M*H#rhJ*t^iYsy za|NZoW?uCg`ws-`I;;y?G6Z(dZ6Y7D36@iz!@2&^T7Tf9CrINdP8&d+n}FOjg-%Z@ zVk{@k%s33|(m~Dx6Ks~}T5+URa{f^gGQU6hafh*qP~w^5s-IBlh^<w%1a#UO4f$Ly zH|pxG=oU!lEqh3+<W%BFqt6PY)?>bp)lZU~hno~qLc@fCL{j;Ib^hGcfDa=(k%n89 zq0wzSARo*|$coctg>X|2Re-598g<^nSn!l+GlQxy6CIA3Arqo`fhA^uX3Afll^=*q zMd5MYJ0@XJ7U8+Q%!<h;@E{;nLz}oz4%pqNoG$J$K|(q*V&#LMLS>HlasGHfW!zJW z`fQ7Qh4uKF5&h>S()ki#em-{UAPhJLV)><gQl`SAL5ULHC^`YreF&+OtTBR#C>+l8 zIFbzrs^KSU;A!OLKr4%avuU#-iU<0PLP)a?XtDx^4Xy<cRN{taNJs*ApPN#S`~>XE zR_;?76tZq^MGw&S6vuPSIrW(~i?OU6Tc9C`2V(YPB6WV&Gw-b6{<D7Umuta&@g13& z6F~^VR0YU|`<no^i(skw3;weEoY+i7*5S;U37uI_`^L7|2%c=8+n*@6-{-w!06p`_ zV`##4BY{#R=X4c}qJ`uEn4LW~|K()Zv=<Ooq--Y<3j0nknp5|V*d{o#0vmnuk=>(+ zIr=yB3S7rc9>h6pg9x^#4G!(oqjiz-IISF+%r#&;4Lp%;&vA!!8LUI&D;)eXah{L1 zX&><B*X&zzKL<c0?s#)ZJ4BRm7!@FwE+i3Cvl8Ou@F#u3B?&2dKu|t|?h?2Rtg*41 zAtK{)FqBtN&#_YHs7JN)0z*X1i!f4Tba~i@s2Ow901o(#fj))^$2D+ro3WccF%+oT z`<!o2Qa_Y&bSVFGNIguMOr4{*e%V*XQO5K#5Qp@Xq+uW4&G!Kunw;2Ju*8#^kAjV) z`x5Fo#_<Qr>XT~@x8wc;UZUos1sImc3N&gYyLm@DoV-h(7|N8<ps;hZIZ|k%^eJT; z!gB)S_u%9W2frhhM(Tce4AUeIVcuYZ1SUgjQ76xtj6x*9Qc{s3@7OCqT$s903oDs# z*SXf1y%>jhCm=H^^H*&pCoOCdDFE7S<7HAFxxqJP&L^;kPk#<V2l%=gE#K;J_|cw6 zt#;B`6ZFQQq$T(mcfN5}Z}lb31P<!4rIZ+4-E$RrAkQE(4m#HCP#txijpK42bJHQ! z5Np^c62K%!y_70SZIQtQ3HdbOiNlUBnouOx+kYSrxwZrrT=)_NkNh(fEywNvrJ8nb zoKYtJm+h}rt`@i0-7Kuu#zg%*&+c<P7Z}^7<DDKF7nCkO#BHqXoBmtW&R=(iEuS>B z|NP}h{@YKC{)g^88WAPTVZDL1QErQvYtAOMHV#1VKcqoIfas+a=t*7paj+inuOQ0t zsq<lqxG82Mv0lK5ljR2qo>3q?z#FMY($+np|2c!Gw10K@GQ{;ANX<ih<>=<W62;*O zmMp_hus_N-HM;xQ?pz4Zp-vHk&SQIgB*yz3-liTRG2$>9k_d4={<%54y>ng)Y+$j2 z+ERx}CqFc=<zfo^q9$CW7Jgx7P0UzaQYqE5G(_BzxRD@qX`|OXyUTYq3hin1g)z}1 z408cNYDnxDEH&aRpzIrVIHM<5i3u@(BV7>)9@&aHp*v7Aw6RTe4KV;c+~2t2_Y>w= zGYdy{M(Bt_QmkVD&cjj20Ar@nX&ibAJ;oUv^<^vu&)3ZrKYR$`Y-Bt|Sj|L0hO_1g zZF@9X2VX}+aj;7GAGePA86{8)2WHL*sj5#01Uv-9;rB2m6L*kj>bKu(?j+D}3=<9# z%#Rs-@{Og3w+QGhjWm{1G3mBKb7IQ#%{!Z>3VctWI|J6w+0UmAN*zg@8?PvyDTq36 zMz~uKqtZ^UaDIR`tHOz#GQkpWvjCA-_H1Kvrr*P(u1E(h5ahvq39g_Fj1@=7ZOF#~ z=ZQy=CL|kNL9}>L9Qhs(IWA>vehiG}=7#b+=q=*O`8!eb#~bC-I_dZz1OIz~gN*<e zhHTP&hz6VFb$ZP8SfcZdQ|USn9yzGk^nSwk!+xmW$(DmKo`;&a+DSbR3~8;LW*_UX z2$=u?AOJ~3K~yJMd6{$eN}kOV+s>Q3oec&da#~mw9xRcZ9n0|qb1(TH3!00#rlDxg zw9n6oG3%P^<>ccBXd=PvQH6NGo?AVp!KD@b90xeHdGd;L|838)qH7kq;y;H96u`8} zW6n?WwG523KIV2hSnkkM9Gv-<GX#jL84**BE)=jQ6<ID%qYBmOE_mmFBRB2=5K|R4 zfY8j#jFO)b(r=J7p1(7lFsAhFLeG!>#*Ih$j9VH<s*&3bFfrRT-}I(sqi23z4s1JP zP?$7k{*H$+DzJlzmX9)@gFt8{Og<H3)e->l-FuDyjFGo6Ih^j}(L0)`35%%b6@)3l zo`VG3glYqpew;jKxRyiY*`!YBp&2Fq+hk85PTnTdUFPpQ2h1TK@&j?%^SKsF8@oK> z;Eh-euZDqu8F1}m%V}~RJE{pNUju}F8A<WDqPb2a^3Zvgyx*knsC>!uXMWL|FfK>* z=vo|=d#UqY@kIp5%GNMs3qe+s=8FV0vRSCGWdzrU_~n#Vag2Q0-H;r)AtH53=mkJm z+K(;tW03%0K%c+dJvzK!07Qx*;+Bs2o4Y!~Y~e|h^yD{Sfz#9SI87%2hW>r7FZBF~ zYMidg<)9hO?YSw86EuxJE0bzl={Fslt0|1K<J(6wEccO|c^Pcqv3JM1Y{damf+K&S z7i|vYEYF=8L$@E;9qdc$$xr+8lFSe$t4DtbJ)~po!#VamZob3_^bNo=hXQb_D56nG zKPmjoVH)R$=7L7K0~3{UV7s+}<2nQiClm(DHH@yu7(0U$VtQnX8fUo1nct`o*<+Ls zDS<)GI`C!K2w`R}bf+ekn;C5@IlkZ4<E}-m2i{?*wfV|P{m&G`BcB9R!bXZJXF@)} z_a2=mzuI%|L#N<;7>8bbKH8oP6j+VTu0-Xz2f2I>gZIJ$KKCY%cf~QdIw1%iUlclV zIJ!}}-17+42p04_bJB)Wy2WvsJR_wTN1J&TacU{uJ_(m?4Ld&SJRi>KAHHh>Er_fd zSD`oJ9D^P(M(1d5UKbCI70HFchHZDsJ)(K?E)&?8XPB=kF)DjGGajfpvjKUIFfI>F z+n!^?`~YkgX6-5GNkx=ME@VrOpSh^aCsM!>NSt!*I1Xu4A!AUEc_jygjqDwt_ykNN z{M1y?#l;l}PuX9UR%UytEG9S@wdE=Pq9GzYaQJR@T0s(B@W{Qq&WQc?V0ZwfuGpxt zY?||(7-EhRZEqO+6l7{?2+jIiAs+M-6EvNzo<V`l>`S)%@~DB5xM)mZHcw($H7?15 zl}O65;y5RNfE3HFMmV`1Y#GOf_^mfehUe)y<Q*6hT85!6^Tgw10yO;hDz5Rc>j*3p zo-qJpA~--XlI<7t>B^eU)&}8z)iKRuiN>hu#JNZM_5934V3HTQ%5!0}3m22Pu|YbS zVI{btCbW702|3ZT6PZjz;DFR6p~cC4F~dn8;xVdhf76K(kJs!Rs(@5+0f$mK#EP=A zdDddM-^c^#R%@yTt2SUu_yMYWK;$usk7gjgkC>=A;B45KlEmt9i;4_pM3hFc4hq$r zr;fCYbRwAc(eE=n)_UF=vwr9e;rYEsi$m?ac|~*fs)>Ab1bV8d32x428ZoQXc*Otw zC3~GX6zlTQmA4l<8Z<$S=1&@t54^t&#+e@1L%4qWZT6>(I+zI%kG%!}F8{F0jf?VD z2tB-6j^f?xBJoT9`20F&IBIC)i=ptXz=BQnf}aS%+i(AbPhiY;MdRm`6wwm}EF-~~ zDlB^tru!%30ztI<MKI(Q$J=uvZze`afOR+xV(HC4pTv=)I|aQ|B0kL6UNRGVSqsa{ zu<FE3k9b(X-9TMgk1+Hb0ZJ*UK5?q!Av`AUkZSX}0xs&o42QivbfqRds(=N@Q#joY z07^Bxh-kb#-Y>(O4M#b*q7Z9CA>_Ce`B%M>z+;VYf}iluwzcN{#ufD&>cW(a0um+f zdz?CT=y39fYB@&|QOoxg4{{f(%nftqoTI#}z1pis@VIKq+wOFH>2N3Wb;86UW5IGt z%h3(<JGQ%4ntq&a7DHQ%{8<=!!?ufai}B;bg$ol^6LhN+Cj?T`Wr3hw2X*y~CLY*m z{?pl}W1Y@FYN2K_x$UpRG51B#e|46XaCm?*B{;l$wPv&!pLFn3i0L;bNw)faOa;rE zw^C!HmbQe<%K|-hOqC`F5!3b&KsVVQ03HKv8J5ESY3%R&C;$s`hB&7_OnCdp`dBH& z`u_@E22YK_&`=tJc9lbpSU1foremf6nW<w?!2G!-@G)0Y)E_lEc7Cog3wsWdKQGYp z7Z6jPFt<3-er&??s|dh}ziJBhh_FxRo3fvNEQ>AtvE@Flpc<}Wrn5v`-taMC;WzBo ze0N%gG+xv{Kw&)Xlxalusvxi6OQoM?5`M&W3~Ah4@ay^B82C8`jHjkkp+&FrA-o_G zRrGx5`K$gLZvU#l>eN~Vp2cS7un)->nC`cxomw4=)%%>B7xIwFA~Im2R%(T_ayql( zt0s{qi7tt(LQAEM;`XRu?~3j^@YFT2n)?rf5RW()6Hf&I*Np3&_OekLo;C!bGOePX zTYU3-qhce?C!=`&NP~^C3Bv|)_+JlE9w7itw1gAvqfk)X*fCZKfUM9xuW&5Zq*1VA zF8ioq?9t>kj=qh|@bE<kQIk})c4bXel>5|Y4E#AJM?UAg{<(qx9L-4_tUbTsOu`{H z{5G53O_lVna&91qY-eO^7;c^N`uL!jfJu?!i4=WtI>>vj0D(4>NAk_>M1E<z^M^E! zs0}SmP+?Q1Ody|WdM$JWRUJ_|a9>2ZUr(7{Zi`$aL&8)I#jnZ36x%!h05x?(4J`0O z`tZUHkMCu~yV4wT-u%sSNv97fCnRizz@~j9I<?7%e>!zolhK}7;z+_nb;Np4qU^A2 zhfZ%~m+|l{BH*RA(A36+B70-tt=%J&iccD=W*VFa`FQW#@qBS!X`_5H4?HLV(cO96 zv5VvsatgEMaT0J8Lb$yd?^q#tHuRH(Khpq1f?*|0@-J&->pUG*SjaYwsitNy2{4Vh zIsRD*HFJ_Qd6uE#^LP0mJqM2~b3o@M-a6CAZ9HKY$E}SU17|U(|4vu#y@K7txy&OU zR@&%i_$YEYT9~=S))o^OeVB8J9{B4mD$ftT#fC;}z9|;mD(<Y2%Na6#uxgE4@)-II z(qM_*?TVa6zsxvhe;1Mgoi#cB`p3v7EDp>Xm5dX;I#W_(>1{gbl+oaAIhkQ>Xg?6^ zp{X;S(zfApCdPs^RJw_>C}ujTM#D7qU+uB$9CBg`^zD^HK!=@=88evEWb6H<t+yW1 zD3Ir2d9oG9_|AWit!};(VDHeb_(<x+l@QO+T8`!LS+!cM>SKoD29&(~px`$(7({zA zY6l@Wk6dJC@rV-k(>SF;+8Fm^Ii+Wf)O@}Vdi;m7RVS8))19Lr6!V7#dC#??i#3pJ z=(B@wePcdF<4_+-RLcskgR_ymH#8%LN)BX&*{;iDlye}nKm$yNk*Gq)^HIuVIHI#! zCQ-0Yx5AQ=oqKGix$(hN7J)zqjE(Z$yJxu6GxqNI`7`8ZL`GxFANp6~bUO_I_Pi-F zDk@=Y{?qZmsG67o!x#z^cxaN?<Dup-&m5EIM3hG4`e}#HF~%py-?v=>pHh7r*ST`e z{eU8>JnPHzEWG%M<km^0@Z>_`=pi0jkwXphoC*LgziC=(hI5h%SX1axKuVPHT;RAG ze<VWvJ>jZd9yLEX^q29DYcDMQC67EA1Q&;@L?xWsgcEcXL7uumacGn@UuP<Q3ya_- zDGQ+<Z4|K*`&9UloXt}fACw-rpu*E>lF>eHILk(&4(H~V%*eg?Ai!_@_@R|0$zH0= zVy#3ND#r@F8@MgD?%1m4_TV6$JORPX#7V@!b4+hk(Gxq8ypH2QHZFMi&cQQ?E*y6S zvCVxgJT(eAp@(@(EN=ebK(<2~?x<3Sv3ba}#)0@m*36UhhU4n&D#vV(-sbs<jD*pY zb65fzXL5v|XT}g00NkV#z>ARI$0{@hZSaD(STJfpN6kY8m|@Cc&iTjG3-D7Ba6yH{ z^d?wCEM-ei^p|tZwV0_eKbQXNcaY()8GEX65(!Ep&cig#TjGS11igwfaJlBl2LviR zyQnPbczZ@X|0M}17sn;<PY&nKY?7C(pg0CqNil|Viy(<JKUnfswPW$eCHUY@{aBrI z02^znN*ZVv-FXkMTyH(I@)=IL(6dTFE;q?ho+UAaJk<LvGigqWGDW>lvC)yOrxFM! zJ1kR~gg3<rwCpYrN+GqQ(OlZevDteOb3cf?L(FgBPHcMx67h(=707qa34JHb=h%*g zWHd;=S-f#e6I}pM6<Jp*S(MBxR?s&yYnn4lGj%;2moS9z`JH@`rG#Z#E@U<*#x<&N z9^QW^%u8wlY<edP6SF!f%4|M|Rf>1wZ&_BqM#vrOU%4)ZDJHPDWT<oi;2OH51^3Od zP|ikhJV?Gz2esAkL0XGOX;TXrSP*m@k@R<)N~%Y&vYmL@)|jhf`U~V3NcKJ6CYjg> zMTDO7w#jn6x4V%ZWFkOC?3>M!dWl=4=g0(e)NG%?)AWVPq<gvG;5|fgJ{aJozNgL= z8MYLkHY5M608jJku(a)-N{)ZPI31mScE*Q~(T8z|LWyM}*F<ZforCS_VL1S$S1IA3 z%?E}uF&}24ZzhhIDf9SVdB5*$4~TJ&LQkxx!+pGWTaB*^A_P(JFm86ShR-yKo|(fI zbodz_*n8r)2o=Rbr!F{=Ip>XcJOXI@=!e0<7EzSpS`@BYsVh4u143n?wZ=DTY<ood ze4yc`i*t+xGdFZVjFo+;(Ww-4NeKeIkflu=%4)(QrA}>)4`YfG{j3?O=K7_9axv-W zIwDS{^B<c}XZ2{6NUv2|ad9U?FG|^`K_7l}D`71odk!$`jqRXFbz{Ys`^n`g-AX*} zOx=lq$0;W2q@vG(>rT`KY(-KW<dtP6uK-9|v@9EE8Ziy$4n0zO{ILLz$x3&HbE;HE zlu7O7NfWPNGU>2=dMa?jKM}J<exe-z{@F_>=IX-V5Z;zb!*hYlS>=TR_V1x$LEduE z2_z=Cv2ddVRTZ;_I3(a2>;dA6)+Iy|G07Uvm{W|cI5li3o>lZV4^&0ARGvOYF%yR! zS$T}BpZYD}6^4QXJm5f?fEFF{mczk*LV?@;8p<plkZKk3sT}GlztpHL-ry#HmKNLX zXr82isFanlLe=@P9gU-^2v1=cC*{tgBC8g8nW^*c<Lm;morRifEdgqEt!gY2IOXdf zUx5=<AGmrn``mm=MtzExJnUZQ$9hb4&16L(8Iwbq2Rd?cYKH?u>JfZQb5(IIJ=P_l zj_NYZ4{o+^%N_(PvP`Nxbru>+En&Mp!p_ZP;f{VPmC&v=9)p`_6O=JJdfEs54Qjl> z5Il6z*zp--TU>PBVqKdK>hcO2xb;k-3lB2^q-K_J+nhOYoXT&%<gwCm7{ythGmqFF zo0qs_x-)$iu^2L+Xt<L3R)C;|Y?Y&q={e~XNS?z?*DutZFQJ;qVL*)GgKx-?PUFC6 zbL-q`IR*&6dEc<&6KlWiZ>UEgUVgAGv*~@9T;B*gnedKt%oPZ30(C2rHnG~=nkS{^ z8wT_w1{jCuk(ed=L)F@7d1)dE7uR*6H<(?r93=ZDsjv}?+|<JsAHIMo2^{I^8g9Go zSC2THPd?7l@=@k-k9!YPj-N~SNl#K7oEJ1fH~)%==IkdYlb}IQP6e1rG8lJV0V`Fa zs<_ZgEUYeh?y4D59Me<>R>s{iX2N4Q@?{fyCFEn7F~W(VILnWUm${swkHbJRa#|_k z8;y)<_liJMY_xg{w$ncDi%bFop#|Xa7Un&xAI4Dt7E`=4Uw#r>cHT%&cD_ExtztP+ z2i)Sw<ejLj{v4(7SSKjn+t#;E#U>=FDrLa-EZv1AN~ppH%d~qH;6zapO6``TMO5LU ztLqADJ!`S@&{|d9VqteCCu1rKl|;tV2A9D1fyj6$Y)oOe^S0!5HM8IhBzBrq{AL8* zk&Z#`l3W~Ql;&`0=nY87(33zr=XVVw%f*=hiJh6-Hj}53VV+qcHUbRd17n5lD<LLJ zWTLOrTBJ#oxXmS=(yldtA|dhkp)p3otDJWj=s7^YgVVt77VD#XgRCXF@iRJV2sNAA zj@f)@-yui3Cj&Qu=|of$_aog&%v@yC6-szR&S4KS*35adB%Gl6xML&?G+x?-=g@hH z&5kFs6YyFp2`HE6Pqe2jQVIm$0m_{OZSp5pjIk%eQ(VWAJf3(aV$ZrJ7XhUz=cpi$ zjr3>v9Fv*L_y(@ocr1k$aYDy?gwSwFUaps&>CEwPGif`{W8^UMUS{<Gqvg(mc>j~s z>kw$~F`ITg^MuwTa8|<|mfs5D@o_w{Q4PlGNnyJlD`_8x`V%@HrZ|}GaPqdGVe~1J zSCTKm?0ZoVXWm@k0Z%mm!lp$a3+cy8-;1$!YN`n1k|KGDEEE{j9H#<c_EQMuGC}`Q z#q&2ZOP~PK6U4{8;uJ1J3C0+t26;)G-KaYb21$~{gnT?Ol(S>S$^Dh~C(jb?t~7U# zbF}q8c{@ki0=XV%kpW8@_;l!W`5dj=0IHjk6Kz66%lq6#G&=h`%2r)`Luq)H(~XKD z1cb1>Z^1+1nQ;uh*<uOXJII%Jf`Dt8&a@kXBgI-1BQflqkxk4Q0qvqk4?<8?wA>7; z%RQ>q9eByO(X0k^$wnV{1i3SSmI&gq^^dO8q0SUc$LJtE!}c>?;%1exs`W$@@li=E z9Kfd&cphvBP}}dQX4JiaR?QCX<MR(;<b9@0X+w{@wV5|vqlL4MD<5SQlZ4)p@5pTs z#n_++G9TR@h9-Fo<1K=0^%hiHR+`>b9=5Zh(gNyGC`>&BF;wFCyK%Z2XKF)a;7@v2 zhrx~x!bQRpKZ)1T4LdIcob;&QxCq~I+@l?N7Pod-x=8&4@DIa1ZjFGlcXYU$8TVo} z%G@@;?c{%rf?7)`^yVB%f^k2%1-^tSY#e#15uM+nmQWppSbNWJp;Pog2_Aw>gq-R` zglgg*S71FTV2U>VZn;Hxr~L%|LRCXjmn&1;L4F2OY0%Qi)#z*lII*?}sBJc68xB_J zI5l~>o0pbXC2&9v5jeRh!0bVU6GB;QYQSRb=~NyO9If#5nP=V<IEcZ&s)<=#G%(h- zu~6%w?1;s(X$UPuT%Erz8+y_4Q9KbrV2PDzXkrZl-kntBP^Rrz0WrtU|5subJIs~b z+*tcTFc$Z>S4rm4E@d2?%SlGG;&mM^R^nC<fS4aMri-an2DKjWiSf!&q<IkX%-gny zfU`OUbyYznQ+2cfnfI_YPV0$b+T`Al_BQ}kru<h@?+*8thkrZqMi+T6)PmVd*<!Km zi?piCj>zS8#l;YN^qenp!|1d-Fu1IKF0N`cH?$C{(_(3IjTF><@J)zBgN-x)7vMGN zV!JWRwOucfX````@z=rL``~TH%z0IvBZ}?;5)`YCnKy;4_R<BQw`?w82dkKEPqpQ_ zRe5N9ceZ<t&D4Z8#*NS(H)A-olM%A0mNP7h8Bh$6Gsk=b#$&)O`Z@^b2(A#Kty@0X zn8@&)jzEty8xT86Flc-NzDRNg{1m#o;B#`$t&_;@snWNXb%nH?DzLv9%ydp1e45AP zJE@u5*$!~B_RDs_?nI<&n1^EH)CPt#8EhWAl^do%KRzGsSqy!@wGHtry%$gySlr`% z2<V>2kKc7HJ2k}qy$TY`qXN(pswA*G?9PRj_6=PrJAyzbqs!r#Agor2H_#Q*O5>3M z=g<O<DRirgYLw(A0?x7Y#7uL|<3;<-i65J{#|bfVn+Z#PS7TKJl;Tk7g3HSMy5h;c z@~s$MB$lxX1piESsd=V132tD`>yRdLdjQP|b%qq2pq~?_IHizEF(>6*QD?L0?(r4I z?TUxf!uwn!>tb3dt?)dP51t>JO4=;#p;d#4KPz)nqT0O%e<!77B;sdB+$VBMq}Es# z8%A&llmdmz8L*bHTrD4Juz7YoND?njpn5`9U`WHla=A<vgfbyuan0UDYDsaKo;9TL zyhyGLb<#*U@do|eNn)Cu2{}YyRVDCqddV;)Ktdo3bC1uCiCUMpOccvrzx<EmXa;I* zaEpse)GF-W<w-Iy<Y+bsRjI>l+j3g6bOdXpG+|ALT+)T!)2H2UKW^F^i)c?(7^Ir> zf(u_AW#Yl+%D*abQQp6ORK0a4aMBF(v-6;K_%TtOMWToF>ghQ;y+;~HWY5w>8yHe% z{LMF+S8_$JadcDYZL6UXr04>Gv9}ofG1nci3diO(>_@AKRZXE2z_-Ds+k(cI+s@_T zjb_Il3E5z4gSNE@050^;Pa;HDC*btQPT^8~#r)fc7|=K!X3=lSJHc!RnG%*<7Mq+s z;Whz6Hk$*fK96yVieStkhV%e;oRmhOG|pLVaOl}0Q*h-{WSh9CW6+^6AU?$#5<HYN zc4#`3cieG{6OD(e>fAo`9WCm@u<dc!d0nT!5=S6M%m6=toZL=1^H;1^cZP#z-btR( z`%j<R1j()fretM15P_h=?I<UD*W6cIuxp7oGLoD^rRnqy7)1G^;2DYUxXKSz@!=dY zf8`JbaAB%0Y{waQ2u#%B2cAezUMk^g0NUGV`OeBCJ+x{G9XR6H3;?(UosOb$6%)lA zUw#ztV4g%FPJOgg#d7U89q&1^$ubbTB7eveG@UuV6-!mgk_JH8e|7$&R?CyxN?c&~ z_Na~+iByCJG;rvt+=*YNCe|jMWtid!A8wrP?k0<lEF~05+NyA;V|bVVoF_qZF}$@h zfGadfLfr<gK#C;LAl5>ONUo?>Kxg`mFnveMEwaz;%Qh%!I-zNJCfq1syUTnDw*t|4 zHhlzjD>o4fNXJzP<m@Cau%-QU9i1ovQmIUUtZWztK%?n&IMxi<n0%M5yJaFn+ng+6 zr>L&V9XjqwHV#1A77$Q8S~`(XV}})viubI5Q6--&o`nDpa}s8Lg~W_OOXuSGl8FMX ztOIx=QXFdASw_Q6d&{oYBXTNKyE6hZ-gXi#BzEHcL}m<fo#~;GA;tBi8b{?xdm2x3 zq7foVP~r^EpPGmm4LqQYS(*m8O_-rdk#9bMMqXq<MQHbvj5^ObVQFk>pvbf**@oB! zm9%9s_RnT29|3iBzHl&j>>n^Kz}6<<M9-6u0Uk6jWEVM$wNco1tv9Nq3zH{z0-glw zh6H_tC`df*fIhr64)U?o<1i&ManN@IH>WqX(@SN-AuXpf9)^i&lXDuUplWD#eqi$9 z8(Nm-DFoP^{&%&yQ*6>>>Tq;C!&13)gv61ks_X|sEcwbjda;)~km;HZgYUo*nm6x6 zN+4#Ck1xrMt1QeKbSEvEYoT@V0#wW3rCb2EPX%3^%(zINxzj-ECStnD>XzrJxd(Q6 zx*FPpi>DaF-ySUc79Sm7^X4l27DcK1bcW9N3)m%<S8!gYd)IZgvjjyO5h4p6Y0rq^ zZHT0n+m?q_%PXJzu-QqaOngeuo0+zv`E%P<J;s%xy|Jclg`Bx4Yn-BLp|WQ<?^Z=r z`|Jv*+B>095f{1Y${)Ml10gxo8QEKnTjHXyu~l6}vG;iwfNVe6c^2Y%TQRi-HjHQ! zd<{{Tdc!5LEf%|{$gP~(fFN#HtZy{i#jXRD{RJ9xHO@~7be=#aC{o<pRE}~GZ8s@Z z){^ZYKSy0j<7EHKd`0lD(^t+7H&AY(;&zQVtGi(kEMar|yv+X3VD*gRsmRX>CT)jK znSe#5Ci0IVtm!gctttZB(Ot6XWC{RU%w%vYXH)X-;<qU+Dxp;EUMXlHAHGMMT1t<d zpqV<7G23Ff^KTM+aUcPj_QA;_59@$~<NXL`$4PECBhJMRKOd+us3qA^y986UQy_K_ z-A)2h1S;L==I66A=NTQuspx2KViKZEd1js*Bwf_T6tyatK_qtp*yIAG?ML@aC#r6n z;5N%{w~Q&fm8k7Anx>O5gebQ;-hzh#cJIZtv8k12q)d`0+1n{Ot~l8;EU`9f5CxOo zwT4Ve!dLSluyGeUq-m!QSJjYK2!iD-3j*q=S%HUQ2HTaCP0m;yW6Ka=aK^fkAawl9 z8q&ZnZ#gPK1^@(d<2OZkb{k6R$}$i~cm<Q5Rj$c5g_Xj2j*rWKMQ}I(ENmWEQQcLA zYXQAbg0=_Rycu;?61Tqz!6HV!aDyn%P6dHX&_RfeKuQ~8Wab>Yt4OYP1(Wtk_!cQo z!Je_^HXJz+<M@db_HMQ-tylM}bdjws7B{dVr`QZ0>cG&suR(IT8#7`{i9s9Y)>ZCs zSWDe>I}!kDtpdbVBnq`qb&f50qgiQCVAaY1pbE!l%7)%|$J$zb@9LtqysO>AtQZ3~ z)#ua7?`ck=&|=2^Xq=@<Wbn%18MyArxs@Wo-N`DI)m=?zA7%}hgM`C8AlyNGqK}P3 z+y$;1c6qtgN|ZHDY~#gQA%8wZ4{)DPnNY)DT#nY<KjXCjHu03127YOvSIoOf<{<cC zL2_hMKH1}V2Gj;CY-2rI!34INTFderF1pqUkkefQhl6$?!F{O79keiW;bO3*s!H|> zD5yK67&~R4Au}2+9$&o=4;{QkO$N(Hmh_=2>l;YV_Bym12yRH=PNhz;M(&wKlp2k$ z>M3W!`I+uaVK_vGpi*zv%}ufzRdrJ-aL9?ozxS~(u@*uK^PTOW)jO{+R-j`503ZNK zL_t(G#A8H&q_*AFX2yNjIJ;(3YV;;0UPJ>oA(!ex4K3^2ER9zK-Cn5FjZ>%u)s2>T zqbox}v`x8nl2etv4hBIgh|=H%f-~tnfQ*eQH61{Z?b)ga=EaH|C8X9TiNLUX$63>! z#dpwCGU_iA)GTrr%I><z<uq~)TdCQ$N7AF)^6^q}k%gw#WG*C5ku7!k;q0>}hXqfl zLsA8yl2h`M1fvnIgRI;bCJSOmLacQKIs$tE&TLRp+E5vm&PjeC{RSo$o?&%HP#aTs zXh%)=4SB9(wY0`bN_#QdxL6+L@)W=vptSff+cr_$2$h$Xjs-T<-6*kY?<QPPuEeH( zyYw){<~8ADoq;&=sz^Lg(d`1jMQzXUA-S$gQdL&Sy1Tf*<=T--%CM@I;ls)mTy!y> z5_v6}@9MZd4$xf?w)SGZ;L5wcfR~lC)Kly0XsIin-m+T9>Jeb3P+V?dC^@N?R1Kyk zJ`GC2j8P76tg!9l(|)rfK5+w+{TWUyU@jF}lv=5vMY5xKntZCOx#Q!S$a-eAx(^Q2 zfOUc}pMR(xG&}e&CX*fYcQ2bfYTS>!n5ChELRM)QLy^;JS*XsSL+q8LLoFA>at(4! z2xmI8dK8L@$e}!?GtLN%bCqPPi>0+SN8utm<WinE22LqJ^^`?0&Rl?ta1NUX6FtEs zayZolmS)eb>80aVjSvNNf$n$$r(&~8M5{+5!)MO@d%{!)8<hw+Y$dCfSB;hh4wBMH zKx)nBp<FvqXiW;e6EV7((c*7QG+0MDA_>~k8Y=SDTD7UZEldD+0{q!XOrVT^vt%L3 zNC42@&Wt%rWiOESVA*jw=k3`SO-C~s&SS0;Z8}iK)59*r@j_W~mpvwwR)-#Kb!J)% z5jhLG1v$k4laD>uKrnbWifHUF%9GIx+{|>s3Plu-+sVwfldmKnE5o?`R69WtK(Scr z2C&JihJ^<T%c9nmzL-T_AXyqLK0X2_5GUy{PRfTBli%e!2>>nk&bT7m)n3q$S~3Th z;yw{lJG#3j^@~Jz0<nx!i@k|rX9$~Thw6f@#nRrk9ISGnon(|{fi;sFXVACku_xVD zBEzGgC_rGh2j&KXg{j8@Bj)kL2#aRLQ=FxM=FB{F*&Zd(OgIJTs+5|Na)4BC3>_=c zk{LsiRk~8{fVtt5%r$K%F4Vm$Sg~$gcYn8mFlp5@h@p=JromGW*`C?J88nG;?-zN) zq)*^})DBP;y6Kf?X5Z`x5<X^~m1_($OKh@7K^@kq8oMs-gvUyB-+n_!1P98YdjM)Q zc5)VGO6R4_qD$!RgCu+M%bNGR1QoC-@@l0<#ny^*@xfx^QD`0q8wsw_8p6wl<FQ#< za#Lv0`6jK(cAofwdG9fi99nhR&bVD!l2GP_R3NstZB3_kZLDYef?W1MocxQG52qcR z<^FARCuM58-jV_vOyE4u@|51Bz#mfb*YSr$w%b)hQwox^0d1Fh8ilK&3q+S#=*%Ue zV=&c{1r5CvE03^sc}M4UHH%*3R6B;O>7oO!me?71$Z|(8)aYASV71K-S}x;3Nvl%W z*wU2=vVQH7&_&~d1vRkKSwKn7WY_?;oEQ)c9(uqcKI45~>6%^NHd$xv-(NHZf_ zEuysmp;LKKv$(9uF0D-9NPAVK@&!{eS{mY+meS$#T|G0k>}BL+bmW?S2P_72Qd&Z6 zU5V~2$YHaUT7rZQ)(K&!s2dYJhZ0yst5We&fji<UA}~=D?pA|rLhL7MEn^Y&s?;GU zMQ6%qjF0pGP3drUbRyJ{Mc+o<W8hV2?MmyafW1QJB#9ax)cl-6Ggf#HNK)@W!qh7F zsEZ2#;J_;dE8WeS!YII1hjV?j5*q>Z6wEzWsDOZ&4(HyQ=_z*Y2vMuF7jYE;ta4XP z=60_YnzXnItl~=l(c$MwqSmDeM5@$1#b$Pfo2#*QU&5=XCGCB$-LLIHrSi0L_beSQ z!j`ec1UmEX5V8L7@BY2bJJrx8AZ<G}t5gb?f>Kkq;CRZmBe7E$_a-JU;$UO~rui8k zcGJc9;|z?(obIvBiJuV5`3zsh<2{7I!m)6{5#}bHFe$Q@qmv{%51u|;P9lAt5!AG) zOBRM0$24h?Rq#CAH4_~j8nLL<*C%0UI<ST`cZ52DPsE9-K%mY$aw6EWeJH2gAqO=> zQ{_NTiP~5nXGVOddG4^C0_cWlpWGn)@H|RV+vPyA4X6=5=W^%pjn<Ocnco<G&^OJR zrEwhG>dZ$8ZGNg<ecXb}`q5cmnF%=vP)sUuSXj9i>g2K#4LV%{lr}=7S->{YZu)ja zG>4UFY2NKbtAtxFELrr{Z1GN(z@e!mb#<OS$Y`F)Lhs9{ngVWE%8<CiD59ElMvb%K ziC|ZWp8e&xs$(Y}UBq->JEho_BFG~fQO|_~76mMDSF(a(elQp;2y6KYYi62q(3mAR zkQ$3g#NYyvz94^Q3f@Xs#bjwLd?}ac^VN=%oB<7;7Cl7G25q04vAlyQ6Nw}$#osEo z8+b@)YSYXhEX4QcqPMFM(|4sI?VaV_@|?;jS6OHp-RKR7tD9<7gPq;U#@03V$)<PI zV$i2S3(tsXCP57piz6WooLUt=VVr|hmmq{`^szZZ#N^Igc+IO;k&At;BCwXOT7Zh{ zs>NDsR!Z1AEt7UtMXVHz<R>B>oD$m6^=|FGcX#XFy<dIz-h1zT>%OIJOE)~^(?yM; zN0Z4=s4k@-i(J3|o4;e2H#?g~lIrf+aE@a~p<2L}HqlfA8`!CLR5Cp_N289zxF(hu z%oJ*(gNdE2c<RS|rw5tf{NXSVbNBXqJUoSYRgLRmd2I@LsGzjv(=0>|Y9N7+3gNd$ z7(ga(#BpLS(?=zn#B@<5y-1|6-uLPApNiWM6J|a#=El}$l0iBz0Hh|~DY6D!prag3 zvk;1(bGC`^Y?cyALUVHYZ*<a2IlX{yP*X|m%62<9#^xyx_52g?JD@Y|lf`7|9Zn#e z1XCOd$YNu6CE(2YGvC9(IsS_C2JwaSHa_ZhZG;^3b;O4gf+7d&)}HyGe8n23E68(v zmAzrjmWtHm8!V?Hh~eshJrTYCV#oi}*{9>6QYMm9LuLq(83qix{ix}-9+BJlEH<u6 zDZCm*3X|+Bs30511`&gJ5`TUR7i)o@IubJa5b*>uE??FnqxxJyX7AVv9%gt8EYop| z9$<sV<rcX%ob9Tr$$5-yESL`p1VC;S_<v=+>5?5yk}C#8@|ww}N7DPhsWd#{&<_Bf z$t&8|>|)iaTq1md!<Qf*@ZjnBb?|gG2BgG09g_UxPMov7vxrkmECb4uK^#h#oXxFr zsEKP<A}~C-A*c^V<jH__gNRqpuy!s4XLn_(SpVm&du}L^u1E914OjNFh)quMH$OdE zpEB{|zC)y`>)4%>-p4;Y4{@FY=ntMhwhiaVwcL({4t=J?|Kj;`o<D~V`22ZV>+R7D zD1B#_fn(Rb09KeW=(}@&e|3LXKf9(G{q$G*<xrs{7++;Z&AIoXU_Lf|@TUub<ckH0 zH+^@5H|10PQxZr4^?uai*@cG?QnQBGDJ>US1Py(55AwJGgSk@SiutrxkOCz=TlvGP zW9Br@NLXNy$B;;mdM)xKxzASpfVRc4OtG(gqZR|Ilsg-xxF7nG#6x*<7YO1Rrm-WY zZY_ASRJoie+{6f}eQ>Q|=ud~}?!m_8;Tf4wn^d+kJME0kYwyHrUVIfeJ&n!5iXEO8 z!GvCpJyopN@fdcAIGG0cI{Lm%gLibl-Tg%uwpny+EX^YgKwivV;0cU+wEjS7nG76{ zMaDqjSK=hLJ1BT&0^c%Mwp$yTH^eUWr&#Aee<U(()Cc$jfq0CU6Bi_lXmh12h?*HZ zqeQxY&!tQuU$yWPnUhfG>x1|VXT2e#^td+iB-F#KoQ?6Ph$FW>5yVx-J2^&H`O#pJ zM%zLB$4w%bA{~Oj=*q?9f@$QDf5bCLIg{;ywIL~089Q0F4)kQD@y@Y5R4O0>L-_FO z{yDsa^i!uGdTItsgvVb}s}>J}_XXt;lFoTMK94yQ62Q#TKH@fl@s;~xAxi0phB|a& zoSM}e$YOlV*$jz4MFH~zc!r4(W}I{!ObK4Q+02XNpIR?C2q1vtEbtH)e1-tey*%gg zk2;MY6N9|hIMS4VQPr5&qk0PO{5MjDmdrqtKhVKBM}nuIlII*gN1a=d@^BtLLFX?l z$lo;=1;9yY2{X7(;f{_gdt4iAq<IxfDgdHSl}$3pTu#FZ#L1~F)qVc+fBoOU2ot#O zmeHJnCKTod|1oCCp-V3uG*EB!x|$D|2tEo{4djl~oYpjCyj3w?Ry?`euqz9gKUiI= zo3%BQGP>3)a<c4r$8aU^+4XO%gi;ClMq#-*&;(IW$n*EvHlS*R#4RFn_z1d6td8IS z^bsLw2>7C3cL2SwM^_S?Ia)OD->Q>%X|d1x*d3pkt=G&lA%qfe*gSNKjG@H_c!($S z0&67=UB}cn8Y22_R~!=S=fNhkJ`z&1duX1Sm~?C978W+8UjUggf~LuW)=X&mD&|Q? z=pgP2-crV*=7h5mprd(8H!I%yUE;By0j5J?=M{5Puxv<_z=&G*4hZ3s-K|Dc_+vh8 zbDTcWb+}U|8fMs2?8(^AwWAi%hW{(SsC5^4<1moXQ#L^HH}wrfRap)3qku6bS;tiJ zs%<KVlr>=xG@gV!`M^Y@?|M@6#$Dhj7kT$y6|+@|mP|Q(@lq+pcMNgr`ia;Kug9h% zOWaOI$Ha26c^|ns+%xyPE7EZ0HVCi?xRZXAD!BsX3G~WbMh$Kzsl9x%oa*<#CjB7n z=~>7IhB`k|j&-R;w7HFe@nsTqIBYV%2FEepFnaC}-FI}(bDqQV9C{$olX?aZu1m0) z0d~kYl61?q*rYH8rK7nsqx%~Pckutty_&!G_y5ct-I<IFZXPVg^R<(;k4BvSr$*%Y zvuPo`Mc6rwyO<s)fm4b_#%&<A{phhjbzlV^F>RKuR_T|(ViLTH%^Ds$6jC|`V~}SN zN0ugOk7ZbbgKQ4WS(@j9do^BhepXB#i!uQpWK=#-4Us1JI~w9AL_L+7E~yeb*dnDI z-0}&Gy6CE{He^d6?%31rJzh_eyU;`&daQy_>RAJZ%y2ZzhFdD;KIP+ldkJ97Q=Dz) zNcZ79ifnvPoK@O`6e=~74}x!?$2W{YmU|7YidlSPvzim;M_WzhWMe21A`Q>9V|`f| zd*t%4n{FgVCoN}^<E%Ij7X*7G?kv=n))$D(07u(~BTYttYj|7t59r$3O*R2@!J`zt zg;z;UgJN+mv7y!q)&OIc3_gC%iQSC0J%C(OgjP*z3-b!L<^K0vm-3Wz@78z66WY#c z#4LCK;afOV+~yX|JS5_`BLS8axg*tH^DuSYAg1|6!9LE~Na!JiJLAC#$4Yb{;?jgh zgtikpZA*x8E|9Ur<|>GG(}vR+UGiu=b&BOs!E-RY?mFy3AlfylAnY}<DEnuxXLO&h zQmhOOXj?J3Bwb8MQE(sOiIq&b3u_k;$QQ6IDhH%ErW^+(9)d^-&uS=Q80}`?Ev@rP zSbY+mGONXL64(I6Ut6>Yod-~+X1MK&I68FA9pfoeJXJl*U1KvPfR8lyjZX%1h0$<4 z2Io+7oqcA8C8xMZ?1QUeNCPjfKL&t5z3<d?1zitvu9LLm;Mlrs#i10kAxPXvkrJ5* z!t)%G>s5<XYg$B{!94<U&Iz!HK4{u=UkrbOL{YXb>$W$rRXaSfhN%H6f)wJc?6zD8 zbyBE=#w`G$2ZAe$5dyVzRnh6Bx6w6OARc7ZjXPh&2@>jQl>&NN%*zc9K(!;~rMhiR zCi@kjEnx0>OWJG*-_FK>_go^pRkg&j5p9P)Dq0duv$NVGLf*oBZ;+hT2j&LG_+?TQ z_Kt)d;k~<kQDnf?R9RZTb2Ejhf+IOdBVNp{9abU`R=#mC&artPHfy!vjq>A<(au8) z(EplXo7jR<i|pbFSW7q3MQ<)NeZZA8IT&eSI9l23a^jO%JE5vaK086AF=suLN16nE z)%B;^)k_pu;0Iw#uwbc2GqP1r*Zi<EQL<`oHY&|s#oWJu%+)MKCY3;q0Zwki66J%$ zGqHlDrv#CYQLF>dcXD>*xd&OEMEtZzg}tT2M1{}T@JLX`j%F60=4a+9CAWD=;W|)L z8J(4~n4;u&DK}U=0;S7vdq1T6%hR7}@ywJu7ssyEjIzniMUBdU*4%w6is;<Z;2d`D z`+$Z!t|c_DYu!fbi(1xdJI)kL;k3D!a!Ypg`Z>-pB@GuICo{bBW;yZ*Ns54Wg-r~& zMcxBSK!MjD{*EEi3}>X#@A7WtQ7P$Z5aN|dZ`dqFkbpw5rhmNhle|vYS=;wuLs-EP z*p$$xrZtO`?M*N0sne+m4V+tDa<&kJyV30u--sb>MDw5tz*Q?4?j!ItR7+U!xP!Q^ zM7w8A^-%~j`yZt!B9BnIt`tJ96W>B2C%h%uA-L0FfIm1XYs_u%ROBHS+Qom`1n1tV zf8|X{Sky0z3u}lYtYQjlq*7iIO{igR<b?MhF;c^14zLCY3F>So#tq&J@qE@&!<Bi> z;y>Cx#XF4{T%}zcX)}FxB7DtN%D27ZKEx`f-%%Tsu@36%=UwEmkbM%h5U4qX(WF1T zV3$cv&UlO=Bg*D&4(Hc^&exO=0Z^HP%psgJbURDNAttasR?GA^E~NYzKDVqGkQ}Gi zO23fO!DAhz&UuvF+{wTPASLt*%Q_l;>gPw`#|NEvF}(|s0n5%c^Cmt!5^v)#qp9p~ z(Pm_buWqt1G*g5q@EV!{N5kV&fvl5WjSIJ`!G0<E55~g8M!<!g3@Mkh&5lJ-bT8B$ z9G^H%x>LV%P%ODqxEctBf)@o(>qF%jRcnMtLZ^Y6bS3Xq;v9j8GsRB2S>gd-L5*4| zG<A@4S2uvd3l`UY+=`Q}J!vX2qnB+tYW1PK%}xa{K@tP~&5W_zpMK^;9sS9)Tk?}r zu*G&k`Mc{5f`ii1c`bQwv$m6Se~NpDzwxB)QQ9jBonL9-pd51q3kO|2uH6W)JS6=A z?~7preG^O?jVTDi%jT*aA_Xd{(F;p;>U10tL+e0l@vUR!-Yk+5RE>&#u>pG9%ug<b z>K3X@(GTTI>D8&U+oWZI9tx8#Zad@*TU<+<kRxv{tgbYixJq-3ZS)Z}d<@jAwE(&E z+SAz|mPlO~Z>9Zhvq;Vmf#=D|gTiu%HH&N%IW;R)f?4Z<jy6~%p~@-)Dw6Z>hPda| z*E;;VF{zR6Mlz@e{Cp}Bm+OTt&kq^n-z9gj$AEy-`JUF{Mts2sDPqi01m#zQBbG@; zc^0U)9)yCAtyA|7dN30S(OqI(c#t^Jc;^BB?D<&%YatL~<Hwt2NA8imbk^M#Fbc)h zD=wI7AFc%m52#Mb7tc|~>oWyFFvqYR2!5eNi8UdKGwP{?cHLBQ<NLgq(J!C<kymVk z!5XGotrG*jDj9fRsg&J9j+k8h7S^o{Lj=OjPsf%mBpv&-r)I=iH=A8hDT44tuS<%4 z=*^7sCLJ%;O52vEZPsyDc2aK_Ll>q0p*yahxMPHrdhU!$MnW{b*2onL`s@X8n;#Xr zp*_7@F8#<9$`^zB|H<ZDy-U$!n-;Jtp3fS8kWI*R292G1suV)X9e8S8=S5|Noociq z2v{T&7TA~)@`$yO(h(xuIWsf&a_)%~kCH<J)xx3$wd+?==|&5IVtxnu!+C88@CAi7 zo_3No6_(DDriHCpRN;$QBkk2(PhLx{McIXE*k$%oC4km+dw@zfz%EwukJv}fYDQhH zu->2~8xqGQv*Z!es%!L{<p8OPCYbf*CNm70;;}6-Tn|t2QMk=>w&Tq9$jEN{7QHB{ zdCqeC$*y;Tsu}ggJ7fV##d_r;R^5P4T$DWwQdiA+-EKgEBP9{$Q7tHEX|0BO@r!-< z*C#E*%G%nRcz|z@C*t&l?LqX|FZZDqoF@mJ%fMN@L<=M&pOTa%abc3TFKMUr?9q}2 zl|rlKPW`m@DI3N>ggkNfVRK!}8ThPgGjquVL=IHm@F3OMxul{tR-HYx25yolI$$Ez z_3k{5%K$*njO+Vv*$s$0;W!%0kZ*mFHMw>7ubN@QN`^wn<Z{bG2XNwaH_MEz@UT8G z`kCVHY<Ce2;F`(4`VgmO8lg94T~|nKFW&rfBiMJN4Mk^2qd(QF)=J3P&cg$wLa}ht zKmC-Uyl&LmiVyhe%R<)yS?uWi%(14*X#H}8%$@@;ZDCVmS)76on?1uwCqvq0m>gjw z`+#n_PR@+)vz0FBTLffE$-#l=bT1x4Pl}XMYV1ZY5XmCJCvaFZ&!Y0e-->Y3qm<;q zzSsZVJHQXP8qJ+M1O1#=lc(Xc=N$RJdTpQ;oMCeeWi%sjz&|yLvvIgRVwpff?cwvX z`~%-!C~f_U>B=Tq4}y^2Y$b%&twOt*O8t(1q4+c&D0j{^n|t_5QiFw0Ok>b5Z*$d^ zYoa27VIi{Jd#K)9m%!CS?{9K(z&SPco*sjG`b7D5&XJP%(N~MqS2iP*mptE7rCw!{ z=z$@=K}XhQAO|*Hsl8I?*;p?052TA};R`r|Lk4*C2GTbD_1IbWf0Q^&8S7nv3m9QN zry-Nw-n9x%DDU^z%C1Hj(Bm%~_J*uyE0L>?$yG<HUK?KqZtA7T@h}+b$rkqfRYshy z54cedtcJ6=uH!B#<20CN!n#`9I~`-H64}#FlmuI^)L0=C!N_aYlDa5~Mhu7I8Ge^^ z7Uq43IN#@N21(Jh@?8FKlFD*XmVa89RtCET!HLvaE?kLUgi3R~nq`gJrN^8Tw}}=) z#H#uQ>_peFCf7pHB#!=pk4W#cXK=B#FG^fs4TSV<0zt^Oq<^DkzM+CrcM-K<Ab^Q! zU1#x{JC7ZqPYhdZY<*6R0}osjh?>H<E$feqo-7mBBT(l^bIP3o%6tuZDpHQv6;iU5 zm}%R*z~+riW4NE#oSf@^b?Vtl)}cxlVozZ|lEQPKrI1&)P2SFo+tf%iGc&q(<~K7g zVfc-%X5v+#43b~YV~sDC#0!_fm_9dCOMh}Yj&BGb2Bi(u6fjc%04;U)jZ?}T)oTTY z3-lR9O-VwIlz?epPYWUojnokKV^$E0@v(&8Xggq05#nmgsTCga!G?w?P_$`8{9pY| zgT#Cny@3x}3HV&yL3oWk=8mth1v~+L7%4|!Mh}XS)qlXdXt$uMO_1z*6l!TyEJP6Y zN$ZpoP)!ZSTB=>RMm2Ai2ITBCkA8Ad7?8D1LF&S~F3|pQ+$Fxew1A7xG~~WrD-Qw- z81lv+%km35ttqNLi1V)Nir6Ub>h-m26W!Mu1^4+W&KcjX<cYTn5=zo1@tfz6*)pky zFCuA|^Y<(Jz%4pplsYBj1e!60XE4tqhT5Z={uKGN;}&m7SMO%m=<E7S3iuamYR$ol zMm}1rROcn98H{E-Rth2NG6xZ-X;Ukh>R?hrE)1tUgt%05#2l__Ven1HmpM<;YO<Qh zL<?D7#G`_|iHZPZB4yZH1!sD?(X1o{6KElt>Rr`>?Op-nwegviTlbsANd?9lj@aup zM9i)doEzV4nG25EIMc>$P?)=W2f`%;Azm22<+aNx7q)L^-T>Giw@A*~`uXGjl5Ns& zOze6toFGmDO!Ji1@<I*uON)D}ag!n%40uPQJDSnV9gSn7Yce!$I`qw(g!?C0L7k3) zN_bFa>PHR~tq+9*ybrEOrY*NX<+)p;YGVbF1+u0{;*8=wn)sh=d48+72}pB*!6*Ci zeVz!}d0*{~-jN%%zJRfIsRFK)^fE!;ucNE!uJYHYuv&C_%^C$uPE=_)30~O34(%@Z z+w+gS0&sbiKkB0jf`l8J^w5Z#$J-Xy{{Cm>k{5VQ&I*0`h(?6@JW@;~WJ5fk+HdO@ z$BQc)!Gw<LqAeI%@AXPV4UCv6#=iI_ZDVEpz8m03Th8sVoT;km5bZ(<Ky8i5fQdpo zJKUNbP(8In=)^|sOX7jxiWL{1Oc4!%`rreFGi#+_;h^a8LV1Qbt_(pa3%#NQWo|^* zPCrXa&`HWbt~AX?;LV5x#?Njxb+(`a#Y0?|Er>~fd&yn=L&EJQPBJ-_dR7k{+H3VL zhwH5^Nmh2Ogr4K_#L5JV7gu?|^TkcL87(?UKeoNo`YoGF%^2PLG<P2|$eacuB=SSo zjIo54&ulxZN@>%6wIvzYF^g=>Ve;@)aYYK3DDiu^T&Dd9oPazv=D?15<f$#(t?64A zGujVKC(%77hh5+7jXZSGlU$!r$No0-07@58zL9{JeTB@+YjHPUvsVL<v1XB#7xg42 zf{^g@O25%aznS0Fz52~u;WxM*jC51;Qz<V(Q@(Ltg#ZdJ&u7~J{Xr-)cl(!s&6Bn% z<b9cBPoPE2uLMty6Jo<esYFadklMm>Ms%?f*pzr)W+$x{C3iC$zP*;vYN?FW$VQ6D zlu0PZ79>FE<HUo#ByH1=uN%iw9;Ff44@SH5%Tu=rjpiJ}vrnRos6Z!@4^~@KB@d^W zme<?PPFHOA@XzQk%`er=$6S0os`^M#yQ;YMv#QOCN9nVpu35nzjC`^IsA|%>X3%T# z@y{bz33iLV-pkhYm4}G0`oz;`(F-Tz!}B!4(n0{FTlfQKn&K2fK72(5*M<dp6f^cf zwQJs^RJlEH+g)VFMUf13z@$R5s%xazWJe<x9PD6txFZ$-034c0L_t)EWZlz|8Rm?_ zkD`*$hTD1<_^ox-Dnwj@YD4CgSVvj!d>=HIHa_Gc0j`|e3o;K49}Su8aD>|8<{zHo z4*ynYM*tm;K|ma}Vad8U8Cr<CZ>S^`7yB)2>pCNzq~?)6WW<wA@(uwz8Gya3^@@!{ zXDdZ4*Ca$xV>GoB?^1Nh&CJV3pcPP>^g4ACChU8x+v{rpx6HDaDDhewYK3lcp?<g$ z9UDqOPdu}MaOw<CrqBY^38xLF9uFxZvGHXUH_32+-|2-`*My2>An<Eflq~6ZIF_z- zHFthjb2TH))%8E_%$<wfHkl_W0_zsDR3Y}JRhRM&e-bBR03P6egN<O9=*27~FY?$# z%UX{D*ICo|xf@OT7Cwey@bgm@3t-)Ml?-{JipP3LEANU8YOjoqYQD1Ri}v1&hqU#( z#v0U&FLTgbJ2s@9u1*n8?-K2gCiEskPnu*?XvI?r1?zR+>J#yM8|za(6M3CbzrlTM zz>%HjyZo>7T7MhyV?U5EI3>iUr^wg6zmk(BGE<-rzw$cINZSql3cz^Tmb0Jit0tyf z5y9uBZU6h^tk25(%nQ9&SYPRlcJb^&y#KHIKys+#21VhaDCHP>7iD54bHSH0ZDhtc zNoLoPJ(vms#u_>0mlF!y0MS`~q!q65|NB&g&x2w+n{v|VKR(?;oKnIZ?K`oH=nX|; zOz6awWe#h~SVLH3m2Mp;;0oVJwlP46t<<!=u%c$Q>0FW-SMIBg;u4R9;{(g${rUyw zzC=!*sMZ8%V&j8<E;6hO+=q$b@v&2C^F$_oxF0Ms6x$_wYD42uDoDg?yi>|zW9$|y zP+&V_0oVTx%UlQuwaA3$ZslA|Ne0k+ujydYxAi1ucS*m^sa|6+44g9`2RJ8rKcZ)F z*wSQ|Gn>6`sS(G9<*TcO9N`WM%T&#lt+l7<&uH$Qxq~a*@idF;nug!i-|6Rb?JdO$ zHv6dj?&^!J{r4X%uE{rFE@6na;$<^qT~;XHF9YV!>ei|m-;XVum@P{AuWFu?2gr1% z-fDwD?vv5+T&bL}8p+WGlC<*6kG+>9E9+S-7DR<$?`y_hf0ZyvlxlwdesVfH>%Y94 z6D}^{#yUcLIIuVfn+aoH@$<&AGSidHd=P5<m(IG+?(yqtxdBH(_Hr590aUQz;H_}h zs3scQEnt;*jrwBSSJx4NdqtkW4pv3NR(_wAKx@?B1y5jFJKQi-1u7*aKMT4}w4`!v zux87w{m9HxP?>R;!%^~tnx_u$c^~pM!tvT^)&@bh3#u=!JWo|-jc;kwB)0vwAsZ~G zfjd12+Iw)`d+mW1fLxQ>9alm{RFfEdI_BYmh*Fbs*yt;#4_hVU3q2ZAAt;dotVCcn zHNK^zCO40UFL>-3DNG_%Hb_;Eq#qQqEpj*QsBo;i-}M1YoJj9P^H%d%hgFDCn7><U z#f{m480vva@nPu_MyJdzoOF11I?HMTL;E|$bTaugl5w_Lr<yq{Tp1SUqvUJI3`xSa z==fZc@Pf;_8$qZ6Q2LM&9wSOz!%bxP{5S?aHXADzh>tV)PYK;l7AVnX;O(T*jN**u zH*@DV_v&}&{_efMd*|<+JGxFV?G<b4gNXRTsQ}&m+}aC><e%4KA&xQ9jg2ASKaTT@ zLJ2TuF}=Ui9TZ)A&lSn9g9d~pD0;7d?u0(`2b5twXTHlMo_!UTWa_8)9c-rhE+<Ku zSEX5$z$^l5sFCdH8v(8t@amRLKzLoVhkmPhd8s7#xXZNkBEt2E9j~MYL$69nJpu2t zPK^_5*s@^U;HMa)l-xoCD>~YOeu_11XM);l8C2_+wd$3-GauIwTiTWFmf-zFOa|jk z(_IDo8Fg0O=TUbhgk1o&?bY)F0Kvm^FQlV0p=brOMQ{{*>M15uF9c5t3Gttm_SJ_j zhQZl%xoxc)kqdvnW^+ZjuHCvYXG8qxhIXZ5g41KIoG_Y`>{aWK6={`+mILTJPAV9) zb>LE7ei3zV1n|$OyKf#Sn(CtYBVOCxNuFz>Hht=#yog?Z?s(F#K1}r?MW2#{Ve4F3 z8m~wv(B?+mKTD)~_4@EevTxBW`;z^YpbK@)msj{=Eb?TRC4iq&nw3N*$btRU*=}U* zEOYDdG!LFZ_dQ1Ph2h%g469d913n-IeB89yqc*@@X+k|1X~#7e=x~)0RpzE%y7+k@ z4MjdFN<R&|<AaJbEwQq%vK5+fRo#_Fa!7PXzx%s)e)ry)pXT0s<G5;~k+O-1H2748 zBLbE&)e<7~h@d~wb2i$_zEybwQ=3v<6SvDIysT0ntV7Ps*KZ+ff7`$GIxs=v%d3RB znHLtlWZO&8*H67>F38p4xjH|oA#C>WygJdZ)^<kCyVXgadj-2@d{+cmi#%z6#aYAe z>d~%3`K@Z4sx|RuQ~Uh+l1-H*do>ACs#Ab`J|4)n!F=|o(eX+y<fU9^1wcE4uuBwd z5hvJSwL)KIdcDz`X!3e2s)J#5xMY0zS!SHnMpKKCET3<5{o3L#MNbg$W@JOt15kzz zeV~ug_qK)GQjKb^%#C{>Xy6f0AaMKjBmD9HtfdRe<zvRHHWM(DM~_2e`6b_Dc6B~~ zxKbEn#=J_yc+-xohAUOwuf7nzxVaq_?J6=FR}wX<D=u{*kURsEwC|bQY4v!k6kxMX zz%(2p`}X@D^u<<Y<Mj8bqqZ!WD5n3iQ9^-Wm7~(|m1nNn%m8>+v|c-%i0Q7WsVYv9 zXayE14cwZy9MosZVKhBS&rfK!84Vx+;n0ImoHpz7lu}urF*_dtiYN0jygtcOlq@!k zOcPBDML8Ml6lu!mmlG?i!l<JQRB}8(mY11y1m)nLu69F_RApVQ;TbkK(rB*qcjk`% z&ip)F_1@oHM@OR>;kFH8McZPSc}XE{leAL*YST;f@lVVP-wl(TB$T|6z-Koq&2cN! zpsd>S!rFE=D-IiLfMOu5;%rq&W*;V#_Tux`>EMeW>PU9ME4o371?D3p3A#S4p$QuB z>T|0a*H^YmipK9lZ{%32S-POhV;)e0IiL7%`$FR5UW2r})cUz<`bpbK>>S~Y1>Psz z7oLv_vTvE?4n_V_hHf=jfax}ydQVrJe)!uCSpWEjDx81bNVQv^(NW!eWY&fpH#S6( zn!i^8>?_3|iu8R=Sw<}<SuqtSt%PnxLYI<}vMB6(pN~*0y!<+uIsgqr>-{MkLictQ zz4U1!iXq!#ZH|3QH`q_rN(4YWYztK6x^?pDtZE}*f{M&_a`9&69N5`r@m@3_t7DjN zl;QOIX_xU9J}h50vClke4fMuWJ7e2Uq+WJ+Zp(MzQt+cDwZj)8PZw=<VOZ;+mOp-j z!aTR%&}%ZIAun9kXauqDMobZ=H+8j{@L4JV)9IDX=4%tUoJoyb#5)1}#W_p71_(~7 zG9z2@3{{W#*1VOWEcI40n!siZYgCSc2K*DKM?en>OR^^R<Mn9W_z+>SMrJX!jUV!a zpz-0xk#~mC@t_vBrb?xV;j!j&ErWhDf8|`!@80;L-{?1~zPrk*2Xqqp#GYu-9?biJ zogoL5abkapAi+AzzLbNCI?S%>>$ft;Yz<_W|HA|OHoMdN$-=b=bc=J+W4{2Q1@n4M zw?4|RWU<#bnCm7&)G#CzYels;_idD+xvvRKG}#6F2zAZv``~Nk{W3G2*8t6QT#BHr zSk|r%stA_+Mnk!j-pF#@Q|sVLmO{H(QK7<xPt@_MSfzDExzVkM$X#^Fcf7({y^kwn zCXFpze%aJMX8a8af7pv_RJQ1$RyXKr4SHX4ujs2`*{YmD7ekBW8jFcfWHyJo!%?&< zNC>zR=Y<5OSKM*zZ@O0V`0PHyN4fm8@wH1fVKhsAjt@aRHn~#$*^$p5uJ18EPlw~8 z9t31`lH*bzARp=J*`y`Jz4DZ60%K=h3G<41sUC?r<|BRp!ml>XudmTtwfEVQxSx0q zow3VJRphc)K4s}lD|GoLEkUryb~O&GpI8;;+6%5#|B>T)0|Nj*#I8RxqYRVeIz4?% zQwc&pWTyQuvsndWJhp13?3`nZ&em`?j^<j4`hcoLA09x*sIf1vovVw3Qi6JH4o+fL z7hxw=#ai9;G7CCl){c<b+E>Uk-I~PUA}wY<fCCT5HTJ2S5sIB$bl_?%$;Q)GXp|Z{ z=_kyU&xoDh{O<jG=O>>Ui|g#s;N7~9u_8aDMPvKAh*);k!2fx7KK9yQkEf{M#)9d+ zKEhGgz~X(3^;S%L)j%UZsAPMmI~>MmmH9vh)pi$~eC43VOlYY=TvZm>fqa))@f)hO z&Qti54P)nJG`fImV%gx+9=rF8Y(>%mPm?5%8E)m|huEv>V6OKD3v;~4$`Fi-gB8Q} zZd3r!T4+=O>g3KoRd7Z(@?!+q-C-B;B{9OJ8Fe~hL1>(pyQ_QXx3rcb$=%9aJwe6- z2ftWj$(ebtBkc|*NQg10qpn5G8W4hR#5<#cD;YMrQ|X+s=yGEqptT~K_tM%4AR$HQ zDI8=@<MSFWgBJn3(4W~!4(!8acy0r<q~Vf4x93>hi>>z>(dyF9?UR!tQ3zZp_1J|Q ztE9${t?m!~)n<tm0}*&~Y*T#T#RMiwLte(&h0;ODoz30{Uf5pOKXD;ZBdCG~NcaN` zX4jxSt!08@QZsem$gWvB%bs1Bs(TQ4Z+0N+JOJ9#Uj^$H7eWbW)i^R0B}}tPunG*c zfv>}Gme56@)f{h}&cxZXpF?RDLhx9`fDtuCn1|z9U1EjBM`|B0$p|@|P_a?=v#t{9 zpr_?q{g&4$0UsBN=p-E7kwfFbKNpvRQZ$}?W7!lfSX4*VDY3s=)UDs>-ud16d-3<q zU+8yr2R{>b&CM(TW9gLj3MK7wEAGun99&7j^Pm6oKPZmSB8GM>eQfBeQ=P#JmH)N2 zyI3rZkRR0?p&*4_)YzB>*L7}v<k+Zx>}*Yf*6A(C{RF{L=&3jID@=VrtWEH0<P&QU zKKSV$hZTx#J#wMy`J4j5q&R#hUoHuNX`R48lgeRE#b7zsnHW1Yd#_CJ3_y>2c^9Ot zO<#*eb9leqjn?}AvwOvs_<R;3n_4Nz$`k2;*jx0MK3SmMr7l~VRr{d3r;YaX&;BkQ z^n(3XjsI_d-tAVhmO*RjA9b;=KG*t&FN?_}Y*kw~;`4B8-6m0QWc$^F{HHpJ{Qs%X zPF5mPODDpurp5q_{3Q3eL%d%eF!`8Ik^vx2j(=o-n7uh~Ba9Qv^*=SF!7*K&M&f8J z@h+PRW;(GqlWa|EW~|H#D>3pQJ~d=9<Qf2D!(O^9qL{fouYlgKu?#vh7ELA71%G}h zX?zQ)^@nk44OZhfRC7_Kh&@95Pn6lG;UH%t+Kw?aJbj!zt20?V5fgn-Ek>1zE9Yol zTl*C5p^XhmgstM8nis3jLNL30v^pf9Kov@Fh!*RTu7Hb2^dwaESeAS>p8eyhZrzdR zF#KkIGk@p)?)+x{{_fv<?V0}P;?De}JM%%9o<WtH&8fb3-BpEiC|C38FpbZD{`<dG zWcOxKxS68-aNcmCHg1WB*Bli1y_Tr9Jl-;^_2!1v$;A3zYL`8VuGcocp^IN_9fwx4 zYQBo{-2}3%)Y`Y2-9D4;wT%bsb^5NMhnIQ7GNr`ISA$KqPoU0CDI=}B2H@s=`y^Hs zQ7wYR8~eIi$g39Mt{urnGpsq^aE|ZofigL}ZdJTQD=YBclxom)B{Fr7@oQd`6^1pB ziFEi@wAqXTDO&aM^EPaYu#3<BcTb}_{qAoCB{B0G-TL`${K`&RY_VMsS;hVWS9<Wh zdE=OfBl;euqn0@?>#<K<RMU_1V@@I)WLg^cplL1RECA;*cs6a*j>nB04l-A??uI6m z_L!S)x&QHU#DQq7;>sCFz0${dRxQ=UWLL7NA=$In0515j22BEt6kOdmgpJ4YQnm3m zFx0!IRo_(vAgU4QmJ=QP;U951J8AHx7gK@|T|8RTkN|^`zmkLYIW7n3A_~C4pHRK$ z<>mNlRRbeb#?NcWYC>wMV8prmB0py5Vn(vpcqO6Y8=kL57gXxSeL;7M)V8r);&vxA z6|!51o))1i-bqw6ZqLsb84Pr<e!?BOuFlTr_qz^{{?5Il-@QEzC55|P-6DXGp+##n zDxI%m0Py_RfBqBFWDPcWGA7%eV_~>zZ3XK6?z+29N;GkXY7$?k!q+yeBCiX<{#Gqf zK6k41T0v+_ZkkEHRDP_;2X05@lvhY&Tx_&vgRsQ=4d*|VWNUolgLyiM0EIuoC!S>H zveiz!f3zYr3&T|r$`(q}6jgT683)Yi3O@h%<D#Le%x-?6S!13GZ|!ip@<KZFH<dOk zU*P>c5XJXMiB$BqU_XZI{f$x;)l%^vxbRsJy#niXXzbCQ{Ct*WP^-B>yyd11EHTbe zbl$}pt30n>!}5{hh@Hwl6-P}6WcWijAm{Ujh<`|7Ya&6nFf!9E4Fh}Q3`ZmhJoY}U zB1Y)45eGdqsOB!F7MU6Y@lmc{SEv(r<xP8@$^;3z%|DK<c!JJ=8hI)E9f@3Zu;Q0u zfY6R8ZPE&{3qGND=&aRy27IcnM29$O<XV^W&lma6Lcodb7-6V693Om~b>A>38~4_G zy}sJ+2Xp$8r#1#;Pi(eccuL%qkwy&z-_yrcFTSV=c#{B>8(*s1_3j%o?oWKRFWYgF zM#_=2+s?$zfcv35@K8c)pd=-mvosu#!5;~ju3|9X8oH6(^Ez`e9?39B$E)UlT*2_u z{mpOY@BRHoe`o$j^LJbhel4iuVZpWnT(K=o@;cjn)*rcY#19YR`9J>qzx4W}*Dweg z_@wwF0GYL0J}0lb-XR_$D#?}N@&ZvkjnSh?C!cAD9)FN?-S9OaX=>l_z7K~u9+gdF zVZ-YI7^*sCfJ2Sgqh2W^hZ04Lo;Dd%Yc6^7GQ@{osGTg{%DE#?yzi;5JN~a?uwuz# z!B>X~Hw~I*`uv!Kmpn%uBciTVCw1>C5FSSlfIF=)gRA0Gge6WlJ#^T%wc0&vmg^$c zN7+KG`zwB|`O4c7#3kXA$%=2Z3*6^L*apfQ{$AoWC+jdP;q@*j-KIVB>zyIzsB+z) z6&R&nEAg>*4Gy{?X4vDqWk8?^XQ9(VCYc@UYIM_kEHL4JF>Hpv8Dj686l;+h$43c& zk|I<_TfbBwfp@q(UZc6_kA&|Rw8#T0!5Mubj!HOFaKjLf;905xEO18ch|GB8IKl$7 z*kQus7B#1DYobQ2I@0GYvdYGc-1DIKKh;I3XCFl9DfV2vx&jj5&C${+Z770?EC0Z3 zY|Ocq&ZQYAWSs(qqx{KPFjv{cxlO0b9TyoDplg96SAVSlmK&cdq8a+I!Ag~xGgA1> zH9U1arQdAJ{E*Y?1C8@9g2M9`Rt;yM@n<1DdkFW8({Ew+Zro9ZdH*ysbH{ab^D{v= z^FO-3d;iY;JNgZOb3^Xgj%J-%`7CDx9iFab{`c}M4U8?4&wu^*e_YT>$|pQV)P@-v z3zseD8feOl*vq5x(A)qc8hWi(%@w}$3mgdu$Z@ik!#w&XpzEa8j_j*eRAW}UCbfDW zFHEPY)|__SMlT*f$Zt`0z2ClqaTnv5;%&LEM^8<&dY*7>XrOo9Sw%mK&~83UThvk$ z9<M&E)~?UBlfnAK-4awP{;^$t^UA=ft=FD{xCspNg3@m13ex^x$V_(k8>jKz@di?1 zR+oXuel?UTCmh99T>u3398B$s*~UufVI{G90VBl@>L9_ceDeAgqgcc#!Ln`tFO!Ix znN^ic%RC<+13)}G_0n6_Im@#4INcD~BW!5K4lJb+0!8RN>T0&px^5;&V*^?$W!m_B z4-s!8m3My<&nc*;Y4ne`_k>oa0^W&@_|y}lET4nyZC%7tMSQJ|#a2)gUPs^|9!yUc zcgp==fQjAdwY?DtiFhj^S%7*FC&c*3^c0gg^f>k1@d&7D#@JDQE_V}{`lFRaKlWe- zcm^RS;*jbw*Fxol28I^~KupZNu5QKA-UA}XuB4cHGB3(*I3%X>{T#zJ0+v@xmr%UY z9gO0aM!J(<ejSx0`K)nWm4)e*?p$5@Y@-?dMs`T|&b?_u`aAbG_@BAInZMEu+=8T@ zW;rn;3Q@kg#@BFVlutKCHpMX<1n>vNfvp^2j<+G@-pd2|MCVNKb*ES(gH$;Lf_Q_y zo^PnK))dGHk;IR-c^rgJJw+BIS_m~C9J(+;u~TX%DF7E84RmnS=0V2jNjxUEqqi6T zzehuQl;>=G3GXGK#}Z%Mo@9%aP)SAJccSR{Y68y#beLU@^*Rv<dmwO#<0Kic(UC>* zWKFZn2RFOMlntY?L)oVK*|=;dwKv`CjYVHuWu5iVxe1rYoYw*!)(TX=0|_aZw`ofV zgYOI~xjUSu9361fcq7y|m%EhSBK7!e)y5_0DKuFC>Mi!kw}+V7-Cv9&g54dx`~7ae zdi)CI>~s<nKnPN$nsOlEP&e}*Ynda1{>>!~q6uM$>^bb#@=se_lE7fjJZvFv<_UO2 z$B6W(*XSnHu)fkH$WvTNutkS#!9939FTqUi7;qLaCsy9&u>PqPL-Elf#>MwajIENu zz(aCKpP<VsF(Fshg|%8fL8Ne8;DZ8CLBhi`wr{kh5_jCIaC7+6(HRZr@F){en6mKW z^r6!Vb&&?qu@tVUU|pc6`85_90B5^#2v9$O(zHsfRg6}9oN1o20DznEK+;pxJvFeR zj)G@+&NFjFr<eph^uZE5<nIi5p0yktANM-PfT#&w!aUY_N+fG^&R^osfCoR)YyMEY zF}?VJwv1%7d$X&RsXH`U(w*yur2i3Tbbr5*{wg!u-w9kKC$b@QM0%|Z0A_>YiYN9o z65<lp5F2)<$HNCI_Zs`Bvtn--H0i+2eeL7apgF|u0;xQJcQ9#^$e2KqvvyFxVM{r) zW(cFr@WYj{<Wy>oEs{MZMJ2g(26B1%IX?Ftx7NoIK`LY0da4><n-&RIotm_r&Y8VG z1L8>xpCc<3mg`*|Z`C5mnE5~-`f3fw^Ii_CEh&jce8JH<DHkV-5E^U9I$3m>Z>)dK zDxMtyg=*&Z;p_0JskXs!O*?@O6JWeWH?gE=?#1|iD=9lAdCYxn*?|w1@Hb<AZLeAH zk8IagCO{!a9DXE%YV7KH%-v0U%M_`dbm@JP!KDWIPqS_OwE}!8rKN-h>B3{~ja%-Y zXFj1D4|?pngX<-X#PwMbWIF{v!=yYRzE%zqB>*?|nth`9;MqQZb{oP`z9Rq>WycxL z1EAB=j?ov}DfAKPEGb3&d_B`pgonw2;w58ks`5!?j~D#Rn+pWa7?nJpPK1`WyID=y z?D=3&8xSx-jrjnIp5J;r@#)MNyWC^O6N$$wDFBg2MT35?-P5phf^U7Co#2B%NFWZ# zvM&VAdO02O4zEfJM)prEapyAR%v)AR%*g)2gz}*zJ!if51E(2gNDzl-W;2i^xkniL zWQui2kB^3h63U;sb2xNW<vHTz%<<UzGq|=F0w=9UgOuMfQJC=4T+I&}&2Q%C9@s%@ z@CJnL!Qn_4o=&xggYdX%sN;)mmL_Elov}S0E=5xM{{a0yYht+kZOQ-u002ovPDHLk FV1h-Tig^G4 literal 0 HcmV?d00001 diff --git a/editions/tw5.com/tiddlers/images/Funding.png.meta b/editions/tw5.com/tiddlers/images/Funding.png.meta new file mode 100644 index 000000000..b9caa4a72 --- /dev/null +++ b/editions/tw5.com/tiddlers/images/Funding.png.meta @@ -0,0 +1,3 @@ +title: Funding.png +type: image/png +tags: picture diff --git a/editions/tw5.com/tiddlers/images/Marketplace Banner.png b/editions/tw5.com/tiddlers/images/Marketplace Banner.png new file mode 100644 index 0000000000000000000000000000000000000000..51275547aac7e149fef300f0729e82218784129e GIT binary patch literal 90753 zcmV(@K-RyBP)<h;3K|Lk000e1NJLTq00J-o00BD)0ssI2OuQ^+0004jX+uL$b5ch_ zAW20-HZeIiHZ3wPF#rH4k#&)~O9Md=hre7DMI#Zku&@Xct)lpVpp9UHL?K9s5sca- zXC6Wx$6bO1TfsJ<AlmpU^e@m>uoeVG5yVog6>U_`IU^*9nPqmq{q4@MI}1uAqh^hU zLCEF`dN|;7%|{npO;0#baMFk;rW)ErC={fwz29Q9;&s1OtNyuvt#vtJs9<Xr9#=KJ zAUq`;TrFr8ZwYs*>DaRHiLghP3ku&@dc4BV7N;uwX|Wy&`$1_JcBN`KUc+iy&kD=S zac46{_4hv3OB{*Z+^obN@oo&l1n}Wvno0b48DdOkFZ~QNAS>$R5B}uOke6IlW{na$ zE2KzMz$0o=swX5SMNi1cP_p{}x35NWWVlk@;e*CU(|qlPrcL-No94%XX?`7o{Q=H% z)%^TEjJ}Cpu4?W*aIVAYMOBM$!`TLO-D@#D_9NNFm1GiLj-f3I9aqq@Sn1jCK1X*D zS(C52gq>aJlk?7{ZzD!$$8GX$yZ`_I32;bRa{vGqB>(^xB>_oNB=7(LAOJ~3K~#90 z?7eyPF3DLQ_EdkrxwGF{bgzbyh7kfuqjh9BM`8pRAp$mt#3ArU5(rKl+r&;z5})H> zd;mKvHgSl+;1h$1Kqi3%M`AljAP_=A3JC4ihPGKG&1m+~?8{x|*OfoI`|am_p0~d{ zLV$!ub?*7y{;I3qeW|Lhu5SH5`s)DDu$H#`h{^^upmQ5*fQ{?vXU|<GXalv3pN$$P z6b-%47mR|tFmQoi(mb_sbV75<nv%D40l|#BGpMG*=|<1i&ys*GIr!af><f?vjFr9^ z^02fKxoy!ID(DqGLqqSgvBkyOpsO8rGD7D9bk{5SmMDc`_Izt4)qqH|ps-}wsbX{` zu4v%2m27U6Nv%Q&Ur%!G1Tj>DitC=0J7#o!gJovc+jqO(18U3?#)f2=(~-<zGy|Ca z9uhl@cU<JtNG5^K+n0<mJFv#wYs@rDn~`uac9(4uEU6ONs8~3qz<YHo=wt#qT_8h9 z@)Vl0;dLCWlmQr80^zO;st=%pT}ZxZSs4x))VNpekt0;EXb{@MYKN=<kbug##x!`w zV(v!c6xmxk=JY8+pBtBnhXJ<SrstnxL#^s1x?pKYC@cwJ$T4VO`Iq{g0Jes)qhZ$F z*ymt3<RCb-WXI9o<=?U#P_g6sa`g!dFe7oRMkO>s>ej;2=vE2pRWd7Zywb@){wcf* zz~(?ZfI0pSi~6Q4HC<0-$V>?hLrw!izoaqbHq8XpGBh^qMgS!f2;Lx=sSV<X++~G7 z4I-Dn^PfIr95N*mi_7rB?2F1kmf*n(zz*mXLrN1Z%fv<RNq~$IS(3tnL<#vTp2#L4 zwl`A5O9&7#;ea@A2@1Qb&s|FYXM#k*Y^iKXj?1;kBV{+ZU1i^y*}{`KNU@9r`(Tw^ zBO;oKZvZfmSNE3UxNtFMIj}C9vEZngDmE;!p)Hv>E*5Xk+(~iaaA_3OdY><*5znwt zUk2QgyggCgTY3s{-~&0f#JHXVP4v~FMio#%pjsu&DB?=U#E2Y5Qlb#Xl#Ip;Dl+1_ zH2c<8OK!k!8Y?UsOr@`&V0SoZAdAbR0SiYYBVlg0VGM$(S2n;B3j)gFNDweu<<xkW z(=%U)YPvCAQp;V+UU419Ip%uMPq5G$fMr0RRaVj<Q7EJ|S{&e8Zcc82k-*&Q7F^Q| zsin^DjV{oDva2N0sO7lW5L3oNank3$1aWePW;BSg?w<!pP!Q~Ue#XT}kUK@FS#8tQ zerY|!$zhi@S_X8N39LbBwVdfC=z!>Sj56A2*0<%Bte~DrY_tj&G69N3U}P3jMmK3R zV{M=q?Yef~Ko%NEeI-@MqCn0@V%|fJ4kE+Smb_AKx!dzyA4fBh3~gs?T<(LOHJ$9% zHo7mr(_CsJ!m@n2T`=#x>gzU-YEId!#O!~O?U`Z5MbE)-C5G+1uMId=$l{0a=%pM3 zA=Au@iY>!*$CnF^NE7j)FH{|aBwu_A5$y;yOF&?Px|GctVyJqMnxf*Wbnj-_h{<KW zy3h3NA>i%}pyk>%6t+ab)SZWo5>>@3<nLg!=F+j*lLsQc(KQx#4P|p_b}gWU1{bn; zEJH~0p_alp3q*P`Mlk>ph*QG32Uv&CECD9KLkUB6l7g@9sJH)0xGCcrvhZQFd6XQg zmU7F3zL-`SkC-Y6UL#H8ybH7J<JLWRndU9R<a!Ivyd1sw=4=3%hh;G?8HqTiLBeRu z(T$UetOAw#60>o2Z<)8pJrE7jCa8+_q-p&_R-q*&gRXrr(TzfRR>a+Rz@hQNGU;SC zEFUI&QXCJUnHcfYMp;k*P7QXsfrJhiFY=eyw>l2iX*fG==`)`5B?5BCJwC}l6QV}T z0z_4}#(}p4%Qa3$Hw$p~nXi@|SZIi6@@R^Vg}@;)idd~j7U80#nY*{#1y%HMUYa$V z>ZdU;b1~#3#G?eB6*Xfsz&2Z=WOH=aV#!EhX^8pBOl~mYU_;bVA48THnuyU##zF?p zrKGSCYo(PU>!s&j+)|dX+)e}|2#9Cpa&6XugRm4ixXq0xYe_2y8#WB%qLhZ4hYQC? zqQYz=6g^8Oq|HnXcHJ|D4d@HY&R5GLU}gsu!981@!<2c6;2kRIN#2q!pk_>4IIOTE z>8IR(0TM4ZP*+M^W=P`0!XAiuG55hl<G0+Bf}r_=cF^&yQn<{X8=u>{aMU&$3*>+= z0Q*94a+NkyE92Q#Ik01lzum4`6lG&nz*`1|9M_QDY(>%L$DT8UP8q1L!(nVFg$pk+ zF+HI5TaV+-WaXwMm9PeGT@D}ChLc|ie7fL?xW~sbGj(&QPUgXFdPeGrgaf5e(yQyi z1Qms4yJd|G#DTjI;-c2kVl8RYN{ngj8I0H!Ck7$FB`n>&qW~$Q5Zx6qI+3lK!Zv!W z&<RJ+G=rYUl%z7cVI$%Xl(9r;&h=J!pBL_EMatLV!}efNS2DLC6@uAcwsX?KT8pfJ zGL{8<?7$$2NcIxSq&tvOQSYlpQBl$|ON}bIc+}Wx;3*9oEz1iDvVEDoawq})lqlfI zo6A<<D3>Coz1-zMACx3zEl}c-fNZjt{f!dr{6ciZt{7#PTLuInwKT|{FB&l=`xqUp zm?)!b)}^GJncbrrkTZwnyXeFkK|dKwH-3fwG6XwEAS@0|aP1HAT-euKr?C1t_Dy7T z0J`xqpf#Fa45nWX2m+zg1f}K5s3{3{W?2F~KcAB!)GWa8nkDFS3}hCN34p0v<j*WH zZ35HdzQi9a3#~J7e=3~K;LJMB6T3zbIFE3W%OUO{dA|4<J8d&G$Vx>4Jwagc%~Hr) zcVgNRj7gYaftH@OCwy>WTNi+Ww=FHiG=qI%929gCzuPRZge3zBk>W)jgFNh(SY{Lr z$nT)63oOCA6`3oDnR@Q@HrVh+>ByEQBJwV!m$p13ahC@5a@4&NU0FD+BRigSEUl=7 z>={DBmW+AJ7|oI|tqYZ2<k2k0PzmdxS%TD;@MjuYQ8R^tv{KTO#zV6_DH$`TFcnJz z;5b$q5*DzamduO9Kp#iCiaW@sOx+y29FDYS?{1Z5y)g^0G~lV(t^t!^tMyg?iv?X! zyA^yqCUk2+EYp&m-CGGl^_R;Yg5vI6(|{%Rm0JMV@}!1Qm&0Ukz((v5&EuU!hgkTQ zSWpJRW+HY=by<0=lzhVgfiuT(w{;E*L!R_tF+R^g9EM6emRQq_=F$f|L?SCO@@0vU zgA2p=TUf$Y$WyjmmCnpk<rNjNEB7U~Nujo9&vHX$nfOwKgA%5ENaO*U4HZ?rAd+X) zEbUkch%ziH12M8E@W~`^B_p0kF7W}8x_Y8BgyxF#FfEL8dl`9fk}EwO*(ADEmRXsv z2deEA*zz^oX38pWu~J%=Hk&=Nk$3{b5+CIGv2<s#2zD6EmV2=PJKb#n_{G>V-HF?< z;>DDa+Y7}o-E28_+o<&D=8ZjXabGrKc@&(CW_gZ+DN@@iqD;bM&R){&R@F8Lo63%a z=09Z&F4ADCR;EzAli!v;;$v*(KD>|%P6nvVrsu!q;#kn^C<6X&Bj+Jk!elN&4)`r6 z9_DvvygRjfj9kK2&w>(A?5G~*A`k6ns%QAELcum)M$DFL++taD&Q2NTU`lZb1k3Bv zoV+NV4S3cOJ@VW_(H3p`qMrvnm@Y(09)cXNuPA~Huand9-s`CZoqn7Imo421mbk^I zKe+dm84I9owC)2Y0h#w88!fUub1ZFHdU{d=@@-_swhR~5LYa;_8_<i{x>&qKa2^s4 zCQ#1-plAZ)woyl^OxviM_KIfAIBOz`q$?l5HZvoxkuc=8$Wj`dO|oy_bUW>u<4u)} zg;{em0<qjOo6N6!NHo}GF?PaL!gqV!+Jh^F2l$e`TD}meBJ=JZ&fM`HJh|)nuVheA zg8+_}$&e?1CFKD@c4w6lZEKLBp>qR*02ww&6=AacMRz@`I~h`*JPi$p)6zws(~@i} z9}R-X_huRlYPX(Im0FXbVaqLL>H}iDEqt;1wtU}}<tcya!t=ZU5=8QdL=+SmC8=o{ zk<VBbIz*c=eqD^tNYBz+gnXd!MeIgwj%DEsI}%*jq=LPv>~eO=G$r<!Fu8W@sKg`= zuaT(D^&X^<VX}POb6Q5!3<9WG887@V%rsjCIiv@Bm%cB9%{iU7wTnk0Cp8+2E}Avi zqMrqYd|eJ=9DX$Rxf;)?7^cTxzLxO8&|pW@L>JbV^VJO+vdj2tkBFsAQNl<>4IYp( z<SFo#)4MG#3p>b)=I#;%dD7-%g>E(RlO24l>cxMZ+TF4@On@VcB1|`~dzK+@#g6*j zG9ZwaJp&Zs1lO{yi9_X7^sSw?w&aI50vx0QkM;3$N3sQpRAl0RJ5;}d)N@HUHu-{$ z-vLSnrS^1m(3T-06U4EpZSXMPnq-|R3OZzP!4ljLR%&2muLM-0%>2*)`BO(09COOF zwX6vVG!kBWWhKbauyLy_9cht$&+Jo}DlcTm3+rVhXbhjn>;jEBYPp%n&;{aHkUNHI zxcxwJgt2=|>BY>Jc?H@17;-b>#U5A!tY0QlqO)|7H}jbbM;+|=)DY(2?i$ECLMD5l zznz{ZiDa0;QUXCLD1ZhEc^iGqU{|V^=Nv<pOIrdCtD_v%bt4j$NrT`B*eDTsWz56@ zr_?^ztf#mV%bl)Sj6<FbHG;-!E%_BjTt{0AhEtGS-v$9tWnW2kT(*W~!wTmh)iPNg zwq(&jth~%;K-#(BX{?#N!s1Jji8Kpz)h+KnMf3Hv>D-JNXF5S5_87;49t;ATxUXr1 zN+eV<<t4wsI#hHnVA}L}4N`71T;c%2@=$f}Mk<5t6>ZM4rzlRA5~`ROmcVGZwu+GL z(~D*#xiz{@oe@qI*to?iC>MnUY|qxU#jk`**-OSYIc8AE!Y>`fNn*(32IJl2R!UV2 zV};xjMj&m{ivh8Sf^8estt~c3qa?h887UWXy2(ntwJkvj#Q_RTAtxsnpfnS;M&Stx z=vJpATsdK{TFW$fC=&vZ*)RF(>-gqi6>fAMHkgF@1Kf-3bs{Fn?bt(r+of0uO!QLN zOPN9}mWsA+<MGi%kRe1$WOu%j983Y8VnxX1qgNFdc_0?5TofXoGHf~5KCIpoeOk7G zQg_0*3sB}v;|3O%8%(WRF%enyKKbLIHufYOmr}>NO_3|xV)Kl*<pw}{yyuyNKli}( zEC(qC3L|@uYjg@X4nZa^Of9R7+eq+|)kO~@eBrZOE<F5Y`dcZY20-`kxK91LZ^TwN zSGP~GC})#zwLH0D8dgNH%uaUYYGRrLj*#t{veRD~P%_Ojc~I|I<jkenuvK&_Q9_>f zHK4@|$$e=nurj%j#*~ea!<^d$>oRy2q9t3zP^;(o(kl3jccpEq;-y=`)r{G`Bx&g) zjU{e!_ar6jE)5t<EX4U2gSc5-_}F&3C|~O0(rg6n+?59nxEzo}lGHS_OKyM#k>o0g zhFir$fE!Y?>vgZk(r#=0liwng)34*CrGeglmj)|9-g{zR-JIxLJja7%TN(hvdo1%m zUKA2S%nVoa;E8gxNtk!pN(Sx`3}k1G)ow)u3;*kGJrfky$j@?gA|1K1RU~ndY#lJ& zGCA(=f#U|??6Cj3dopX1;hIT%CB_Uj41ga2Adj%6anLgYeR?t0$zpVm^=JNM2xnky zgc6BpOggf&iFdKwxkfCtEy+B@=c5b>izRF2%6n<YB?KSKm*yf2HhNnSG?^3L#a7A{ zziu?Nyow@}mrfN~d5iKWJ?p&`!k#D~ZJa#0wd#~!hL@@2ims;>&X_2xshBIew=+qx zA1NpaUw}aXC9NPkHrGV9<9c~%v{8_fses6krRsSo{+2d87^hJL#Z-3Ij4_tZE(&7! zVS!@m{A9s{z6VgLoZHiH0a7Lg<eKR1`9NCY)8V=VGPMhhgJQjm7|K}GvI@3dVeS<` z>;=BIX*wnKEbAi=76pxC4vH8JYud>USQ#7$1U(b9r3pqIB9p(um@m8pz`}Xx<9Lpx z8MRJfU@zB#Wig@UA)&x=Tj4=UBO$NEEKzlj9q-Yd|BaTxkzgF`TBcSq4nV#Y9h(V_ zVU`ZhVpQ`m1LMku6t%Y;GC+Z8+j}H#5G-St>1S+&*^<2T$Og}Oah(SfVN<)AJW6=u z@=|$Qa%$K~5j7SOu@JUGCzo=dz(2!0q&SM`E+J1^4g_symQ&IxUSA|0y2b1BDZy7E zlDj{~04*!t$X%LsFF6Vz<^IFDO+JOF8wyrR=?)yhc-j;VB5k<7P;rOqhz)E|C_wUn z;GhmJ;zG@8l5~(<0#JhX2cXB&I57_(@6IeS@-YNKo7-;7B)Mlc`q%UFdccviy@z<2 z!7$Qzkie17L9z9~mbQd!xg}OoJ}lgCd;%@`NhYjOrAt*{f=P|{r50H0awR{hrdh>2 z4rrTPpsIIQXM($AvYcWaPO#vn=n85!W$g4Q1sjVwjo4h}OhPCk3qRAPkO2Z7Ptn{M zTw=(A^#@VhplACG(QO@zz#|yRULMm~dN3i!&-9AnBC*wd=!?c<Udrn%WP&M@iNxGY z4lVN@l`;|WE*x-HAWcz-V9RhJ1c)f)-Bn*zYgvY}En*~k((7WqAQD+bCADipD)p@r z5n3C1Utb9D5ayL)&`qgH`atf>*X3jFaIGn9^+iT4vw+;!$qNd3hU>k`HK;9uVS=4z z9x~gV_t+TBX5FQ7$U`bub~hmm<{M!yoa03ZEP-+lf~a^aOu%djOStq;E4fb&6qJ1j z*OpN+VaRjD()h#WM2w&=T+fp9IM_{APE{$-Ze)u~c7u?j0DZ40F0ec~o1S~cGcEt- z2p11(tlwVMa1x5X{AfYob6E6;np{{rrJH*kLzY{7zj&3;_5tM17nhd*mMJ{a&yXwS z**UZ0forZ5<D)jC5l|X1%U=||+ZZUsMK`dk+0#*Er5KT6+N)6qE6>tYL=3rDLWVS8 z4;SMQlPaI8ZK3l@F@0{3&aWkO<wIKO%e28(tK=@<+In~+p+xYmk1MOU{A9_iWpwO> zEgzmO!%}QK{z+jgv&O@MQla9dQe0WcynxrK`YM6gU(hz*v=A>9$;$;3Ad*2P3U1jA zxbGlhdL$*d3Itu)KdPY*YgPm(7dX>rVcisG<?`AFF*Y=PKqZ!gZ87psPDLS;v4S9> zSt5^wzrG<QR~(<kux0k3dajKDB2SxICRMT^GTyR?fAQa;;?cuq(U%r)Lnf$lbK8Ie zV#-IEs9wbtrbZ%W%nv?CqN*D`mTL}D<VAKu=3(wr(Zvd5zm?d*DnxD|CMc*u&L$Qx z`OI`fJi!;oxMs+73OfIZZ6YQ7^?XZNrpb`=&WJq5^$f7|G1m7UvWIMc$dI>eKu|R6 zTf2H&`!X+U4K-NLDY1pn06T85&p*oqjLHHf%X$~Si>hz0x{LNT8JH*}>z5L96AhT2 zjbtsila73Z(Q|iR)Z)d`m_TeLbs@4DYqG#44Uj2E)(#_bEXe#yy}L8>Uikj9rD&l2 z`eWuoyDX(#Ze^s>i-#kfYS=skn%L4vptsDsZ(wIooyN677+;If#!Pv9t1xzBfs!Tf zzU%qA1K{_NrVHLGlhT*%>yN*(n^5k`&#n9?*6a%Q@HZo+F*O748A6nnD?<|!s*s5( zO~Hu~;RKcxlv~kQf<@$131l8Uk%fs$bX)9%zQlE#wU-OI?n@M#knw&nZqK|31a8nW zg)K_}`HA<Cm+V~loHMq3)qldmfoRI*FxWs+i18X%ja-Yw$~HnX?3UYS$ydvf1sV0a zy2aZRiL7pt9I{Bcfv>@ogA5lSL-PX#7=oN25Izp0(<#Ja&%wJ-KK$A})b-2Oh(+dO z)y&-?QngRQBC1TA9h^-D(yG6pHn5A*d6_#IMz{o`#E67}kmTv;pq8l@83Fb5DB5`J zD_u(-UC3Qwl>?26rmcctAmZEpb2PBX&J!mlh+aJ;HTqY^{rRE+Se_MC{G#H*5e0Tm zBw_@m=?Fc6&N+(l(N-vAIBOol%wRCf>&PWXLXZ3m!Zr_OC(3yUHRfA!QLcvwMjy@e zYz7`@*(TlmSad_x9T`rba|(m<ZgK<BAm|3WC0dY20?}Z!Hz-!Y<{dZuX3shzG4{Pu z;+LNw$Hoa0Y^z3@+-8^Ia8UN*UL!Qe>@av7Y!gIu8S{eSXc13n7&c^8k{312!aA_- zUfD_~;T?yS`#TLRJ&~tBbKx<WZqLh`!i8m0<?=nGmMJKO0@5og%3QLBZw(NF%cZsl zHK?U$!SH;E=^SyqI5F6e3A4~M@nUeCipqmcOVp@-ver3wG8tGLm4i$0A{5Ff)wvM7 zdY#{ffrqM%zvV?Yl0>t;vLcu^hixokctWa#?~-`;KrSAYN=dqiU}6^w9E}F#^yWrY zX7T;5-RxolF5@$>oft&@tPF(%v5Kx;)2XAPAO{i>)AgcC0$$lGxdm+!=vSBF@6jwr zx@{S%m}qG;AOqeqi2%Y+8C#wp3a6`YHng4^L^C;xkV6DF6L%<u=IIKgot0BM5|_7h zX2SC4C%PvCdOJ^;7lN1$F%)UZT}sbkP>OfsMUy@L?1&g(dLnlwP*DcD@MOH>*B+6i zC%K^$obquZHss@W!&c>dIY3X<3|6KTajX7NO|`7*rKCgz?!$$F{<7%@1b-GNZqqBO zO6!vOP|KQaRO366dF448OW<G{+;QY3wm>}?8BtgcTR{pY2kzT4voNa4aX`xiGdmG< zI@0WUa)gLPuIMt%c_}q3@mdU0EJRFh%R!KxNH>qsc^st}w_pYfY-zCJ4(oy&L|+l0 z073ZXl9Oa(It!;HQjB5xxvSv7XpWjV7Oyc$8z=R(DIvAYvzJDTV;rYo7u`U~Gy?Qf zx;q)3a?z3~qsU~4VFo&0rsFiwZCK4w)ss!s%c@t5O88M8tXInf2$3R8p~u^_EDDk8 zkTLFA;*fC9><`;dyoB18Z}rLs*a?Lmxr>Tmr$IC;lHt<G5?uZ;qynvHvVAdGewLOm zr(^JS&-)~iGmx|taUox0%aQj25epZlJoLM}&0I9S#gK=#&MlgK%80uRmPnWwSj`qM z5>lnG#N?rrG;rww^tOgE;?6EaGF9TLGCmN<Oo{J*6K1EdInCsdQ?<u5AxT6LEhS1| zY41;ldWmJ}6B{^*9$K=SFYNV9koZc1f`P3uJ}MquxNbTF)+rjh1aeCO?h(_&84Ci- zqB*izKt>!JfBB5E);9Hr9Hd}Wb-UQJx+r?_=-_F1Ps^3@oK~lMdyG|pGrznhFl?}l zTwg{9k0T|hM!J)h(nfB1W0?JH_2O~K{=hL6$#&ennQBn2L2*EFbYiPw%uZp+mw47= z5mXtW8nsDpV$d7wTkbzp0H-3eKpEnc_9+3XEPE{6gE%{W)XQ;1E$a?>rprzTllk;F z9zHpz5w(2WBhRiv=D@mLuoS{TeZzCNEK>}OiQF<687{0*F?}|dpCQpsM<;ZTs}K48 z!DiPUSS3tv&Z(Cp*}2z9QzAFPJ>f~PGZ(VrbjJ9LtmzU3mS#OaA}(z!x;QS68sfLe zlnW@g0|qjAQT*+6EDdwVa(2&juFDAJ%}}Xns*z8Pm9EPGOOb9-=#w@9;vr8Cz~*L+ zK(T71^ol$uTNPxKyC_P?Wu)WSamF|TlTWY~mF40AU-xW>le4d%AB$~1%bH%Nrwc+7 zqh?XFvo~uX?66}tV~1UJG?=i)L1bG_FXT^>$A#>$0MXpdxuV&Sr59nArNMME5Rj>i zY&H$ZTOLZ0itt5fTjE8Qzi=v$JJN#Z((+&#;^mJ6dAw#iT3&pRL@Kmy4d@sPPkMmm z*qFBR(=CWJBNB#}X>)~fuVz0t4LZLzC>?tii!26qYvaNZIDL_i=aptcV6jMw1x+_+ zEEy|5a_k0>Y4+&pVGEUeV4GR#i!1?T=S0<h$e|Wl%Mwi8ep+>xMa|huEI<B6+}Rr7 zw~GC;v^+{1Gd-omm=Py9y6{&{oE{Eg$h`Ebi>IqCey0nM@-x|V@XXfX){aQb((|j> z9#hq`paMd~Q(3d}xDn8pYdJO^1RNXU+R6l@OQ|BjM_00XwuXY~Aee>$=^Q^-s8Hn= zC5|7vVaquvM{E{v&m!%>^7)Cj{$+VFN@hMTf-L3SMAkD*WNw9M<TW~p9mpiX?rw!t zhr<j83$5zak>Bu&ZJ<Pq*c0n4@(Rp7O5wPaus6)X;vg)1N0H-UhL#xgAc8DX<S4++ zO6TFbVi*!rm<wOs@(UoTK-O}djAl|5!$5ZLmfJWD0$f72`!HLJ7@kXsB~XqAN+2vi zZ|Q#8sTucmdW3ktCC^|6s%%S$^zY1eQunM!o;K0hT1<efl!nAgAN0K*JrmC~!)Rm3 zam`|f-QwdY`I|<9F(y6TL@LBEU*boRd*rZ>;J0TLtnlp_p6j{{m5zmlBX59px@L8- zuIZiY17K0S;10Nh%?g8PaXeI0co-Y(<Q$9!VwzE~$wo^@?P8La$P(u<AhNt9?}C>N z+tRot)<EXyO7-Ct4?Kq~6OITy>)5Sr|3zO&jU##ZuY_Hu4MaSLdq%;TSoBre>#$wv zp<If4h(}Cs?-Ni@nG%$dHRUbK7}v;<ID`#!&2S_%i0YjT7)+2?B1@i~E+Uc0EtyA_ z4|nI_+bi#8*B)}s1ZtQ2#@(IGXeIuD>~@an1l=QJ-}pI_+&CAq%-Pi4#YC{>2`@bh zJcYOgVz<4{-i1XMa^uD&g>u0#xi70g&ha{ru7LmmAOJ~3K~!_{O5<#qHfbDh2*`W8 z$i6Q?=AZM-_&`&Uu;kbL(<2e8;422#GKs=!tQuiqa@ZiigA1|>OCph5x(?Fc#U)~+ z2h&jI9#CNNyP{NN8g`~Cr(EQ~#H&o`e7vEh27y{+DDlVz!l;`OAYi#Ax9L{dwrwWr zWke!bM9i-*!t~*kP}_|>mn73%CRg?dU*lq$+v2oN3Cm65j%cbcKm;8lo&FtWE81Ut zJyT+L&?alhOnF%&#Q}nlrj5l7KwiAb$Lp0?dIlvX?O_2~bWC9xb73$+G;@(~?<Zli zc*hO7agEQ<+|oepK`o_TJZQSndiB0-M%QdMCO_NafU-475-@-PIE-Emz2{waOsLO) z16HfF>u_3@xB!Xtvwl5#!6dPmnG~>Dm}`z<;}|j=rc>Yq*K$}$gRW<Wh@9Z~8F<-< zMLvv|Ib}9s;g9=<n&hlvCRNyX-lIlVVi`zj+@5qJN|v)~p}FM9;}kLhoyKA%g~(xA z9_<91J-1|x;^)#p0(Up^CWC3TsJkcjX;4^D@Rlc$O#E#5nx!g93q<Eu{Bk&=lum?k zWzP*t<!+@kF6=lxZzP%Fh`la_KM}-;<YYFn+pYN4v(I+ZlyofNNGx7=6}FU<m=9iu zjKBV5lnER1^jFN%i3}l>k$I|}-dmDn$wG7D<uQbpMlxahQO9WqiB;#kRg}R(B*#;s zBQAVVdyTd&t&+Jvs9kPcl#F;_ZCQ?dcfRNV*5~{lGGrcIatAYlz;ebY<HqE(E+Js< zzFcwO;M^(G$1s#3%Lh~ss)ThHk~oPfZ5t4r3nAFwE#338q%G)K)kOK*ArvEkrTscx z4jg#|GykPeIwghXmqHo^sVy30IwEr8L<?fDjFSFWau~M+fofT^+;_-#yZvMWf@Oc; z!MBF(<-rvTALmmQkDjGigkSbGFK*Ihmg3Cq!84jo#K(giNfqpXG6>)@<P6HD#cz!9 zC`tqilBc}#;W@qx#aoqPW^JPq>+JAAp&(089H3>Xl>(~ePW-G+xHM{u3Y}u{0SE4= zw<2Jv246f$6Scga>CYtG$@!w3aLCeAbdfkxCM_P|@RW!@lL!-<0Fla`rLpzA0Yu)A zNp*iKF_xjNl;@B)dhLj7p}CAT;s8+w>fDxBIC<OQ+MYgz&QDm^6{Ogby4>PdZC1jj zHF|kQ8#K`IhBM@Bqlvb@Djj*~z!DZoinu}!?8RGSqw=N8Xv}8Qs|Kia(elNZ(;Meh zz9`9Pi_l_(5hmdu8|1jTWv))YB&TK)C<VyI=>mzU61L~w*Q!OZ{nW~84OjLob5R^) zUw?+-(JdiTgef)<);MMfFu%x)7JW)cLJ$@x19cFB`k5pJQi-PldF3|1vg{bU$4Bu- zv9MrOD3m~^8TU;4P1$n>qrq`SDU)~0lyqqRK<20!kWRa_+1i|pQVWh~g1}@9Ick*2 zW2;`A84EzMG;v*Khr^bLE73zc9;e&vDsgatL^04$RzY9LiZfediYy})=13R})@D;| zD*rhTH4~%JHia$DM#+Gu1(qom=Y^oaHD+HZ(+@||kRGphxnWE26;K|h1mlkM=yvM> zLG8!<W{=>KQ&6{zwnW61vy~2m7)FhJ4GNf3k;scM*Cq1IdtCe49y#;}5Z^K&3`)u= za}{z_pVbkD8g`gdd!vql0{O1L($4jgoFuEYm?7<`r$=xO@p~+iBT;Gk9ByEImSMDI zAqw+7$2j+mp8pORf&>~59A)7c>fEtd8p)v<oy``A9j}m$Y`!zunfE>8N`~o-U?chr zMux=PGTsRbA}*(GOZzK>4TyJmmt+(4H2M~G0Q6y|n1tA{YYkanoqQpjc`$j(Q$q$W zq7yS_k65o8#qO5+Hq2ABPFzjdt1XXJWUZ#O!_r&b`*`_Ctf=QoVX%?7K-isM7C4t^ zFBdJ(<R-=&(qWSPQD!DMhBaamWh&iLpIgNq#-*|`0<4EBvB1l)27?d;$N_`0)+ZA4 zP_qY1rv}4zf|1Iw84uKLsV5B{=n8dEqh4WXJQXno98KnWdi9bOGZ49rfQUboY7io$ zvb38fG%o>8&9{mpLDimZHq3iDr*ty-(+OTy8)|7j#79?%xTHR=c{#LK(g=g*(oG00 zbB8RA@&Z``Y;2-CCmYnpzpfi(Pm+oEsF+S>gnO|^$r_OhimCGSgB%EY7NevYHcpYY z#2p_~mu1b?K>)2HO8ShmpEV$w!EYrD*CPvD^efTFP1KQs8Y8!lD8X;n${{iVZC;N> zTJ{VCTb71g-!mDW8<;z3Ce!+OoFjBHu5>y<Pb(A17Ay34l6K04W_Lq2-4LC)Om~{8 z0n35YFpO+LO|<3HzG1$^UbN*uTNm<k+CSa$h{neh`ymSrTMr?4V-?@xmT4r?Hk%Cw zhcm7?L#LSK!$9uET|g3ZB~7Hpa(OvuVz67oPnYwQ4)?s|RJy2mpct{=WyrF86j<h6 z74&7lj`<M_G6cRT%?uSg<sgYSarw|vj4E=N3%`+GVELnT#bk$7;FhH2K!)5V5_7NE zpCQCVp<%#!$W2Evffy*Hju}q4@Q{_x#JEcavl8P_jpC8{Wvw-HY7mhUVH+?us$X!+ zGZKl~&4eszm_^ZZvz{xtdq6I;@7y33X&Z*F+H|S1JY_+TsS0YPI|ztJo*1LYx#p}p zY#4yJJY$qwe6bkYLD7drFUvJ<<>iIOvX*Mfhb5x3E#NJ8VSt=AB+5tS+C86<!!S7m z`N+Z-{g_Azd_i!x?okHwrMbSP%9b;S$f_g>Mj`hKN_M$%8Esv^Arqec_-didbX}(t zkXU?MAMyieDl{JsO8|n!Bj;sTNwVkAkE$LSW*~Aqgf(kfR-&U)m?9;1NyowzauDRO zs5@U;!je=^U;1fAkAw)(DF<k$FxtdVdHJSv>S!+)AotlC2e6S$0Og48seUxt1d+$a zDB@yaGl#kTXtBlhE1GIZ<K_r5921bWyvq}*^4tXEL?Q;jN|`d;&~$;$9k~(AZj~U& zBIoRG2MQEfrlogzamSdi?WxR`zm=mNiR{cn+!}HNkNET51sSh>aba5t)TK}MC9a9@ z@fg|p-4YQCM2?YVHYLJF(D4ZzjNoQO4rCnSfuO$Ku2C`K@(Eq=+ei&dq$6FR6)I~R z==kI1VzfT-Vo=DH<tW}Uiq^Jx-)bPu!Zu1Lau4UcBINn?^i!6J93V%W(AqrRX~`0L z)?+{zh>M;fFfSa5I7o@r2_sA}Z@?4!x&62isU{*1v%ts22%FI+X^&};C4{IHenV(7 zlXgynJoaLLZ!cViLse-8!n^o8@?D3(WJiORFM##w^++$+iEJ4rGU|w^sO~OuI4A@J z0xfx>XF?sH2)zTy3ooSuw=C0UcY{Jys@-b8CK&#ZQq#sgn?4(;*SNM=I36e;OHji? zB!hyb85myI2vg3)_>v>CJe%>$EC|7_>u&XP<Z7z{%vf0dOZ^_yu4Sp;5)lZLfQ3b| zZtO4wZsX~s=bt43q9ETmD=3f|-|`wEcq=pq%iV0aH1(Dz=pAb$>I(&}7r_q3_ymFZ zWmELPR9dVj3{E5rnFZL*gIb2)TRLct=S-ctr)ZXE*vPu>6`LINxkv)uvS%O<rgQQT zgOm^?H7q3;2(kcsHm9lVS~2(t+uJhxf+HhuL3*Il1OaUs0Wwww-755rCY~iVEsJK4 zV}q{Q4aRJ9E??e9iw)wVgnf&1BAX^#s%M~bidOOqtZVl&K5g4{wrn>XZADGx0+Ex% z5l}pbjZy^5R7qHAa%dy<bl(6CIX#s+k1gXZa|4Hd*LchCMo2i2Fy!I2Oc)+3g$s#O zLfBSzbOK6MdV2{;(o9(3;O;MA&Jt_Obv#R0pg34ArTf6T1a@{Y@xCD|VvBu`$jy|p zdJ28qx!W@v;Q}NmCYu92M`ywA@mk7O9G~r~uRl?-)3apUJ0wtqxiVpGgACToh~l9m zjOG%f6V{Rd50ak<IREKRu0$_<cwpstH{?p;LA+PGCwr=xTrV2NUVOr`#Nzhh=s?!S z)RsX?fFS?vF$g8ZTivBnxbTi5lfmQ@eD&Nwl(mPjl?DEg(t>7Plv^4L3XXlT_!*M) zp||hDbY_EW2?0IVGcgh=VBLin&yG$~xhN-c<7T5}!L4OIWb80{wotpbGB5lb!pFH- z?oQnr<~eR(ey)5`WETkhQ-XEe9ZgEif)_Dw<eVC^-SWh>dw$O>LVp=poT?Hga+m4v z&er9k_@f}{+ptP|%$;3XWg@|XVzfz~Q`>Bz5@a6pBc%p(rM5)M5V)lXvjZ)@hZHU$ zeS~fQD-EVA_G+QPZ!vZTF3kj~L{F}i!>xsFR<jKM{eh5=XWb~pZ#`$POtm$957orc zIl{&&aJkGPHo<1m3?_#~(9%a4y!eqrv}=84XJW0}JP!l`8LY72t5~IE+=WW(75zFr z!7qDV$YG=ncy4w3soL`7_}NM3!8@`BJ?#Z>Nrc{}oaK0EV1P`3J4HYUj6>#vX9iQ# zb@AB_ZS(a5nfI{t{DHifG^)oQLI0j;<MIs2gUs0XmAMj8i9*=vBsAX4Ddv~Nm~E1I zmxCU-xPx$gKtmR+1TkbXT$1r*4*8`w*ABb6)Hl1^fO&@Gp|F$-8;Z_d_(hqe^N=+m zk&&g~X38#C(k4b0e_1rrY(nSpf>AIfK9qxX=~=-pZbq~oLerEf?&}ihMy=HE@^jRd z;Rs=^;s{wy$e_}Kc%SKy4AgTz6Z>w4t5x;GnHsa9ia@q-iO^(xDjCcDpZp}z;Hi!y z8ZYO1R%_KQ3AKY&wk&}|<CNQ%Ax5lAsB$r4kr>V-`BgY%+u>_-GdjU9gd_gtmL`Se zAAece$Oeo`7gA(WqV~Upwb7!jqvLqhH|RlD&5l}f$B@5dIK~C&+2KMV8~m72$kuS_ z7^PR0kZ?_(`wIpo47#{tpf5W_n(wmfmL60JS<MY;J84*?*bQ^yxui^r5;}Ws*|I?o zNN=$S5C_ZrIsw72(BFs)0m5B^**RqAeSLvzG<QN4zQ-3<wm6%6J2GD$uv{RUrjPVA zZk9t^yK{(Xrea~o)1j!?*XUh40uw}Y++tUhtm!R#B^klurqYeaW>|te)|$jVIiHDz z&~md@8Hot0led>KCCnzSU1-SjP7wtw2pQCB%<-MN>N!mmUqNa{m76R7<&Dk}@??V5 za)5SpW9D=X`hlzX<aUA<?0bX>n57w)Ly)aR#h|8@2|l|Ixi9hsCkCNYoQ1{6Im5XN zDalu82NHN$swk0n+4;hv`v%9p0f0TBVSr^QDSt+@o-2nOxcRT}6U%g^DT^+Bge&cZ zFbNsLS{XZ5IIZ9dOMG;Jz-aKFyNV3y3%cc6@K_VgVw?fY^IaBcnk`xPXw$OIAXCL% zI8P(1MyA(7e2_61*C3S%*iJts4LD)V81XT<G(*-`&!B{B;izoPFn9Sb3)bHZmHD63 z=HXA|+3l_bM^WyOCskhBa_k<nIab7Qci+_}A$x0;f~ifmU2!el)2#))9PI;w%r&5z z(2f`hax=;L-EOf}ivh%U(^>W1`ZA}YL2f2)%g!YW!X9Rk*X{y1w{(t({e#4|y8-fA zN+M$U;ZDm03FI;=4R-AjP`oICs*ZO<wnc6)Q$V)VlE_eo`(Dc|i(Tqj(Ps+cWl-*U zXg_9alUOt4z{G9DG&=?B6%ieq2608B`HW1Jx{jY^;*WZtOuLtIPW4sao>eA(IMvIi zl9<9hAx0KD#Qmtjt@oTb7>45)9Z8_LjT4Lw9!n)+qcVoT9`t#1EQuCIQW+2!AmbY7 zC$h}>DD=swR#o<WqINR2VwuNBz7_3#au5XbG%N11yUiz`*_j2hFd$J_>V<N#J=Pa8 zM^pFF7W$+aay`>oijK9(WH2<CKO#R2o7*q<#FaoYk$TWw0CPerV@gTTihz$;#vk1D zsh@fOjZeSi{2zGX)6O{<5)QX%31lLgGSsqhGkb$A)5Wdm&Ysqd5vRn%XmTxrCS6!E zK~hZGc(Fy8MUF%sH@V9$V`nuph3?p;tM_G^3oIuMFSvV-yn%7d1h8X^+yu3Na;hZg zfZ%V1#hd`vzTUB%MMV)`_1IBzglv=4_ra5o{@AOpf7xrUKY4om>Z>mK&ab)RZ@>7; zgM*e@25Q&)RKLp%I&Hz)Xc<o8j?4+loXT>OB^sfY{b)<A!dDp$;!M~^$`d!|3#Ytq zFg|2b%eQur8_0S?2x^7d*7}lPEDkbkAYv960{3DvM!MS#CYJ_)KPyV#)h!cttCCR5 zgKQzvW6@M3Gf7PA^tV}Gkx57E-~G*n>pHh0h;^?d{@|uhz2w*4HdX(v=UnlMZ@7B3 zi7jV#t+Pf;mt&T8%glr4AILzMBX@YoKrEoGsle1_FcfNeE%ojB%ruu|8THsqok(Vu zBhD86%<tSQXU&KRTOR9@M3zHYJUlU-`&^592@22UB@Nt0BI6difM2d%cj7|W@2S~g z@2_~{P5<PTAHMy*lMLW_S04S}|EuSI?X#bd5(Ar-Clx6YAYei$qt6yP<nYl=&eGS3 zY1T%t1d5jbPDP$raGSmy>)tc`(If`CaMTh>o!V{$AQKZ9(^P3{M*9h49j_aYBEZo! zHD(%|FcvKT6uqpf>;>0Op3tzTad16QuMiZANTt_P4FhN0k(!2-9^BR8L9Ow5_$Lm> z?|#DvqV2C;cUzyL_F$kI60V-3r$~W|Kd=GTY$Sbwf+JKv+mc|I!oh9@`$Ltg6P;~6 z%RE#v(1mA|tr|`<+>GyX`*4-`jL1Mh)_U@vp<yTAoy!<SP|cL(vK{i@PQ3;q16j6$ zLWDnLEMiwen3!=XF8RlWsTH%|(cPZg5VQ{by`OvEcfb6-l8peo|Hk`Y{KIegH^29Z zmF6IuMYLt8Ah!~Nx$$5uh)5;J$X#bjgxpB`ENYf8tbrT0ct>L&Up}@Qa*mF>ZEF$d zMW%$kcuTe}d8Unhf0h-0xL`rRFuTEYdb)8T(sPd}>7NPiGcm2{HvvR(ObjwT(#FRV zrJyv*^@3W4Jk*O8gVHA{q$G%-|LEJVyY}9PqQ`wFAHDtIlQm<=H6=mf7;fKS-8Yp> zNQ5mZ`f}JBw#~OBc&I8T8s<C{?=BF7OkS_p3E(|ThC?~*8X43;9Qmj)1j76MV!L+B zLSQyc*Qvb_!;zZ#VyQ9<(sJus9FJMv<)j-8#H(4?sGzw+ieTeAbrB!g#z29o;Rk>9 zBR}_s8?jyf{?EVf$A9a3HBO;_*kGBZy=AT<JqE?`od*rx2HB|g#QlYZyB|4SSZ1^K zfn5^7KmglvV+Pd-8eM}}aGkn*0=~o?8SFNbzmE$;jER_*26iy2Smq$v?ol73>)C5O zg97??W6-~Ai4yVO02o9@{0Rzobc@T@9H2RISq{CpkM&?nAqXVCX;iXnGq<G9n;$&! zFWz~*Nb=Hi&sw2DsLW!D20fGIMkc|%*-!W0xG020qC^H&ju5L%t{6jxY|~Nth5@Zk zxFHSp3TK>QcIz@=O_rR8c)K=o#F6eISQam<Sn#$C5IJ25QW%!O48SFf%0il<@FA*a zrnuNG-!)I|m)1j@<vI7|Zw}4Rx_|cdpZMWl`6$j*{-<C3;19j(qrGQq39|VOfgrEc z#Xud~UIWA8$o%~+&QB0g5QJ_QE%o~7?GJs=|NFsDJ#b1*LTtvpiEX=;|JpoNia5)! z7&>HUWT;w}X3wOSkzs4GN9YM(<Ho+^BMr)b&Sr?$gXb2T)6cQ5&G>YGE<GDVx3KKM zTNa})ZcV@ANSZRT<#Leva%-{IxIrLZ@xf1?&gWQMap5^fc9!&qd|p{7xKRVX;9-6; z@ufqV9{8tBN7litP4zmBSz5jo?bFOXf0@+xn#<glRn_wN2!vE<7Clv(Q=8*&{!X%r zT_-;3M{dm5-Icz5*Zqox5cNJglvE*Gwpebhg1;vQ1)Ez8&Mli(0y_EbJ#Uh1^p`rf z2H+1reD{C*^7rGhl^=Z7M;<)+=#Tvu&!Kap;;Bg|`m0UGQDU1+&oXSJrk)M5n@NKz z`7m|l_Cv1hz<`h6`S6eY#<g$!;9al#-fN!r#Pe4Qxjj?P(=Q)CvE}zATwobRt&t}` ztH;uk*$J?m*O5u`!HRcudU$Bnb39?bI@bMG0h1s8J4wQnyOOvA*SK=Ah;ByFmClh! zVvdkeXo4}ZaBOs@)}ve6LXSNcWN7P)v8CtFf9>pp9RM8m{&OF=N$7m)Md#H~K&D@k z6&SU=?t?|U0+ZoHy%-rghGZRqQw}{~8fsWSGaNyRdGw@G{*^e0jr!8ym@psIG|rk$ zJs;cG&2EW5i<wGhEmg_Z?04CGd7*%tmHB%=ZMt6r>ESc~?0G9kl=VZa;m;LQq=*iD z?=O9D^rKw1%gcWA`isv$>-)d`8LP*(1?U=#wkgN5wTFek7ZU!&v|{V9WTq9DIWN{= zcgsB|{`qfS`|>y5_~c8@dBgX==&8rfOC5PM&?`%j;MJ_zK5JRt@#sjWUo$jD!3kK< zA(Me@%pRj<q95-9#%P-zaB3v)in@5kotriAF4AnUydnYz)>m}anvL`p7o56=jHnEf zC0O2YIG=g3fJK(`0_q@H4;FPsyMbQu2?>rs!|#6Lt{WeCB=e1@UPPwZmh2@7yk*r2 zZ$l>0=f5Bd+e%O30;FRZ+{sFg6fs{^&04OKv=NmiYlX&RE?E0U{}@-yGR1Cs$g1ny z$kP&AwsYrso#o?V;ZRtL&KLKXU!EWL+}H;kGddzG>}1|tl!G|1`O`-^62;iYx{*zH zU;FOc-|~^W@oAQS`tLsSRaag5lII=MbNn=}1#Qbuzu<AwRJp@^EW)noW+xW7yc!HM z-E6~mK5*)Pea&_M`gI>WaeDl+%g%qp_r2)KC!DLMh#X<%JU19*k!_hgQtsq2M_-LW z+^{soW?=a)avQ1Py_YTX7{XMTZPt$X5&vW<NrSjmF70@5bH!n?jp!ym1r+87Yva;$ zsdlO#OkC3sIg%A>eh2f9p`xSZGl4=71JLn*y#Gd6dFn;yu4qJpvSJ&hWuB)C{)SuR zBvuB9W{Hwz6kFwDWQdmrsVe#$zoLPpL(v?=ltkDq8@X_}Oi1~$K@irk+Ar;aOx$_e z_C!?<5t#T!%Oh^PeBCy@rJ1pEM|Xo&X!HS1&pI##VI!=-{NHm=c!ZB;qRWD1ME`;R z=fg_OV<=<q-|>_0de6(g?y`%|E|kJ7^h(-ES#ABxl?^FN0r|`2RW|aJ006l6k<%}G z&GkR|+c!LP@({qeM|QvUJukfS*tv-+HV>BJN)ln&V?PpwLo921GL+RA^5N4AGaj7u zGtuBAMU6)f_7TaxomzIJtQmdTK11)awY`(evtD@U>~6(5CY=?_Cb6`PsgL-e*ddHC z7Evc#>bZT(T+2y%S!D<74VF0MEN8;q0O00_PrT-aJ7DGMmz=NYnP}#xWzJh}JlA&} z#<CZA-xR-cO*0@)p~u8^2xhmCmnPZ<cGzm63#Wt-^*y6YU6!WvTUpy+L8~;vvP-6A z3u~G3c&(~e9IbAUgZ@B&%Rt|q{l)gS7TH`}l5fOLf|70#N>q=`BS;!7ga&l{>L1<u z?>}}Q{#50*dryAHPrd7P|MW$>uycO_UScSWaSt5eW(^JNSAXK!hRa->WvPGg#G^m; z+K;{L)z{zq@acg46W{fmtDbzp+RTSL{F6sBOdAi0L_tDcr&|nmVz9Hf0-#T@i$FxG zC1D~`WU&X>ay11e%n`*<2`2oYN|upeD57IGF$!%GKmtm<Gc$Ho6G$4&f-vapdt_@_ z)FRc{GW)vJ31HpSz|nAC{b-3+B;5b@Pd<5At(aeR>G^9H37}%`$Qjj@+N(vCpoGCj z`)<?<*rCFO3j5l{HitOh)7`PMp_bKvjRE6GAzS>g8JlySSY|@w5_HPIippe}9md5; zt62kGO<jPi#0Zy52^lgLlWRy%=D_KvExqF4{mLu_xGx%rJ#fZlSM=3_PP{Z~51`>^ zUiWc)2IUR!zw1YS<)c6NpIxOw;}qDoFR*QO9_xAaCZt`S&jtW^<kaEMyzUeK%WqtJ z*8`{c{<nPjW&h1LJY|I(cE}J~zFP)ykN8eTGZiCigxjy*BW_D_s&bP26vE0x$jk~@ z0JA_$zxP&QC!$&UaAj5y3#1v%oDoYO=e{zgaeAg7a_F2lb~!LTo=~NWzZ5)cZJ~oV zeJqy;Ym8gL_2jEeM*}(zQEX?J%2k(MprNx&kD^g|#<jDL7@_*Pr(VeJS%`Z;rC5_w zvRG#nU)y2$Y^G7za5*M2<Q-AF#@2>`CPO^6-D0p;NyzCGXk5?PC~nDIN76&f;@Z+? zU&b8E&grxkCyx&Wmzx<^#xzJ!%W<ocsvD`GOa@HP0Ce1O|H(If;8Xa_$`8NtBVY5Z zOTXdy$5$dHu6f8yh6=R@&)Kr|wj&SQxhVjgIz9gU8*lt)zk2O0_nZ)Fj~_kq^MC*O zO;iJt&xC!<w#^Mnrzm4z+zLdEVlMXrNg(dU7s>;yh*W~FNVRM!1dB~N@sX-K*1Z^j zJ_i-Wg(PJXDa-7<ds)~KxpA5AF0MC?NaXM&cWPlO=#j%SS#-!38aZ1!{k;S83~5@v z7%^|lLt8D$!&bvvZn@_Z_v>~B08hT)oD0s{sd}2xCjdouynzB00emeFezt@t?1;id zjst~7=4B84?qI^yR#4*xK68>!UmleJ03ZNKL_t)JeC5l4Zb|-Eev0YCqA+rUEeQza z95j)|%Tpg-kClxE?okZCRSPU-j1!Vj?QD*);{1Zd<<V*YI)44Fw|-ii>&ntQzVlzc z`#nGP;>#~ON5>`3<{njo?v_gF)=TfUM-TfizUihP`jwA-;?Bay0sPG0x%#q;&Q5)| zMm!uz*)?QoWU4vb@U@=B-YZ;DcvRjOlj{p0o;HnDcLvJ|Oj^o8JIv`+ct+^kMzDB6 zx9Mp}Kz9UWB0IHd6b%NWq?KAu8c$2OoM1fbJF_{RX!z}>4h<s>t#kdsjCh!&mY<iD zQ5AT@jrEZ5s!PvLuIsk4mFL<reDEUat&G~y5=8TmWmm@KzO+O(^y1L#slGZnvGhZa zbkb5xzf`JBZ~ZKg09DFU;Ipkr&Txx&&usR0fBH|*77v_j@)qYPW&8>nc-e%NE4i6_ zIWaKx^(--o+TwmT4}R5KZZQOZnsUc|C;#)8z3cTq{8a}#dltypQPJsRk!a9!-?%jz zcO7>>c<LAa;HIDc-H%^?+e6qW&wt9%Z+qe8GmutIgBW`=QFm%D%?6@bSVMI!Ow}W* z#m2-PK=55$97AP-B8D;jl;kmHjWDhhjvCPCw1kS^ElK)M;x)BLCcwQTNrrxeI$*pw zsjinYi)UlYa=>!3Gk>5jR_b}H_|%zS@NRhHO?5(g<`XWc@GTcDizx*-Iu(k`P&EdU zK3spWnzB-HH4XZKf)9^zw~xkb2jX>G#0Q(~4B~;)d}5ag6Vz_~VhSE-88s}_I(aaz zxzZn^mb>6207+~W5uqa3$tYZ_a^R9RVS)MGL(Ia$o%f%5<NH3-^|~l;`oO3D=U@Kt zKmV?0tyRvoC{c#_L#33d@LRMJXB*ym!@WQK+K>P8AAa)0X?cFF<@>(v=}nd;xb*zf z1E|pKzOX+WH#0@X5;TYtVF`R~SqJLN4QUqFzRoP(&2rkaC=HW&lE4yjd;aiiw*f@Y zyo;O}i>C(`J4{?4S1sMJ^m_3%{)Dj*(CK0*S>Q8j<%_XSkdgJs>BB$1^<I+)5Hlq1 z$c(`V8c@88j@-A~Pq9v>*#qTXUgo&T2Zsyxsf;<n1Q|TF^2IJ^gx7^aJzE3(cq^07 za4Zvp{B-Q)-_pdl0D34#9z*fn^!7|Ic7+H=(Ve7+XxvE)iZPpna4L{XA1mWvT*%Y4 zajtyzJ8t{T*Xy|a=&P<heb|p(c;uWT!`WvI=N#FceJ~t7@8HWWKmVzhop<D5SP2Nm zv9J)72l3?yiMGQ%a_aDve{{=F|IWwXe(gPvg}i56e!;h2^CSRiv=L84Vq+VskSa>_ z;ZZpVkZX^&QCY55f$+A)-=k6@`(q)4iEp$**fy}sHQQ%$z_!HYu5g&sfq3D&DWFw3 z-jjs;K7ZtiJ!|U1Cg&SLOD_{4Fbj$DMNhp0I9O(CIck(k>J0$?__ljb9oECBt1dks zJ)f1t@kJbCWxgrh9zdBNm;y$-RmNz)CC_!)Lq<y&<<m>K)eK`O#<P(~Bc+5k1DBbH ztRlMc3A6GD)Fl&m`BQc5X_0lt4Rq<*Y`)jBR8e&=leDnLLLMsBl+qBV9Wtj}AJ+lO z!zI(dfO^Y^KJAxb&shGqU%RfX-wo|cE<5k(Pdfh@PrBfFUvl9~o_p*|FFU`<XvQ~H z^U@r#f5Yt$|IBMY_KM%X>Fx(lmFUXykH76{yP+keq#gMSYLE#bD`IQak;&#R5<v2& z3O3_L&tX>xn9ZrBR4Ud2lAb335LNz09jv|3TqYHSFsns82{<y;C}|Lx2r)&owi3XF zZN3xIPQ>hJp^{;;AMr}2uNY&V70|YCWdCFyhV|zgHy$8iTC($?;Ql;&%Z3Qc6e4yR zB!!O=UmB7I(x0k!+1w>v%7g(Dj!-3J3-*#Jr#5_5o?tcF8zxCz22)H-C$dY_D>|dZ z+3#5ttiEo~9mNnOc8G*Ia*6FRg&bdo+}Mp)+>g6-qKA1$Cb&#yCf;{kTQ3#-d6dJk zUw`XE*Wdck@4Rb%|L@A<=YIXw$G-mR<1e}T30F+VCAfY`bRBsA$M1j5J8%E3ci#TT zAG!O}o!VV?@!8+`wO5!WhwAA@Y||CpvBk=ShE;=XHWGYc*2Uo-)G<^%TAS4f<A9GU zeM-<^1Bh9|M3StXa`JG?XZBZ4V?leV+Df`Ys=TP~hAJI<mJA45oP@w99x+Ffq(wW- zphPFnRgK0^Q&j_igC!^nWm$+=DcE{|1mFqh9#OCG(7-4>o=WC`X+^b|Xj_5%##vNM z@oT?)*J)!4ku#$E#wNNABO8_%zmTJ?tPccU`RgcLn`4$wDKv>1Vr`5iy&u-ryG$6Y zSI_9ee|(~oaAj$CyBokgsQKTT9i+lmBvX)(?SO|)9)92x58$&`ZoKo6U-<o-e&P3T z0`QC{U-0!;AN%^NkA2<qjvYU`d@;S_aO~IK^3c1lzxU05a`$h&^Y%}Es@^#FSjxA) z@bV+OAsG*{Ojf~CJSk83<-X$ba?TKYoS+l?^bjxBDDe?X{6!r3*cHN_2rD&%E#HZc zdnvJm0K2_JB_8U@wIr-Gcp<Xq`gmE28TZvfXWz-#s&PTh(At6SZ$=gq6AC<h>hSFw z50C(is8%7l#6zQXFJ=`ue88JyL6L8n)ICxQUO0?$cNvTWHAjPy?WD36`C_Gk^-;;I z6CzK6sFWRSIwc_uj<5mTX-4L8MU;Pg8@8~mHN$Siw@es2iI1|`Et!jEN!odIj=W}z zeM(*LzV6;X+XqOWN%`o_4}SFK2mj4$KMvsPFFE>>tB;Mnzx%rT-t)2h9y)ROXM*Be zU-(7y$_yxZpjw5SO1xV(UBeq#5-L46)C#gv<O^i5p!(9T<YN6vd!YT~I`%usmqPGh z?UC7OdEQnSWbuwpK}oPFd$rx3y9rquulaj<e=FWkk{HOjq~(du034DJ${KPhs5DRN zc~e6<?(VA}-uU1n^1TTzqaVJ@Y|I#!r`(J&k(9#?Kf;kB7AXOUL8X|I&q$7zOvzB` zwT{k&=&_Kul4J*Ah^dM7NRk$t@G@2Mq0WP~55Wpd<Yr~E+!6&}FwM@L*eL&HYF!b7 zbqRnR-LN4XH%<?xoWGsU4&X0zz3$U0@B8@u@B8@uf3`3$Jon%wS04k+Bev|n0pJfi zEmyL)7)!G0W)i6CIg(1SmZ*xXwb6`0Y<>XH)?<G7IMg8r*0|WppdlG~tTGtQLiU)6 zj}S4YH+2-9KPHU35_7g<S~uVlqLJMS206suDdxCLU?Nh>X$M6dL3T(AD>px=A7<uq z$VWVsX?)M|m#i4BA1z`gfO~TWN8a_CGNOmhXupHDf&FY*L{6KxPdH2(<=@f@8{KMV z8OS~v-1)N*cj>l_l2%H4p*UrS`udng0*!OGm8)8nFMFOWa^o>erf1+=s^s8O#zdLt zHK60|ANd?jNPiyXo4?|TXCE1|A5oYqW1P$(_y7)m6H_8r%e|1*1bS)GlY}7kdPY?K zoNMCDD*AX2axYZY0&1)wp3wQxJ}swA&$awuNo2LFHZ^d#j|)x}u%n)ULhRidzzA@X zSP{OIS3+16ls7eah{+V+{D7V#!ewO2hD_Ef_YT-50!SOm2mFvgLa@)7y2V^!ic?XU zKd=NrXJ6b;Os836kTlksn2A@fUWt8|0kl=zMdd)k5p%@S02@IzJ<QDKnYJu{9~nd$ zoaHQypmRM>#qJ87$Q>v6V^))!gkz6p$k(NtabT69WdneBJhrXUpC9FKeB~Eeh|F0W zB-kwnj0W;GqdoHXh|iIM1CAgCl;9|uDa{f@(?O@_<05lxq|!1ABAZ#63?`T4Q&2tQ zMzED-z@7<XGv?EVf*#-fA<K8sjOlC{2-o{|Y~fch4(Y|%yqk;tf3dk+9@?9bU>3&V zyV3Wvg)$^8#o|(Q@n9jrv2=zwsAfx-?gOnN;EWhc4KbV!prxO!!l)jSFT^P0uf%SV z5)&_6%+_Y_V}bNF7$TT_xTQ>z{PA)#?mWR{V@=|c#sW>w*WzUd#wdak0~6H%k)-ds z|I`h)K3p;X`B}c|nU?|<*Er;1V`&82m3(|ujC<nrIppvi(RMV`5^qAKN{}(|wfhKH z&c?H}W(XiqylCccCbb;F%hZK@os6&nSifk6iZ4ORC|Z>jM0Ao4g(`Up2vf9671Y4V zlLootklefFb_^5%aPx!v6H+d7>}$Ycd>-G~^P>`()waY?rl$xN8F<Spq4U}M0DxW9 zWmvE<e1_)NjXJW0IaP6LHKPFW6*VpsZ^Mj;d`h`RP!8-NpP6j>tOM^n<h4FA?n2ts zrBo{u-||1{G7wDWf+fGDbY%Gt^j5%-F>;ql6qBunSXP-#E!S@E_~_$kz3#$u55DBG z^O8s-@UcZj;Rsc#DGIOSMHfFJi}A97$=q7ZwP(i>)r&76w}gb6wvQOk#ARc~TgKZ) zR4HK%!}2c)aDne5;J!hg`zAwcMr{~>BOhVn1%k-jrxv9O7M0N_%=b{al$#$o(=#O4 z{AT^a-U5iHmNM4n@jFPY{!CJO4Q0KZ|AuS|+<wnQ$L$6iBO0GNOxEm=VVVI1;S!88 zGizjj%_s?I;*e=jnZNVhGSSUQat6H_vM+g&>5;?n0idK7kw7_76J`Y(mQ{#`v?iIp z#lUMyBp({Ie$MV_`12@Nf637%lAMZr&1l-(Y8JZFr{$HKz$~QYEdy*?aWPa50wa$p z><dYQ!Hfx9qh!o;Zbs@@TBf8|VgcP1s<z@)0A%lw3z+~x1YQ9we*!wM5c(&vjCnfC zfj7)U)}{K|a##rxLP0&3pZk~WZo2=Gg8z86n`0RdZGtysIkwzV@-{N7Tq5TB`&C$^ zhK0_S!>9!GM(sH?BNJ0j)aLftl-f2lXD0x95*0IY3CrCHh<rOTO3yF@X+R#GFY3sy z+pA_<PV19JZtt^I7Fy}3%zF$c+hPn;&2($EjW++?*}g|Uw5cUrZ~yS)=mFC6pL(?R zK95;Eqiv=^nYi=<*IeX0h)}u&bkY7)v$I7DX<3F5_Mly^S6^!@WOh|1SilNu&+Bqs z#u>jZ1;|{NDY;qW(n(>xT8!SRyPRwS+EAhESxOv3=Kn=8Ob|!3jbrDcyyMpUR?zJ2 zZn&a0xhORxA*?N<7-x7UzNbo$ar`kl83>^25@j#~2J^kyUYBmIX`8^}6J%ba_q#1$ z%W7V;e+Vz)4@9;kTge3MT5SVYr<KpJ{*p&o+~5(0U@X~0z6G+$AqT<KktN?!cZVbO zEP44i00TPkj>pp$yQ{zSC}1*ynJ8CcF_Lg1Xy{o@qM0H99YY}ddo!d_WQ@PdjeWGo z+V2~@M1y(dzbOGAPD{6CAmu_L(*_%8re3W+UnbF+gPROhxr=Aet+3FsCgZr^H8<(r zGJKF32*IS3yvt7biT=aP-i1f_lpZbby!E~WXI}SMpgBQ~NXX!8PpaO2h1^yMTPS3{ z>CwuyC@{J3*q@))!Z0=>mH+N>uttL&w<KOEE=i5DK0qdW6>0FAL+P}Pl-XgtJ!_fk zg{1h|bH`>1(qOTuSoZPDfW3TA5G1Y;FKqD69z|Yo<DC!Raqqsh>(8_D>?<!+2aJnS zp{TTvY@(uH7^rnvoR7;3BSD2iursJ(8%3)$KH)m75czwfJ_YF+nv|_Be0Qphr?!2A z@)jH6DmUEUmuvQ@L$3LyU7vxKSlGMei3|&W+<Jy2k$R!^!n2nIR+V?$a$iAHGsI#U z5^Ck|mSy`?207qz7a4kNX|7dmn$g)a!3<#?M6?9Z-LIKIT7Hd&iI>*^_v8u3$eUzh zd?!*ZgL3IJLIaaga>sEWRWq?j>9v)I_^y1>kw+dSZBBzrz>RH{=i_U71mLnu&IZgS zn~G)ji=K5cW_RnAF8no`G>izRw$nei;u-^IUml1;Nf_eSeIY|uz4~HuW8M%bh@yB{ zXWCNS$ajZ@0Iru4(fIqb0Yu&|5}5>>PMa*eZ;i|v1G2CHW2DToTek+}7h~g^Uq>Yz zN001FNFVvsgZH0&^yoQftyOLuTrZZvR_^ts!L8Ag&tIVJ-CL>4Q8>XvWhfjvnc6@t z?H!s&!?^32fKjmH`EXBcZt`2-#e@n`K=Z5_7yHHK3Mz9z+xRI#fAzOsY%A&&oUKX` zyF{*Dc|Nxk_zmcI&-HoW_4!_oUqlH>%8+*@h*|a}jELQqDT>7|(XcNDEIDZ_4zfKA z^q8HEq`dZ^87SO}5Jyog2LkYHMj*86meerzPJ$}K=F0d)MpsdE`w0W(U69!is@Ofp zg?%7B#c35ZC)*3%%9|P_+8UY*_a>wcy!*EM3J9RMAk%h7#5Js7rcGir0|a4_mLjG- z(1fb^=g*T?2yHe{CIi%kom0RH<BTq(7wCrNp(|H<ECwhWE$wA7n#tSqQ<jNc+NIfe zdl2f9=8kpK!H~BmwoIGIN`%&p3!#%anoMh#fxw=P)4%s#|7UzK&*ySE*tLr<IIFOE zEU~G4BI4dU<h$&u<&z;%;%Y5S3X#OLv7h>&#EscODpGr(!Yr4LkA*eqf=rwAY80Tv zu(y87c3JnVD4vbv=N>r-d8>YxK4mK6E`!nL*A4kNkgbbFc}Mpy*#UU_w6CFOnuMTM z367&i&qgc~;nI*c4u}X?@r4;#z+(73I+I~_07-c$k9<6J$<tJ!a4^EyC*wjE5}CWU z2*Eebaz{xLrS_32VR}SRoZ%c4lMPE1N%)OmE>MP+G9r)BK=qBTL6aU3>gm?5TF~RD zvB#6i6yN)JnjsxKdZY~|ZB&CB(DiO(&dNW1Y|7U|#wGp|5B42w7%FSc2PG}j-!ex6 zP{INmTQrpy_@)VyEH%N5Q^*sNoV6|AS!H6oqMSidM@XiV*ri!Hm}bKEjJ8F99!C1A zvPC=`K|nxRjt!Uaa$Hq@>3uhMWO9eB5+R5yJ#T@4AlIyYH%?mfHBk90!jh~$WER|E z0z1eQ;x6N5N`wFy0q*mlpeei$`Bt18E00y!K;y!r3?nU_LFQy;9x6IX5@P5Rot!~g zh68yBqu5XIkeh*^Iq#qb$k06aE;;P(`%m3;$DjTq4u9#&@r%w@lP(9^5}`tI?l@dC z<c^_tSbh8})-Yl#KWWOx8C&DdsPQif=0WC4Fe)QKCJC9HVcGB3S6iwhA?Q}8`XE)P zS_8;(*ov=AM6-b+t<PL#WXX!|84d^z6VC#1v4Cy~gG;ZW7)~M+MAv`ivZEERYkB`2 z54`?kcO|-m);+{E!`||RXfEszS@+1AYuPAehz*jdTa~Oi@GOKAfNZ`jy~w2@0kP)> zqGrx#LRFOVjrV9-CRCqraE+K0pkPsP$0+!8+96|^_wu#`cGnW9zQh!FS`hne*&-rX z43d8y4aGdB5=V`o0eJ5XkE8WE0Oy{)Y^)7$+L`F0fd~`1W-7zBv_oqWF2ws9dv06* z2K*?#PUDUclt>(J*-xAO<(4zpWs^FOk~uC30jS_Jo6U#}`AEcQi(5_7a1><{f{7ZI z1w4{4*FZfVC^Z}K!<N`XJ22p&=-IMYleS*?<cnL@vX`HD>kZ%dWyj_&WgcQ8Sh&$e z#4Yqpq+^+yAWN2M=BPAgyvXA2D5Njhn_>1PfFc9&j4tR<{oE0GK6+}Iyf!x;(H}WE zK63K#;ZuhXpBf)NdHC?D!`;x1A3bvXq9aGoJ*#=Vhzk+URI|&fm1r)hOPUG51i?;) zkdc>1gdw9F%;rQRt|?TY>LTx8cC>*&kLao9arFQRz{%5N+Sn%A4}r^9Kiu*|$lY3E zS>Qspgh0e$fl==nq&p=Nf3c9wx3-MR2gIBk*!VkUi}I7w7;lKqi_1qO>2z{nTz#!4 zB3phW-!?8ljfK2!RIOr>V+jc<4-*Ai#q7o|yTNGf0C3TfgJ&JP;DdKPSP612zjNK4 ze{$yo&pCeK83KWm=)&C-&1Lym=;weX5M0X0Vbo!YMYguizQr_=g~p(|k;Gi@Xiujk z65#$5kAC>(2S0f810TBi!4KX1z=v*r@ROf<<izRn(8Rf%wHuBdJ#y^mk>f{?96x&Y zlb&$Sv#+?|*;iip>@U9X;`7f+C|WkbQf1A=!lh^Slg}@E6I`tkdYXw#{H=^c9&7e^ zFB22ja}=C>iC&YQH_A`j_Ycs=1xN$%p6ec83F*YCLx9|EtWJ&*MaW&`04KU0fI|zi zE$1gGuGzRT-|8!hzG0u7LOjlj*Gn1`8oC)In;Gv82elWB$U!{ddo!T{)N&SSTfh3c zM_F-~2NNDJne0$asTcn6c|ZoSCVUN9bRDQ)jCKDfG}k=&;{6E;z)!yQV=w<3SFfO2 zmPK6id?H9J1C7dMaSxG;rvZn64d88K79}hI`o-Ho&Fy9S&m%sbQiusQbl}eWPk!j; z2S0SngCDy2fe+sN;D>I0;O4vco!C^C(}&}&_nf%(o}%OBmz?vQD=&QZ7hm}7D=&EN zQ;vSc(=Iyq$gU6_?5CGTT<A=H3hN!aRvbHqN(-X6R)OVfnVhX{8qk+Tw#9qeKpSM+ zGV0$gz50@J+PVtVM*wKU+#Majd#`&O?PvgS;`A7adv?9m>9P-$ArIMoTBU1Wm}O9d zU4R;Md<PK;&I%Q6W&CZlN1W>e2$D@{R$Cj>j&KRP$dvTVwXpC0IBu~VF{G^$U<E~k z(dJCTue>_esHG5`xFDHx*o<a<9RVhRBhAJRX0POSA{S<@;hHC3@{0F<5_`)pzW3%I z{JLj6`J!`HmZrjpWc5(2w&%s-)tYJ3eQPS6{UKErf;=M*nSB-966Pco@j{d65?OkD ziyyHxeEg1wU;ig}z5WAt{=o-7b^CpPzNY|8iR$(5y>t3`uxrnM>P6RFb;*mKb;&hX zUGk-0bbi~KFCuf%prVjKFlBCkR*bA}SE3Ko<U*6s@?$1ooYPMSh8;RE3>XjRW({b& zxlMvdT=Zzx0brOcV?6z6|KOkX$5=nd%Q8d4`gacHS@+_|5-zz7%zilJ3BZ<pN9<%z z+5pyJYv1_J9x7vI%Vdr?W4TixhxJ5En}<6*6$qL=TyR|Km1HECbQ62SIz#f|T095p zmUt%C$|0aL$jNEd{t^KsO$uwx&c<CDA7}<*I(Tfd{JrMM7voIj<l*>Tzy6-z`>wCt z#gpoQKUC`U$BAX!@$Fd1YH%Pe1CjP(>!tF*DsL-f7}%}9y%H(#$mzr1e$O4Rd;guU z|G=F$-0@laxXz=8{ax4H`>yNm{nx+sF#yLeI&#f3FMZLoF8SK$KH&w=xcJC!DD>r0 z-O(yRoCHxWt1<*OFnI{Uy5mvp8Xy|b&_}c-x5tXyaDYAn@iG&Z=Rk;w&YZC(a5E6B znA&ok-g+56{E2%{?OiGT{3|C;jYS;iLBM=;6P@dWtY~Civo=M=TlG<N0JQv#&@3N( zi`PYYGTk$s?)A~Yr#}9uOqlJN0Do&L-6i30jT|D*Av&@G>!M{*biz9TV_#3W7Xb$F z9eoznN6*~`1l=x5?u7VeDJ_63zz=3j^4<V!v&xd$o_pDa&$#sbkKX+d_Let(>{CDV zrfYxr>z^?b!4J<t`ev>q33(RrsXaH4USh|kiHG`qp9Pj%qU>ha%YYm0yYk*U-gd)1 zzwqXp{@owna^J(Jjg!xEx%0kLuYTKYuYTKY0M0$K`>JPO^5W+md-3z0@RiTJ<m@9u zA;364cd!F8${|8rN7-eQg$cPW|FvZyZq7ZNW-$M31Nw+zH(xY@)rNw&X~V({aLPs= zS?BA=+XEy3kDNSQf3RS%#FyQ)X3*A3KFp?9fkoD1e8?Ex<=W%5L_jsUw%+9_U5Rlk zOL@d7$@XFH81CQJNka$$dw~QxvBWX=b!f<`l$Esw+><nH_USp;DW5y`RMWG#WJVa! zmimL#t&{@O-Ozx)`xRgOJ+J>T&Q$){o3H(vr(E*ao_0LV0RxMy3vnd!d=nzz55K~M zC@D?Y*@Dc;Sjgyvo4X4E9%@;nOHR7wo)iDqAARx{-h9(XZau?8xX+RD$f?8Mf6raN z|DL-5oPE~tqGw(D;^#f##aBP!nrB_I?gj?*yFvbxNW{Cf1c6d_P4>CX9eA!IdL5SO zPTMVyf+h{d=?@KP^Qv7CKMV^m{7fuq_r2FWzD}_NaO%-<L?7ay<f(+bcQ%}#8_=8y z^k7CFHzGR@yG)~NF5G?0!+D9SY-aInBMt^d9xuXXS0#lY_)HSaZZ+UgXWmKSSfuoP zG4+)rgFDe6BjAbU*jN#aH|togHx7hrPfp^8YSUgj|K_@|Bm6G)t$)u;S3Wr$BabF2 zpxpV$=_mio*Pk9mqD47&-jVnGcYpQCN6#rTM5#X}RDUj4zP`s0wpRb#(1ieLvsTjQ zPYS9wAmrT{51e@PM}PC$pLp#Jryl)$SnxS=Fud@YmwesTPk8b3kG<&Gm!5x4J_BB+ zM?4^4|KA!_MAe++1{xa;7)K0|MOq)nhfa-m-gEMv2TnhF*bm2kIQGN17~A3D;n;EP z;<K+fe%|HB&p$|%HhPjYRnR;MeVtt`S?wGD``5qz9k+ev0{qKW9)9hAxQ;)z!V~fZ z*YjdgUt(Vw`lCjY9OL3Hym-}?NZlyBuETR4jw~ec`ddlTxXmE)_6Ih2c5zLL6k>QL zAsCT4JtIjy-}U+qogg|psj<~?#@f@7QH0C|EJ%RJYVBzKAH8(01<90aJkhoGpZ@B* zU-`jX@fgbCMe+Cm03ZNKL_t(nUwO&z{Fg7h;B4B?C%I8}7I>}#Wur#DJnHR(;F%`l z)x%E6=UQ%DLSr)M);RY6^AA7yeXsn`ZGX;N6+T<#VAsC<X&1fVs!LvQ)x|G(<|WU( z@`4>7hdNXmnTpiJ3R}mVa?nmbI^J>5soU>9amT%<?zrc~o%f!+<DOG@-h1+ndrsWB z)TA|~y=55M7hQVJ6;C|xiYK0T#S_oJ;)&;8@x=45c;b0i96$F-PdxAJvv%lxo+kx; z^P(Ssq4)8!Z+_LC)yBoo?{fF6UwX*}bVLh>p@=4&gx0t-4b1b`3Ia$cXW5Ezuuxbg zr#+$5shSAeLyu%l#w&k0#W?*%BI$|#J?%xLsMZyveWRTM!cK7QSWqS7F{`F*=9O#= zocjmMzOK8aZ|nc)rRX%v<1v2J1hVCPgxBA2*Ejys+wj=RmtTJLHGlI3Pr7iKCzZ2` z&6!8j6(P<^Ao4<a<(6xy;oO5VDYo?*ba(5gZ<K7f?zV^i=Fk57Kfd;H^mWk-&OP{w zr(g8tPrv9Xmz{UT@pG>@e$Exg&b|EjIlG~qIz65^eR$&Zc=F_U;`HH(ljF%p#}lUx zPn;efc=*xVr^Iv5soU>4F(;vWPTu#>U(hqQ*6^G!z4)5v9>3<f$6xfk<IjA`g~ODY z!u&dJx$EI4f6J@>V(9stD!2T~U%&j=IU1y<BAK8bS=-p0e?~ltpE8}29J4it*sAov zEhBf?NWC>d*^@s+Cdl+Nd}ht34w8PDl3;MGP(*v#@4)aUMevFxa^uk|m0<cQjaxN; zk|ngBTW$<xTL0dcu6;Z!Xb7GY!#MV<e)>(<ooQ=Blq)Ve=QZE;g6Cg;R3|ZwlAqHc zCxUR|X+|xoyU1<!)F<p4Ut<i6jcf=7(%$fjH{JL@{^AE7dd%bZ&*Q@G|Cgd1J^!q) zoRiZNzw)`qE<JiSfY-j|=9m71-}`Kn_E{*`|ME9{>E-9Izdhb@W%)C;ug2;1JSGR( zZjZzzEOHj{u{?4p3}V8OW%123pC=eb?HH$K9_T^2!9h9MWvXM;$O2@3eODe&Sz=Pf z58+0Gj4IX1jBO<0$X>)TYrGWQqTgl7j$fwfIY75OO<5{`{X@5X+biFN$6PKra`39} z_=<0O#__ePSwNQ^*csz`&4sgO&(kJHfofjGU>n_QxqfTH#P&S^z+LyB`n#`q?{B>8 zardy{^R+zV%A?mj?}_(5aOyYTeB)=Emd`@D;g`ShsZTmj=K&HW*)?Ji?Q<Re{A-ze zWU2vzAT3eNKO&3x^9cdMlsG$5vo#^`WCjw&R(44<q5LhS>F(hYSmb@xEsRnhX(mLW zy6dTz>ZlqbbO*Ars#(gg#K^rCskZ))U#hWtD!dbVtz3V1;G6#Mx4-WCJMoyyZfHOD zP0#!vzWS*LLp23SSuh_tQ>2Yt*>ftDB-CiLX^oEh@~6jJ1yf3+fm_3GzxR&6{qpyG zzCJPfLU|mP8(;O;zW9mfuD|z$-DdHt+$@l;`zD0_l^_&cdUcE8NazeQq;DBCxztl1 z$v4LSNYjycl!avt!KY;-#V*bnOj}v$#PgV-+;>+_{uqk@Eb~^|kc{UfVYUJD=O<d8 zoisx;m3*pe1OC-FKj$nyWAseraP0r^w?Fjd|LXsH!wsKWspk?u$NW(VmWU721WuX5 zri>L?cDfky6w3cfs&-SR7hNAb@#x?Cx9|Iwm%Z%^+2{-9^Qjyh?AF)65aYJxb~$pD z(Ox4bipurVEsIM^v$Z7vay=h9x9rP3-)cw?1r&IY(dNDkyi<3nhoNH%g8;8tV@N)H zucvsT?IYGlPTd+|gX&qTvnU#nrWR{okD2jPHphw$Foa%F)v$^eS*l3wha}DNg&{23 zG8|VOJO3YC^HhAA<pZ}r@E^SVt>6Aj@A}xi4;K-?k&W^#u}imjRA%QU9?Yu#ni^$D zjqO`Rw7~hpYw!LmKk(+CeZwa{U1@xwe4%`fmxJB(?(p<6&onAcPAZ8<T#{SPF3cf? z-m1n1Oi2vl*Ab>AIhB+I8O+hvVH3zy^#vN|7~#5%IYDHS-V$1SCRijHuaR)}jn5pz z+Q(n!Wz4q*Bas`60DDFOqZYZ|^Ez_-z?Gj1ZhXRAFqI@W0Qe_g`}E5%JX;xi4CU88 zaNDzf{7v8gx{uuX@TruR#Ns7mF+V~ca!zFkn((}R1C}#p0$};VlZa@*+i$q{TYmg) zfAvTH==wVz>lTkMlrNOOL}hnyK<^GWv^Y&_af6n<152P`4`N5wyh4xnIW&8K=CCNB z%5dx#p5)eB4Xr_*CP??bd}j|-FRLaf6HmUDSnsz4W*M1f!A63<tfvhdFXS@V!B`7o z<h}Jh`9@e46wEKL6D~hn|K69XeXKxR4KZK5?uI+R`4`_Y{%QA7owaNK@w30^?|kJK zf5X#`?GEB?`L;6V$vLp|GNYUfh^oD0R{m6vTR&{rvXm2#j_>}&y>Gq#-rs%S9k2Vq zr|}f+3*`&tFI~Csb>DjQyo2T0!-&=}9<JxuO4)ihlds1d98>7bTa#P0m5!k`t7MGn zflW>xPAAhKt7NTgX52Zm-b)&<plIKn>{S!)_7JnDy{lvTIW9*LieR@m;@u*TWv4j2 zO|P+Zpii3`BKzg@1?J)>ncBeNC*E?yKm6Sf;WH~=eDS&e^$V`}TQ9uwDVLl(LoSCr zT;oFqZaHk!6uHgbe$6wm-f_d7554vJd*6EfJ#W4Kp7-8(|LMcehcg$xP`*(1mkZ84 zxc_zk$#Pg=U;j>JJVeVi907TpE?cfWR7pY#P+L(CDUhXzzcqCz1G;Z$7IwDczK|sJ zlsqD1?EgP|Zys-1QQeDwYoBw^9sBk?&`mcqG~Em`i_ongf(SxmjI+-fO`NA^oD#?1 zFPa!l@}kigjYgkC)TqxW`eLF42@0qnPACEmLU+>*P2ZmGe9x};M^&x*)~Y&}v5}Uu zKK;49Pwg63)!uu3Ypq(fDmW}y&P4l&d3TZN(3a}58yT*%*vEuVLWm*)36uF$Lk1*w z_$~~cMP<;ox-ayUjeTnxsX^n7iFY|0k_&6_!ms}He_wky$5PxAG6pBDn0w}$g=ZeV z@btqL&h2j|$YkkSAyDqHZnM?Myqh-Yf?Qz*0DHz}et65sRX6Rra?{9_H;wGrJ9Yni z*QG8USajmr`PY2vTmZ0b|Aklt#mM^5e{~xOF#r>|^0_+eBJ`IpfPzz&l6S>|k}c0) z6vw$rp%_p+D-09Ca<~3zHp|a7)LD!9Ky?Dqq7te6$a!0_(oJoL-Lh(MW|<tQTl~0f z+VR*m8#5p&*o;zJx)<d#>k%0q(0Cbxe|*xhzuvL$hnw$j^hs-R_2%7IZ{Gdamu{+z zIdR4CnQIoFv1Z}XONS0wFwoPJo`ED#gp@aCxRZkoJltAq_l!?(-Zim#*Tm+X<6Cx3 z+`MD#M>p@fZtLCyYddF`y7Yk4+EsG^gi{S&6u~;q{+xPLk#Cd)V$Z)vq(W9mq!oLV z`4baF#H3Z3RLqH3R|XzciX}KpTb8GBnrosti_6+lk5r46a;hRS<t=QPa<-@rr#G2Q z#PI~0VIv<C9%`FD1#bY$;*l%mB-fC*PIaO3R4E%g@@iSDMl%_*+{R_nDoj>y$kW%X z{?Btxe&k0kzkTlm=JZ@!E8qm6QJK{X2G%SdShHyGh$VxEFCJVp*c$F@4)-^Q`<sKU zMx{<4p=V<)c8pGK-Zj2?WMcEKi7g`&n|DoY9vR;}GO>ANyc<uUOI<3`+Ev3a6;S)g zw#L9#Fb;3hLv@kPvRQbsY~?90QVGa;kp8r3RmFyK>92&T(o|R)HcECaIYx-9Vi>4X z38|DMsV(Qtru8Hh8dw_>kq#HqL>9t1hPi&VsnJf@z&28wvC90{r9?wI88XJyUmH-c zP9ytO0!TKk2+)=~h9WhT(lLYOgMHt<=(KbG`Km2@_DcZDc5QFmF?!>UQJ~;QU<`)) zn!|lPJq<Hc+nKhVsqJ*TcGpwwx_uAAlXt00U1D0hYA#?<HT)@45&&0@H#8(coC*ao z-vK7vQo@&Hkd}ZVc6i5(wTb)@%8^Oo2S{*9Hk%buJRp^)LXDENL~6^*o90`#^s^wo z4Pdp%We)SLvL@Rj3=-X{5=F)oOq9sj1EF{$WdpQmB7M&hIx-gAH&U;YX89So)hE?4 z1SCXwnN$xe9JOTV`!Cz@_)lDQ<6RH7545$|JwCI0eC9!Jw@Y36J*Fd8&heU%3Gwiw z#0VxkiHUC8sHzZEGu#!*C-si1lFU*9RGqSu6ARE>2V%7>m$vzJ{27u&)G7@RX{S_Y z8D(?qtg|tRV=D*0k>1IIx+)DO_g5izCxBu2XFUm721`6QGVqfM^L4udzDT2VVcq{G zz)Z5ei#Rf=f4T(Y%UK5i95T26@|UhZ{-9xfqf1@t(g8)it;Qn`UjSpmiSI$G`JbSl zfH9~VK*;Q!m>d3hc%_RNN>TEMbLJ9;OL2-^D^Z5o!!-CFWCBoSHXa`G-L?D^X-X9~ zE#=vA&V^Msk_bz2Tq++rRY^hhNi`K76O)xPM%%`aVxHoJ6Q#mV3tAemQ-}$_szjwS zhzzMI0Jp7P1>qz7Tsqi$=^vf8Vb%O>c)HZ3E*&s*#)(S@2YNil_#JzVa3F6LPJa(S zoxm2M2B2yL|J4SIoPvN>Q)z`IJd5uXDngM-=i@A+@*oQ!s}Ts95*cWH>k2Xz+qp%N z1!l3E3Z!kZWHwfL?}RG4g;aVoV<?TD4_9F{&qyJysL`Udu7(Z+1;RhlVyoDI6*S5~ z(jqCQ21WJI0tWN?dj8|Zr#|cW<r(8$>Qa{u3_5T93IIXlX#@#k{4u+RFHAHTnF>|Y z=LfvVFjXcL<4vB<CK6vkm(Oex87DO`*-QygEgPE4=fI|B{jQJsp{u#RlJ9i1spRa$ z3@a0&7`S`+Xdq=C9r!QkC8cbjY;J*28Cn$s6=9yL&}ML0)Lw*?k<g0Cj&Cb6G-W8h zJ;)r#0T>MSG(P{#6aV??#}Bp|y3Q_jsY?%eI&Z_l;fQzR;YXsVc<Y?g7%IS^s$i<1 z42kilB7<H<7}i;_P_l((tDgs37=wzCsaS-o;;?UWVY6(iA*A^kld3d72upIao=Q~R zL`jK>@-{p4KpL&m8l<dpG%$(8F8~8ec!(ECxK*^*<rNAs0ITj4EQ&@k6E+aIM_V)? zvWGr5nKP7SFcn^S^1;`<_Vkli%*}Y|QkS~)(4~Wy4j#37A%KV?FsPb@Iu2%<{=y<A ziXxRb;~@i|RMH_6K8}=36n`r|p+@rOvd?t*ixN(t6w)nThmNSNsV2=<B-0@$3wq>3 zVWPZMaKdIP?g#^w3aHj;sCk(uSC802mMcJ#o&zxVD2Fb&<<{o_7}1ba#ExWDDP@=6 zD`tpCs!AAIyJ+wSuiWq_k3B47r%PSx(nFNaTffp&ZXGDB3`JzJFhNOjz$5Sz-5HE` z{x((6jT+vvCqY`P^t1s(VuUa9{gDW>XPf!mDf<{pMzzFXvPRJ%QIXTnSV-o*$Ptkh zsp4WsxjE~VBp5AY<w7;Ybt*oQig)HYf@^xV15$)T`e^b>@`sqS$IPT!P!+kCK-a~J za$T>OtuC8`Tg~eI=O6XGm#sf>Mc4bTOI<nu=)4UFN2SM-j5ooZ!IC74r?(g%Psl@8 zrDclCQ^|spOUy8!X!wHqYs%7-GqV!IvwK7HeMg-{ToEdq-(7L(3!$wXRt2l_lOq@v z5<mE`(<>fvi};s+=88dXIz!48Yge32#ce8fkTXPd$&fh5h<wCI)2(73*n>p@{yk&} z=}tFp-U0?^9KPVkuYJs?o^`_V;XZV!OI>=XQlm0wpSm)*$;sM}@fwe#ssRHp&rBn_ zEyVLF5N%w3EyTc7b#2Ed+ar71cZ^I;&iI@DZw@3%Xi8#n_N{K^*;x3h{ZF}DL~biG zfVKV~H(^SZs4hfFn=bR@KwIY^VSFef=7jrhQV2(yr)crZ(IVDnVz%Oi3`-7X`EyZ^ zl>yaKa~3c@bdb^R48@s()QEI&<(i+3(h7ZXQ(3&=<P}dlcG(BMx9P7gy=iQ!8?&cN zU3$pT`s0_)o6`dXbqDYYh2JDgMl@q#8Zp?N$XaVrHBh%<DqGtxU2@wOzH{qk*WNig zJ~KI;Y^q#3zjx)5{*_DmS06NR>QVEbaLST-b9!9edb-VWP{dA6%MD6QBb83Ys*vg^ zAe=C1I2@OuO8w9nSJbvyby0)|#R+HArL67<cTm=f?5r7>PbIe{TSb;MJ`RJ4p`}Xw z4C*w)EJ&d=DhGo0&(2RE(WWIOv5^!@#*6n1H^^$o&s7S>Jqp;eYvRwpbHk^9w0V5G z3rk(<(nE;;{FRUTvzMIgzhMhl_l1T}+SVR&fDlU629M!(h#qa7aH`w&tN!NdfB5Q+ z_ps?^!<>HH!V5Pnd&(IH9kO^Jky#=%Z7NuWY=}%+kw9e1;|nmHAS<F;OlJ2E0x49s zDky(B@V3fXJjA9LsN0Humes&ORSbwOP22Pu)crQ48w71EJ1QyfW3g#&w=QMQM+tzn z#=h-*Ai#bOHl36^lipP@mj8{VOmfR&=lJv|uDbQ_FTds1k#TgXOI>;h(2qX<v_~Gj zl#ZFGgVZ1e$Y0dSMLh#k(ZPN8Ltnc7HGlKt`@n-Sc>0+u-t&^9)+`?^;7TsnRB&!3 zaC6M4sY579Or;)GX-aI}YFNrodEmdol4Q>1xNd>~2_fVwqYKi?^Wy3*Qk>`n68Rw@ zQr6J5%2PDWmAj*gSY!X}eE$@A6SAWmS8VFoE?TX!@S3y+u289Bfo5R8{)_D&yzJ)h z-FO$e)TJ){?r71xzU}|@;;I7bV4bry0gos~@Y2XhN!w1K$ktA(9RHke{Ord2ekx6~ zVg7jIq3?LXx~21aL(TLzun;HpNblx40W!hL!f}=(=H#x{LbBslbAg+;tMccqs1{>) zQZ(YDG>Wx#YB%RlF)z){&SVZb#X5_slB<x6u3`C6PLj985JQX15gajR$|(@(SO{^n zR!i>z0HA5iQ;u79>8sZN^v!3y^_(?pmkgGw=u(%uwBPB%GgnuY0c0Z)!v0p{ofi@> zaBY+aoCGj1)!xym`-4URX4>{6|90~c&;8D4{_{4y<RFU^?z%GMLy^s-IYs`7Cm>e~ zDx#be)GizZV6L)84HZ`tbeYz3eiDY-liQ|0V^G1A)lQ9ayPZ@8#bg`=tH%>5K+KYo zS8lSOevsWeW&jxbw)4wA6=v390zFQY04(Pqy6}Zi;>Cu-`~0izd%ya#ZC|~1+fO#{ zMwhzOr3Z_C@qeCk%;5{;;*cln-5Khzo)oQiG+npwD@;C1-G9dCCm$f+rMEukh(EvR zsLF)BqE)IuFsQgmcWq<3NbOu}u~{Cqw4)Y*a*ZcH^_&alHP52c<Ola@^~h}_wXp_M zDyTFh)43OUL#h|~QMScuiz=7WkW88mJpzq)J$9|Xkt3v1i5OJXwk!oIIYa|qDJupj z<e82I42;3zq24nNU-;5TAM%3J4qm-zV5qmbdtzqqME7)wE_G=?(o-J4=2g!=0YIFm znsBJ7k!_3YdI!Hz#sn!qlElFN-z&D>w*7%QjOOy6@4WuDeH+&=Yc@<_3z3m!B!~&9 zBeCXWQwe5M8EDg;xi%AqzCsf#G-<UalgJ>6EY*U9p<+omF=4Ua7>@)>Phf94)mhb6 zaX<=yZIcWrbzgyf-mcPZZ2FT+*tcKcFRLt*DKSx0zVgh)JV*_9#X1%2rJB>`T@zQ_ zGIGVHkt;ThTyxv*shOga%Kf547Z04UYWVn7!zUa%_xM%A&-(kTe|XdVJ(s;pT{=+c z>MuR_q@xxEF~l2g$dMo}6j}CP@L1(kC=UttN7wB*^+n&D9Ubl!oq58dZ~f(I{k;v> zW|VHih^$EnEOnaun{*8Zr3t<%rTd1YYyf7~$&e`x3`@#$Px(P0yHH(#)xGYdqbLUC zmhhlJR09%eNJga-OG;HW8UHrBKw1L;s{lzzA%ul?Ti~2U7}Um76Z7O3Cabf^Lpo)c zYS+KrIezn9W1H?8+jQsH%{#_6?HJp%V{F&hH13X!!Tf=qg+r}{L#>5#S_jSRJ#OXj z@vDZ9TQxjypoe)Iy69Wo1J1kjFrg=&zWQ4qeTw%-KngtWXVg4`rLLCK`D*X#?I-fV z-@(?O{r8(+^MR{I_D(%ed_MmPD?jz7lUPYh#IYrwIRi=}TV1e-EP_+fAjZuh0}qBD zscLqv<Zso%CRV50l5$j5J<9uNI&hNroqMO!Q9?w<czz<PhTJUzF!mi6#H>mo%{3kc z8+rV8siY9y*2JGx=t)KSEoCk)21-MD{Wg}Gn6aaiGyA66@$Y1NY^puj*H}2{5U6L~ zKu@E}B94^WYCPxS`T?BXb*W1aVfy~(p1t9O<*3uyyGI(Ed~5<*kjMq0i1)7(LDPn{ z+wL0s%75K<^VYq0?V9XsReh~SU#kMJ<<7C&wvXMqeeCAj_uZ@S>=SQ1@uDZL@;_MU z3+1rH(w|d0?cG5p;<cKRCh}T~Nr9wFkxcP9i|kH7DAWwn0z2*g$)N}Y1HxoG8x6%( zOtCsc-W{7>3-L0Qu*b`3ftudxDwLxUr!!oEdW9@AU&ySgN{6fncs8?&s%kB9!f+Vc z>gz#YtF=%vS1I5Xxy`Ez`{+%9$L_nIDe>Z%PV9t>+yRU})(fv|Nu(R&bLta%N| z0>S6o1nFxK0zK5r77e}fX=_7SB-?50Hh?>KPkrkLTfTAm){DQtRfTdW(kuV&r;j{x z-f@Qw>+M927>z{UDY?NZ>e|klU$r7&Bg^EqO~3<GTne&+VzRqj#AFRwx-Dm%8|Vww z5c43A(5b&X6h7U}HqwDY3eu{GTywfmm1eep0Ut$N8iG!$l4LX4@F~vxPor}(qs2$A zMzGl7qFSS76UAv)F|kU9#$BXpRF}H+drN=z()9rRw;_Js0AOHiAEMhG7t6Pz=XW-l zwU+YOkTXaFAMM*6Zq!&jxAlT2uKx0SHr()~C%)){L#yg;zPpL3`kC+k(d1NJm_WPl zw?gy+S8mx%`OH`n3tB=+93eojtXi=M&Ly}KeN`&5kTp>ju))_(5_4l+v71VI=Mqx+ zO3V&#oo4wt%-gJ>O%vUN(%1tM<vCi|tOGei3W|VaCl}Yu44JeZn_2C+Z_Fz5X~e-M zd$*7tbHdNYru{PEEvZn%>n?Ta_m56He)(Ca9ufh@gzv#cP&JhooH4W=f)QS#uZBb; zcou$gwQ^_$Tsl191(C6G@xUkFddk(GIQx)g1GDq|>s$Bz!`E*vOu$W;{yVCI;)0N^ z=%HsaiBzRRBS#|^wK;-{BvFbN=$d6tadyrZ8u2Nbfs&twT9@Y3q(9f0kXE9I&9FIy zt6t|+M8vFysv|>rlS*pyUE86o&tu|U9)&7Pl$S#V;&u6zwbYPK<BQuuFY;GGh?_HM zI{Y)cyNOzty7c=%Z+rQpjX(0W@@kNuj+uCtMAeKb?#uBXSC|-94Oqla&Yk1uKRv<& zfVSK={86(>WN~xC5%aJ7*jbM}a{laWzwcje7@uqx=EMft@-N|b*m|#^f@iLbOxy!* zO9u=MHw2z-Dd3(|qIh6f&Bc+)bRZK>0LcNYs53C=D#{D;faH*Dv-~W{bEPmZTddQ{ zL*u$Y4+Ckva;*$vro@o6s@D3DwuQ{!k$cGfLDn3nSVVmpS;2f)FJI?l6uPi@xEEdO z((g5$cKnL-&s>|P$=T$RAQ81q^67dk5zwkao>V#;gg_761c`}wtb+q8vur{Cr5`%u z5r@rog4(v7lOO-)Z<B9axJ%YHOx%pma)zM=r8#$=U&(rgw<thtQUg**Kq~I?Q!tbS zQ@fzFsI<vtaRNPi{an_R?pk?#)EA+AOr#;sY)VaJ*I}odrQFDPQWYsMKsrnekMY>9 z?7=8foN=}2%#{@MPr@eJm`O9Jc|=v}1>Z7&!C_18#%|E1E*;R+>S=u9y&DZ`Z%=c$ zqU>_<+R$GC9y;_W&e=nH5@E>3#Dv^R5-m-^0(P*!_2oZbKh)oxh5z?`{)P#+l9UU| zT=<$`h*KnxRun`$+s>^i0%kUhlKW>%kv~-pMZi<~htkrL;;Co_^f*`o21!vJ%x@_P zZ-AOk2t-zcj6iOmWLLu?r94#pLo0VmpyzxPGb@sahf2jMGNjT?*1E}JLnM=eaAmU) z9XW5E1_+5O%i&AAQT4j?`%G_p#py>MvDm9PHXNhpq6EpQukj#rw-i*xY(VlYiJnx2 z4^`ZS*#IbR;$pbt)=iYV>sHPA=%1W83;$d1n)uvz0NX$$zi&(C#0+ZkQ~bZ#J6r*S z<X4!%BChCEhFrYRii<)lWWt95fMsdE`$Y*uWopWC2uebxm2>g1N?5LwSK#uYW(7{e zbK0pmJ|(b-T$_|3#g^*4y5I(EIw=0BkOG@`RgtvL`>pcfOKRw>gjt#p6%okLEJhw7 zO_UD5yOq^0b?LyRW7jQt^B-@3MXDIlx{<>keSl{WmL{w-0a0_Rg59NZehp&8qYv2E zpIRqOaN%?LL&g8&35T3=)NG4MU$|t8p4!XIJxXx#xGULRl%UA>vBth<!c+;|ctNhk z$_renVq7^=L08O^l%-&73I>YB728swO})UC{nH{bJ}FlDT9_=3GdG<hbP^ECroQ~S zFvWr}001BWNkl<Z@>P7~pldaE5Kt|KQbn3M*TC`z-07#BC~UJD482>-HY1jr#Ym#l zkh*clyYzcXRb@W$-Y2zMO&9>q2O(%Jyik;^B!%z9kcf9s<Q(wW7H6$rWO5&==vA%; z{}EQv9oz}R2!0;(j4|(g(NVK><kD+*jO?3^vV}#2itQ$tB#A6}>QoxksUTAG+I;$} zgquvn4HA9Drj-<sjIKFnF2RdVbc#2XsB*HwNw#c)q81pW@-yHcb0t;fGL|K+V#Z`$ zwy2WA!jL6~xQblQl3_9#L&CibnaQ4ndO4+@ynd-9Z{4?OlAo3s%OMcyC`)Fwr^4Wr zHS@BPUFy>B1HJD}=bUof3c!%Q624Za1I2i$Rm>BYdD3rK7EWBE`y>Hx{S$9*m%)Lb zC`rad0pXy|OLK>j_WboLX7RY2Y1?mIx!rM*h#(QKRWR7dk+PD3Nv$jA@<fSIA(2s% zKVK&k8Eevlc~vIsNY0)@U+1-<P!?GY$f~vJUz09&6u0-vVv?m1R^2hFi3{n_bsm8# zNfm~QSjrU{;y8aij{G`UT0|`;=1s8H2^w*JGZfx%w!D+M?!_1RUj|N#!<G)LS=LpO zy7c=-|Kmx=z2PN~rU2dmf+R(VOqvTbzlOw1N|cUNXYw+r;VX3MRU`Ryy=W87tb%Ef z$aAGCWAKVUJZzTkeDv$LT=lDw8@7z@*gZ8f69Njb*fmIw8Xyg=Ai>gEDUiD1p@Yzq z{0{u;uuq8R(@GpMk|`9-K}BgxO7_-SxK%EzQgR@a^eXFho?mVLHJLL#vVr0bDyd7V zXEPDy47uEZw5l?5Px49(B9P`>N`ChGH))qt{rRJc@0Lj(XQ!7&b>W`j*}2CrzH!?F z6F<L8U3w_ciN_rD@%KJCs3jGQ^?_3%8z&ke4p7)^4#Y!af%wf-4OokMCM3EnB8bDc z<dhy)L$sQNCgk%A2t@pN`MPn#K~-hyT8Rcvm;d~((_V3z{2U%=E*NgjAL{Xc=eWN; z^M_gs=Jd>;(^@dtoIj_vU{23aZ_}_q@Z6>-LfuVZKqNTNl1=EZlAJ~DL5ZDQcB$gr zd*u$UBs1fjNplwKN7f5bfa<g@(3+wtHKd0kZB#jxq&i9JPpK3O?t^kF=Nh@J8XA?S z_~2E$rqq*8cO{WgP+dri+*aNZP{EYpbB|l{;cwr9E_Lbmf)+0r{MyH!H!#qGwJ;X2 zsDl)-^clyvCn1=lKb<dpmd3<T-`-wl3A9L7nQ$%xjE5_aHw}Q!{WJ98Ij1{1+hXzj z{>L1<@UoxoxF>zwGd8nlZ044Gkh9q^^M?XZ33Ls40P`1vJ@W@!^M`tRd#Xe@Fi0pt z@42=*fBv&5OIbkWM;uutxZDVL7NlIQT&whamS2_jn_9#Ldu}MtukbkUsp1v@&`j_K zG!RG=S<3UIfZ46GAyCD07)Lt#MKwkBO|F^kT-ULsL^T#BZ83j%1~7QsBNp~Fs_FIv zfA&(By7VB^!ubRL{^=L3T0WPK3o@uG)U`(o0JaWas{<PsT(u4;Vu27y&CnFrfs^;% zMqC846r4D2WC@15h(--B&wTNqW0{7}W9uiMvEm*A(mkh{w!L%r)SbKU(a{(Ky$ugh zLjk=8dt%C9Yr$ZTOPM>^tPnt2k&@1iib9f?aFkqS4~xp6MlcUrU(l2!p=z!Z*(_V4 z^aM59W;r<<Fa0Q?tvslu9t&gNd4cXNdq3MWr8qjGRpfGCZBxy0D^o`jI4ovUyt(vB z4pL0>=h(@dm{RXd+G_&<&-u_bpTB$yy40lunGRYq=R2Q$@zF;tg(XEN9#u|10g7@j zF%&>2B!wMFHV7U$rGl$+LF%M9LM2`SYA40@UmNoSuy)hd(Ziqdt^G7O4=fpjc>_IO z*&1|k)w5u*<u6>~V9)%a)`I??{@#XBDvSKgt)!NOzE!uZ&Xd=`tw<A|>C$OW?X0*> z<BKa!kX^f+?KDMoFqCS>Of2-3p2gz3m|s#jTe8QSK-+e%%68xZDGw2}3{2R2tH37D zuO<ajZJlMv@b5KGT-^nvF8!`(puaUXet%E5TeW=NcR&9}YYtrqAYCG|fU_*o%1s?G z15WxF7z>zSwF_Uj4FbY{SvK4XYd=POcEfk>{J(AZ@SLh7aOGEzWJjd&svBw;9JXTU z=tGCEyJgS)9Et~lti{Oa^vLM+rtM>Qo4M7jM75ef5R|QfG-aS?!9Z*NU{AAQqHGj$ zXv8Puc|J-Tcw&)of$)@cH`2&PCY;0MCkkmj$b`96UekpXF@^e@auusXNpaymu<M2C zY^ej)R;O+%oKjTI^4gTf1D+9t+&n-<kSl6hMHMX_sZ-a?f7F_JKfJMfmU)+c2lP*W z`~08${I>Uh_}llnhDRQE@K^rv`QB0|ueCsqX^`p@rgxSCc-L)jYO$e|PqeA)LHKxl zQ1CYDknViv;zEbp_SA+2dGv*~rP>`TAxljT`3!8mal^6$0+8+%P0iHXc292GJ$X+u z&*^J=?P{R4V6bQYK+gg(6%MrK4>UcJ^|$8qHPv=xprkFCY^{hBp#a9j!)iepIzfPH zR4G+RIe|0Tu>==E%xIxRHs4inm1H(LPYw*K_$)cqHJearQ+L9KP0ewN!y@!rpg~}X z=w$M_%eOrDgV&%-U3$=I)79@=y=vjtzIDwDU;WR!_l)1GvOUelyZ-07Z+hutn?26M zyY_<KA2%L^fens!?v|{^*Qsev&WVsb4wn2a1Jt1iqUz&erX3s~Y^c!f3X&!O)MUg9 z9L8lB``_2zamFhzy$@sfFr-Fh<_|c;3JR9H?(bPJ&^l;t?_&;IFwklgENqU#^Gt4u z)lTKNrN5@6comI%A#+$mLIx5HPQ_a$y{i=w6Z6~B*63Ur%2T-JJh2MZDG$pWz*IUT zZr;26!T^<-nr^Rs?Ipjx^WKSrE_LaC(t`PeJFfpb0}F$jZocE`FaF1${QTB?SoVZt zR($$zpMBg>%VFE$o3|b(1P1DWLr(ly1R#;v+cp9iOa@)SH0LfHJ|!zsh}Z-98Cv1B zC68_J1$jj(us1Vfmu&p{$lm*F!0Zx$zMksoCocc!GmjnUaY36>_^~9_895-PsS=WL zHnlpX&<<%409I)bN>?yh@C;;Jstc7__G+25hgDh+(o&t;Qq5U0Xr{eF#;{5MfrgSR zXXwsQs@1Ii?nTFzxa?Aw_9LBg;%d`qxHF0lKXmaAzV+sJzVX8O^JWXNSXJiyvyT4C z$1nQfH~;5xM=b{sk7q?VVb6#8sc3U6%`uIMVH8|u$l6bsZu(fL4FJ*NXF}*z_X!z_ z_8o%;`K**^LbX*yDdhzY0H)b6PdsheeI3g#B{VTzf98jq&-&06qciPfEyt0X&<k18 z0Zdj3sVp^Vp1i`ec;j8}9F%-1Me1@tm5r{Vzquk6yJU1?RTBElckUEtQ%*p4C0Yij z7v1X6p?=}22wF*_X5B%9KfZbQ4YzkU$#&_%qc^<byi-nG4R`_FY&Oq)^txBR=*(qH z<_`4tv}-%Ed#tLeWlM&SSiSg!V-9}dGf(~0|9Z~LpMUyMM=WVHI9R1D)r9aoPHY$g z7{Hqx_~;|qtm?4}{u>t8gXF6ZdX=FRgup^E1<^a)$XZcWRdV5tgi}-PuY9kghtZLT z3_bZV2dzG6aM}Fcc|$#|W>s5EO?UTfbfhi2CJvt4f6A(PKuOHX>_19NlW0h4axZ0z zP*iknGw}(N+jkKgKo=~&)!E^y2835UcN|x?K4kpqda_oaex_K>(5TQ6*<D6E#`9v+ z0F2qReeCGhUozQ!zq|CHP@_@Ze%;?KUNk3qLW{Y~QQe-Jshbrl7sA-qu!tLp#Opd5 z(1Ov-+T^Drwy^n&V45?blvHKuD^Pa4XpSSJoLo4c1@VKh&i6r?_z*I;;|^R~!`hvD zrj~5{db>l&hPi`1cYf`>o@NC^kLT&>de^?`oqMK7_D%2HGZp?$?c6&(vUhstUY9aG zvTy3HJ<|`v9fv0#JolP6o*v#Ay2180kOz6bhQyg`vVnn&TgnQhDz|{;&_V17hYq-x zqa{KfP8VPh+)_SuS_dqFN6rIdTTBmyZ3ZwoKH2m_`TnWS@_a5tE<bG9z}ud>_U&Kz zb&1_Bb?E`7bIyFk;>E+VGc>9=LRF*HV@UKH7;?gnd4m>W1I!qcgu$^vkMV7_ldmos z)`DLvZ~3&r5!|Mqs|hjjWGxCdO+k!ehXAMv8}M6eWs9zzSuossbmx!_yGN(L|I3|c z9=AyN1<=z|EuPoAcwVpn<U0%24}R_D*M9WpQri*B2jBAaBX;hc_UN@Qpx551k<sa0 zqtp4e*8`FEP0kd8(dDjp@-yG?%eca^lt2)mgn0={nz0!Bl`-Y&6|$d-Ap_LbZ&sB$ znK{M=(1ohmrp%bMGYC*2{4+DE!u-AAA*-?h%8@Aqe0=Luj=22SJHLJH9a)WC>e2&D z&wa)Q0LklU!uM@SrGUr?!VfRjk<Aum28xiv;-m5a;Glxt@Zi>;g4UHIkpII)NECUT zLn_OHkGOY^KxkAd4`2-OyuijsA2dtIhKql&{mkPQ#ZIfP^WIO1X%t3ou(!cgO-|Pr zowF*AQ##YHt=+wEX6NYC$lmFl`v|o5O}W2YcTOA-dqswNn+1JEAqUbR3yv6dEE4&t z_SkYgpy$G|0sY2UMhG5sr9Gg-mZMzPk(jEAp(?Fhv4|483R;9c1sFw*O~ruX3X2|n zIWZ!JPqa~)e|i1Mk9zZE-H5AQ+OKrT%0<t3@~MCX(J@{q%br$m>7xClG45Ot=pG^H zGmF00LP4qWp4N27M->X8?YL&K94Z|MWKlFGY@Q9DqLUAGDV|WY)Kz|Gza>u!r?eRZ zYd3CK{-%#aJx0;RS8V&hD~{1FUP^Q#^fxt}ES=xWRc+rjY105n@xq{jnLnpz{+u2x z1(3x=u(*Efz9V0I30HX8yB}QvJNHeGjCnO{=icd&(W#yLrbkAncaBbtj85;|H{Hn~ zxu58iL*^zTSCQ&CbT^Z+RdEKQ=8!@RD4jr#f~&fcY!J&qlHq|9J4L;dIwg<PFS@e| z0+f%7>ad~WpiRs9Sj@5siE}E&h=)w$oL{e+Kh*QJw>;{!xBU0Mi5YaMOZ$iZ<kjc* zw3=a)X>iB}NS_cRgiUmsBuGjH*u)U$Gf3<>5at24@)1|vyDr8+iBksv5+J-v)_cI{ zVthfl8&x`z9T6SFx95#`!9*Etda<n|51Dh=^1)48%QM33Z`*gnZKFpVJeYjQ`Gi}M z1uT}%O8{wdy52KBJ-5Fn5r&fAq;@S9J^(Va7J#+O2A9t5EtI9{yS3OiIkR)`^vLM+ z&V5sN?3sM_N0J?oCmk}^0uI3Tj6VP(=<Ici^nj2es1*Z+Ok5<51Ei+{QoJ}h0FXp# zP-w>GbA3W;QC@R0&$2;$*VF-pmi8W?5#K^K5Y~E^54Xls(Q~b`K{Ql}$tui8C+V+E z)IQ*tgXetibtgULuYU9(&t<ywFrmeZhA(>FnNdbt`aZqhAS*W@;UTXv#Zd4-Rc8uH zI?XiDYbxSjXWQh?5N_LWa9>Sw$bvpX_{s%ceApq;<V0qxDKOG-c02+W#u#HZZaC<J zU%s)^=za6bZLfR!;jv;NZ4n_UU;(2wBmmoYP0k(YDGP@pN|Cs;x(q7bpjjoEMf4e9 zPH%Hgt9i(xepuYNUE}T-Uvcu9#r}}CncD6en;zL4w5!pnouktuWAf8oPycG$-dUEr z9(Tl|q$3QjLJ^!u80Hgt1fb3R%aqKQYKfX!M(22_cv5R$O6Vgv1sa-jnKVza23u-K zDJV$0ZNt}SvV0~}(u+`(1F)ec6pkXzWAUU@mVNn+r#$noe>^qwuyf1l(*CB`z5Kj^ zzLv)o)-zy(84Y1~P7Q=O2o89hUxTO}0#WjQSB>D0C$TdFs2H(2r2gO0DCbBJh@t`c zWQlZ4aT%oDx{bOW4h9q_K=|%hiT)58v3y!!+|oNcAYFXL_SZf2aQ(6Kv|W0~BDltq zxfvjhOs-u%lqBWg1QHjBW~e$74DmR4mVum-wQ}1|y&3=D`TagW(5%d&f!3md7BCok zk<Kb=Y}+$=(3}4=<Ji-2D~1=(X~ixm6-P<YS|VA88_d6O4k}f9HX;DqGy@H0Gq#%7 zSiH8GTBFb_M<c<81~J4Lkk){VA7v8s*CwVEImz)1lr4W7fW%_SB$$`ZBc6QPvTyw9 zsZajPAC6D8voc-k(tV^kL;bIK$vIxQ*K~9q5RPLoA-tQcwYW*Es6Ge?VNmliMea@r zvS7j+Z^I`MRTJnrqY1M>hkt&jt!z0m1aFL9StKDb^ob$SG4Ft?w*Dvz(TZdZ$18ai zfHO{9Jk;OZ*TG<Q$xrS){k50R9c&KtHU|5f1FgnjUt_SZIndV_>}?FVYoFL~7Xy8b z!B(@sx0*NDvuku(s@lFQgqRcAYO`x(^2E?65*Zm(qsOMKFx9yAt^|;l4)^x;RJsOf zT2{q~lmGh7Y-e_ywRT}r5Am-diZgWbvddFsX(lP2LR}b#W>Vf{*On9r5!rd$+<;Pa zq=?#DtH7f!-O6Vo@>zM7_<Nut%(Fs1q~nW>VKokFAxfh!o^ZnAZ@=TT3*K|p-Uq^% z+odi6c;z3RGjHwyfUtm+Eh8a>l8dg@!I?Ym`;i?>Hd&If!EM2-DQ#HLmjgg_BXZpq zX8g9K)Y>KnJ)hvTnec@s8<N}yTSbgim75^!Jm`kba&vXNw`rd6s3l+h-qzv(T8qnn ze%E~)d}VNX>!*M9$^W=@psz95+Z^a^4EBZ#hhz@$dK!bhje*{PbFIceZ==yL1(TiM zE|$%tk>WTla^Jcm0i=}+`dxZb57L<csGbVn{q<}^arWAD0f_~p0VJFgdmrTcka+qb zB3g7Kq@889r8oe;4~bdfrI#u#uS7FwOmi^fCM~6dx~CXY%8j&}<DAQ6ZPF+R*oveS zDV0rbRoOF65h!L3`A<J);pOjr%ridl<LkHV>(F+Wx^z#ezrXdmS6&drbmHzDu32v| zLDusZWxXa5eHjEcK;8|(%I8kwscrOtK-jbdSr#(>Rz#Of@rvk()a^oQX18x=N1?SM zD{XOwgj+t@hXCKW;h;`{bbm-q{cqeldSeIgiP@>Qr|RozsKn=g_?meGEstal!+JfQ z`JXMXx()O+23w86-lj6yty<V$7DSE`?@CXXT;EYcYE<ToBNm3T1UZZ=N{mY@EF`6P zCtX6}r6fXm*{O{_HA!SvH5A?`z~Cm`1c#>?lC4gGEk^~(%m8akMcA}$Lx3U~3s76! zBOWH3=I24=fsQucP=FsmxIS+6@YR3)*w_5i&p-K{TeB{8sY~~Q{^Fg_Ub=V~04YO= z)7@l8D!?bZ$yy8B@hk}`gbk-Ad@#JtC~;mOwZ^~X>D1MKQ0!$FJ_c5;qANtG){Bm? z@m6#=Ux&z3p2k}8aW~TL`KKL}Z_s?`(ByQThjh94>U+I^(WENd6*rAM;r&-eNNY6* zTV7WiXf*~~&B0dXwX{}au+_Y4-_*@JI-bdN%Bp$8ea*s26Zy6rB|>LeLjp}Ia%G6~ zh~{Ix#BRp5CIt_<_M@bEz8zP!S_kJhmiWvEi*>0p7Eh~{QZ<7F;z|-16nx4-h)Gpg zrwU^1sY&v?O2ptB8XD|veBzZSoOAr*m;S>~_l$MTcU`(Kboz!PU;WZ^g9;MfEfYRm zi!d{-qr~?jS)8QZTn#~;lG&SlO6}6Ofy8Z3cGOz+`Pp=9ktHuX{>&75sU1s7aD;1y zm*nhoxr=~>7BEW}^gimS`Bz;xa(@Q=p-(o2+}n3e+`en#fvWthb)+5@5k-D-p4?>D zX<8s}irS=AEN;ci4x}Eb<`sA_i<}{0!o<HI^imkcePFCox{GRs6-i5qyrdf%P1E78 zEm%0T78nIWHu@&5pOmm?ow34Hc-H%`&IYARUAi0U?{9tbBQL8eIt&8p>~Qk9jc+4q z6)`{@+1%VQum1fHi$IXwwe94EwsP#ArSFSoys{O^&UnSeAR?dm<JIkmqh7ONe?0l7 z^7*U?Fpzbzj`@x8$0nI-<A&w40Mcnk&p&a^ywQo7v5EHRM0;$aJvuQnI?*1RY`es< z$%nfy(%I`mj3ptfWNZmPoTp6XUJ^-EdD7ZAktHqYmd*Dev1nET8l_#hMa)22JZH#J z4hcx>Q7RPD=5m^ye+KHDHw{8rKv=cbDYZ2S0xJOc>JM%&G1sLo-3@*4uU@of_0sT5 zR1gU*8V~|OgNbMn_L+-EI7rq@ENwZLDETCVvm9ivt0fJo9oj{(89KErgctHNHutr( zdACsXR`A^ssuHaAY=}{gg3YP;t#A(OvYE+lT)*_~|MbgF<2gQAf8=$?!KUIRVxq0B z9iOZ{K25eq$J=8Q?XO(E^+R93St^+~*z-r{9pb=jY_jd~Y*PK4dB|E0XQAF^wf?aA ziRh!rKq1l%lS!{_mceEP<v}R@oC-GMJyknMD6@#q^&!QjpOl#dV-=p|d!rQOAZy5` z+8e01hIm$6ZW+LGH@{+!7>aUEOqxe+88+CqbMmWKb^)nN_nJQNp69*f`Dd0tQ~%bH ztF%FUFBwjfmz$?rp<tZ!R+-DV%(}uR8a^sXoC_@B1c!<ch9gWO(QKqAM*P2BE(6Fp zf$pvt8$(&)-1`LjnvY*IZ^h#NEgg={{OL`*Z@XiB<&v;#N6)ZL1-O-%#ltOOfA_v= z2BgX9`h71rTHNCk_h{){8xu2auZKCTnre@Zw|{!ep0|ANI%etR=NvjYU5`zLJPy*P z+M|;*4(A@sjrJQ3o8RBlK%Mz~t80Fb;%bvx%Pb*Q5ySHN31tWx5=&=#bCSCtAYnHF z)d5x}a)#7AB`>QQWq$Z`YlI790TVfKnH!~g@}4T*<f2VAL^Gxi)(|rw#9^`c<ackK zX&-=-r7rzW={@gw_8VSxL6EsY=(}_6ya;v@+`wAWfyC?<E`a!gMyCc#Cy|FHB#+Bq zi#s2@jv@#28PM?%A>0GPQj@ijZTB5U%`E*a#pztgrufRf<KcEt&KLz<I~8ngDr{W8 z>>mj~6n*om?JwJSXjurx^(vCcwGP%WKGohgF*B#1wrmQfhig-zzt!mPX)K&WLD4K0 z4D~2}{^t3|^tCE20136HW@-;?Q|-~ong9Ixop1iquOwrmGVglwy0OWCVGhzJ+hddM z(W#lS$@b`!zcqaiq|n*x7J(jkqQM{?F~%etUM*w5@Y%_5C3jUGsg34f&FGEBS`m$P zqKI%h(v;*|koPYG8>QS8RV6OP>4pX?YCon>)}}>xOj%(xSw~Fz6CL=`Q!QUlyKVpR z+qa-gUAi~)&bL18Pv7t)0MRlg3XrpyCBA0{a1a#~CYM*cw83An7hF6_8~|+qik3I) zMS#d1UzEMK!!7Sk2ih%!;Poe;Rt*a;yb`=IzO2`}P+%V6j0|?$i#X@5>x~;`1Eh<u z*!Hpu4~@+VrHn+OQR#4Y0JiU*oYUVdhztHHovR|e<=T$;rfD9+F0$T6)jL?tAN0}l zuDBstAv<JY|JybmQBXCa%YYxE>9!r4Y(Mj3*L?fBj(&Y-ucL@TtSY!kc`j_(XHX{S zEYkCFHXUxc^vu(tN(8hFlc*ysqd^U;(NywUHOys|f1x;bcj^qcj!+~vO)86UYt!zi z3Z;V#t4J?Y*ZlaTZD|Y!4F3Hmcih^+deEgV<urGA;LD$R{kz`!Gyp;7ieH?Q)J{fI z8L`XxB^*Ksz$-4EOpxi}qxZXx;G3{k*I+8YWmSEQ5iRN%bvrH*1;B{jOcrohSfw&p zGDx)nhK=d)DT*(<rAX(IwX;rI+}G0EeT2Sy&7EVD?L->HModg0nOg{FH!|sYQNlN$ zr<&wp<qJ!?mr_I-|3h196Vghz2??3ZG;SMN{MpkmLw$`aZ{Ddn2sEd!`N&oCwD4!K zESRA>2%2G}{ng`a=z`gnMzi>ERl<<Tn8+F8zg9nhP)R_}eCUz&Up-Xym}}ySi`Xz7 zkjIdNWj<Jzc+Ov@9HR0R1hhsvG5`!d@U@%Jr7qnwI_;DruKoV|p8BLylZ`kKWhe+= znMuYF3E~kzZr_3j5W#J|H=1CH+~rrC&$F;0zJqTU8bUla)D))85E~Y@M%_+6#RzX~ zFid%7|3DM=QF+Y?o_S-!4k`{Dj)C6l?2{LD8sv$o`jV^flzyaA!X_y}IP|v~bNZWH z$@X27iR>!Q(Q_@qYL9I=fy<&S*AnDz4M4{YTD71*5nn8qB#5Z><95w0yLWdEAM@BX z3!9aRt#i{z^t=Mu(o`wlO?!k4N9r_@0Hx9laaR>XY6v=MA=Y8F>Bx}D9$pdQ_$LD- zk3u@}iYZk#1kyG2?D>T#KIS+wHl{F>;k~@{XFD$a#cVO7y3{41H^2T#m;L*@4qde< zfDOFzQP0rV9$v~QuWjOS2LyMxa9xX^8v+uL0CS>B7Kb!4g;s2EY7l^lkQtPfWKEks zOTX?#f+{+iOO!AAZfkb8vw)4ES6Spc&vp5RZ4%UV<N9T@4D~mz*e+cpuF_0AV@Bar zq(t1Y{82!~!T}|doeDdER2~Xrff)rzK5mfkP^X;&oi_+v@|)Qr2KgOG#ps=edIait zaVpPjbB~Zt+;dMcLu*$du^AcS;pXUbNC#czEGj)nGq_d0Dy@NG0rFC6001BWNkl<Z zFYh@z)P}5Yxh0J|tR6E%jwOXrK_I7?>=wT<l=$v1{U+nSOI^~mc+v1@KK`n6&ps}K ziugbq1Jm#@5T%|h=2xg^0Qc4z0DcP*`*|DqH?kH7?tnef`#`)Esu+mKwu7*AH?5DI zYCuLjaq~+9kQ)k2C*QbV?-AWAc+FW_yD~0tgJ?w|kVM2w8`U)l5N>IvY-<1)tQTMT z0{!b{TP`?lX@9HH*Q)w@8hx#*zt!mLG48sr)o4~ELu$Za>AYSJ7Zl^GLPJiR$d*7Q z*N}|Vz!ywui9*~Ukouz6;K_z&@ZDd{Hb3?|kZj6N&O`B9MabZes~!uQ<mn)Q2(q*( z+$V@qmjW^H*f9n&q?y33Z`A@uW1e(gK~(;vbAUlw73lp|%rKwosjC#}Apc~V1%?B1 zU;2x#deo)6r?VgXh|hfNRR=AdL;4MU+wRx}|E&hIm56nKR1=3NbRG4TI=N*6z{G}Z zga;ssgxE^k#}tol2ogh@=5BF&6T5NC8kqW$gUl8-48rEw05CEpOcrTXjH6D}n3YTV zk6$zQr#J2{j`_&m=|6b;RmEG58kKR#)Ynt>wHp1cYRg?oD1?9c-sUYkCi+@cUylQ` zfNechU#seC#-IJYjlO2M)zg^BLI;@$`JqEHqB<|yZM%7A!pW)y{RP-4;lbooeff<Y z7myYWwH~p2j&GDDZIKyux6b^HO{o&3TWcjxZX_g^Iszn?xwF6nt2m4?N&dhwPdzHi z$(U(7@B3kp<GY+vndDXxIgs+qjjGuJcL!9qA|r{~A!`7OcYm>~9(8FpYBn41dh65P z^7<z=8daF)hdI8L-LJ@mGQF~v)CB<{G3B!z&)tGx1Clv;wA9t9Z4ka`k@yBd{i1zH z!k*HTA{*pE>=Yom3mg9mo)zZR@G_)kxGhOy&n-5tU)l+f?v~oM9i3>8PIQdg@S828 zzu9tM;;ZI#)EoZGVO3wNV(4;^*54CSnpIz`F_vvh8lP_eX4`0A(`V>wRy|b}HjgDa zue^C=e7a+g&RV;ul2w(efQ10b#yXSmGBGmoQ5T<K0y#E$4HM`I`I|8}%kI2<o=2%W z8Vu5)KI$-tI<*HD8)7Y3X}C!u9lykgt#ms})gsjbnL|(wOtmc>JQz5+q^llvX;wP* zk!wEw!51HU%ps`BRe@IKqv;HY89?E7EHAY1s~)7b<wYIQb>vGVTyZ~bdYFZ4!l;H! z#5vjR#B4+|p)7ARvK}*%@78+U@@f`w>uTU|L5W(HNJQ#m4TFsvmc8dQ2f(E8`mOit zK!B(I{f||OG3e`Q^fjI8R=MlGp6d49lf@bwowaUZf<^*7vEKBWMJwc$=umqujTuc? zn6rjp0UzyK3Hqw=vL#>xsu3L$S&d+90P#_!1vx{~|MXT)s^`dhuBuXFk>^paeX=oD zWd>j|UDvPv_|Hphb*W1j9O!-TJD&N<KRTz;sN(k0nhYg22x5@08r)<~3~S`n;PZzi zB7}dIY-o-WZAsRs2%JQPvLSe#Xe4gFmY@q+$t*=M^M*k-9!gI4ze#vN=&wi0Hq|M` z#e5ffVT=#oAf1x#TfpFyBj+s`ZtdJNb-$n30Y=the5yS@)gBp}zWdyP`~nh6GLU~N zO(SXu={vyrkrtFh1GGy%6mr)BK7O#e$2B5D0+mN5bDS>PoNAJ0fw~X5T~1xs9r~<z zQkjtsXs62gniVM<Kikl{dT#j8w{E^}^ImkROBr2o?g`gj^;fTX={b!`loE=O<H^Qb z4phX2ELp`t6w_W)X@~r&Rlb%QOswBGWl^`iQWBT1<Wn^?j}#+Ga2)s0!Xfp7wr5j7 zH5E()FrE{HyNQ899sMU&(dQlEkcP;&hX`N>uxJ=_;jFF=jmpe&_hCgV=l37JXfV-Z z66sAklTa?JwIED0E7gZJBq=EKA`;QfSlAE~HZ^B)8%kJ%@(4KtS558)c~96hr!Yg> zVjh%E6LT8hA{*0k_{^bRIob<X{8O<6Bt0^?ePrTYU%Vb&>QYKe77u^$FQ5O6KYWxi zCTcTcJ+n@l8~uWM&$PC@ZLoDvR>JO4Z8tMPc8iz}G3faC22PhoqX#)+uvE$KYV)5% zP`@0`ITa1?DF%dp;g)MI?n$BvsXui|C~ef0jhc{zW-u@TjPv=c#m4o^KK<?6Iz5p; z*s$zNZ$D*nx}KP9PfXPllkJJ=_QYg8G1Z=!s>dhV6I1oXwEuhkZTmj-jhngnGf!VJ z)2=6`>WQiL#B|M>$0zHF>Gt?kJDaRNMCt5xiwx38Y>IfvCe>hk{`g{0Hk+m>d22|4 zL8y~kH$Zay1ZPt7B(9yyvv6m2eTKAZX1ZuDbCfTjanBV@x*IliZ2%2~N(6O>X8|;C zE2C^=i2`OAyzw*Fbx$tulA?>AbH@Aszh^C&KM2Tfo*Dn{TEsVAG!NDi1T!p6ARSuN z;&+GmEs2#co^g(-xB$^}K@QVPY+~f9Q`hMSPG7h|GCNb+j0Xw&z@(w7BIU+<emu0a ziKXymu>&CxyX+)j9h!)y#Yj&$Wl6JPIz^KFkE`#TY1@I`#z3o4FgK-zHr+m^0O>ED zf7I$F14)sztgYb@Yuba{#B}?6zufWaPyRv*H7oPsi;kU`7BH*Fr`jIjrUTSXx8?fQ zyT-?+9{2+?`~nioRTiyc$I6u?c}7Z3Dq&v4IaUc$n=wmfI>NkDE$U~!Z^@)!Yl7fL zib=wX0y$M1|6~lSvXNqjRpn|KEZMiz32D-H^S<*&Xk!3;@0WLd?y}A3QkMc9zIw^W z{`N&@oqiM$R0M|yZlOL#86Y?T$iL1cVGb;1i`PikmVykBf)a26=?V?M&|Z0>_dc<Y z1rh78r>^~;B!6Go))4xoit{;4B#MN884b7bD6)-YaHM9|nG^#x01OW_AA9_w?_P6f z@zLxXpSkR3cb#)$*nAV1Es!mQv)eW@=>bV0nT!F@)2w<L)tr72N_K1NwB2l&KYsin z8UuKmp00qL{Lag+xh1*|zWd4RUi0|X6I1oXjMvh}r`r<_(q`(3nR;TfJuy>HOt(Mq z?M+*EcRa-JthI{@s!#6MsVJG0WMjy+*|b!if#t1D@-&kICdG*YLn$N_F^1dbF4SRr zEOVIy00TycXP>mFIAoR_<w{jL1PKqh3K%md)7$Bp`c?n*v(hj<<mlif{V#peVViCr z-L!S|rY-xn+&O-r*cJ{fdcm_E{r7+MyrIF~;9P(hT)>76M(jKdlgQkN89aYy7!W)I zy}q=CNEZ1+W6@b4YDM&Z$6c{O5Y}OFNNRH*MiNh<qR>8p4T&Z$!p37T=&Pv{%N_z~ zSxX0Dggv(Le7{hkt>Z7Lgg@;X8`m%G1V{ibzH-|+CoN9QO-eF`-VF9O2KyT92=1c? z*;H7Cf%NDS*SY=eI(5Z1?05`nv4b2}VHyrwGB9tj2c)OLs<1c~z+L;M-te!<nHNm! zmJY3$*Qfg~R8wD&rhCIuCOb@)Eyw##0w=?yW@L!RNcm(V74cjb2xCC7@AL3cE5sRN zgNg@%bc{^akj-++?9yZzK=nX(-lv%CRVa2Rt@gwJe#<XzJurM3p7PigZ+pR!-WFuc z#8my;?c<xa?Ax?;bko++O<VVE+OqGaEqh11w#WNQLxa8l@PX$)_v!0_u-Vhn>%!J5 z|DuM)7|T;)*)eM3i9uqx6O)>&ilN2fU#(Dt@J6zMG%AHg3E;6nqHja|#a+5^XvjNU zbve=P9NvIniNKZB$7sGom|z+TJVAZunPr8Ir!9N^hogy1(KoK#_P<_!tPG(qrNAKY zwRB$Zrfp+VcKfag9gR&P6E8@I|CAgyO7f%+KOu{;$@Y%DiPNCp6>F1haiBu_rPtpz z%Z&5vb&IsPQ;umot><icf0zyao9R8VTCPx#g`lyi3oEri#$9PGN@{0s7XZDRSCOG6 za-;zbib*@ED#_VaTrrf=yPGuRGB>E8C574~Lk44RADMXP7k}NMV-GpHaKp0j%>zJR zt6H~mXx*wgUd)*afVFnV?x{^%$2M)*bJLd5O<VT5f1B?Z?W$9=(@Dpz`ocfG?1<G% z;xXaQSwJ)rSt&vAJ{7lbL&_64fC9UNJE{R*I}unygfW}VZzC9phD1#O{;;LETx0?p z<m6`LC_nZBPZ^MUyw`)MILa1>h=Q_m28juji7nUhj@CRH3=05j4jx>$a_IWo%6olo z-Zu8@TlXBbY7R4!2t=wX1Ek5AIVW4vDgYHasFLMp)f~(2Q2*u;ZF5`6kyS164;nO! zORm2MA?%P=B26<6nXE@P>{eD_qq_|t9AIJ7ME+R<s`S(;lMc7SbA}?W)MV+7{GscV zIhzH<nibwyQoM52ieICGn?niPq!*=U?<;X5$mnIW#|FUKH+|;1JqL(BF=wE8#_@}S zpfNxlqNT}Dv|$>isus`dT|B@4)MFL`@IYnE<mAk6w~cPvI=X4g-c6hL-Z3(M=g7p4 zT@!bXOx!s#J~pu*2cf^O=g@=a9lB!vp$E@fy>i~6D;FMm@VrA0Uhv%4ed#~``-c73 z?!BVdzwGgU@%E?owp?&%>mBF3Hsib)Y;=$IOG@+#)&X@aeV|@g*Z!QLM3l>g=vZM7 zDPxRhh8&|^J;tC$;E;r3-A+FYnum(39*Z7!<`z9Bf-4oVNZ79FTVgkE8%%}TTY+}Y zMsrIh_$m9w)0SO-+l`&>UwqZ}qgKv|yzvK)L^)8)NFI=iQiXx7rttxVM0eHaHORhH z6XZ{ry4<>BOqE?Rzb|Q;(TJYjEFtWS!I?)aj5XL)gsOB<wZ0XtjcI;3J>TI9N<rFm z_}fe#iE6&e%ye9rV1uFjHq9*W5c6GS*T~`~a4XyvPYQCD{D)fVyuzXUx~O|8oHl^P zfB$;tXaD<v@ntyoQA=ArA{h;;1`S{E0I?LxvuXhF6M2i?R&(tkbJrd^KP*1Ok44o0 z?AT<zW7ouvk%>EZP3{;OyK`jXuH6&klkJJA_QYg+Vrph$a%N((o}6w^OwLS9wI?QL zCMMg{Gwq>)*4#P0!$ZB{Z{P4x-`qKU!-G9@hx?Z=owIu7g2f94O%>h`6JNv^KjY+w z0w66~F!ZSpzVL!`js;lou%vFs;q^Dg*(`iBR-nZZ8PF^|l9`6L^;sKL5GTg!8NiTx zn+<wNuo*hjpB0uwQ4@Y0Vuf(ykkepm0MR8uJkh<V&Ag-7E|+|$HbF1W$u;;uuBHTa z;jf{Mu`IRZ3#|cQ<NBq4{jakD(i@+?CQ)=)m{Nz9iu4EI0Exv;m5xE3iBMxuD`!3! zAW1N!Mp(`SSlpV1Rb4i>uhpc(8REbYLRf6sJ#qc^j=>;KSTT3uKr42fC+Lb%g2q(d zazK!hOwO?llu~8lC&e8y*|F?KDyjKG;T}I%n<m;4Ch?4bYtGrQX^Wt05mcF)jkz|d z#HMIkd<9K990}Vrg4D0c>H4J~`za0_+PGmUAv(n|^B+gpB_or!xQj*hOIE=K<*4>T z)|i3bYSpqitCr32mAiTky&_cu2uKzq@55_p4j{ckP=&Wen32!}99#f@aL$nn=JoH~ z^}9R>@yrctKl|Yqu2?=lzF1zeQ`}GA+1d+J+4KWMPlUMRo&3!}&JIR)?Z{mO&}vh0 z@DQc0dZ{-=gcc5)P1}rohk^mn8ldg<ycioIT`>wRC6_V|A_OdaOmX%qWVA+#L*h** zys^|)*Wu%R^f3$O4)*LGEr%`m{x5g#+%vUcPD_i+tSd|Bb~u4T<t)m{@QJArs!Ukt z7BJ(eo-B4OZp*`}hKdWVhb~<5>scdwA4yJzCbO!ArW2U);N%{qfek^_ayeO3S;m3_ zh{{0GPXItOCMhHUu_e_hG|F`y1p_vCOG}hhn~kYZKGsObOICyAp(Z$L$^|RpoGVvw z$UJkRl&S#WJzu-wS6l8^G^z)ajKTS*E&<$Dtwt30R-|4UeVJve%$*TJoXKBD;uEDd zoT-TkFX_8sHDZ;rL3B1?oP{d9Cq|@I6>$+3KyOduIe&2chdzDf{u;GesjAGo-?;Iu zuYN+K*-W$+e-2PPffIyLmG}s1Ru#8-I#dWIujn@=U%67Atgn{I))6N>R=K#{a!3-R zUC0B0(sq0?7zQGq*|-G79upB%c;!i61cF9W#TQ8mil0KlIf4&}O+IY}B+w~6jq1Ep zmVEKjEyc&zuI=kS`pc8o%td&w0hqAbElWJGxIX>Nf3s!uqu;&-QMwp}k3%j@;L}xS zV6M42iT66)uK)LCo87P(Y0;J#04_}}Z^qzDS8at!7yw|b^*=34g-=~EoAKtXwF|vu zb1x1r-m_B%f5A31kMPuZ4T*_?1EmZ~%;t|0F!mi6_^g6GT+DR-%lR!~m6A>_WJ483 z+N5QXwVPL{x+E!#d_J>Dve^{C)GaBcwl1l%)a9Suw&&!xT-Isl-9wPpAG6>GA2~gM zkbF1%Q;wZ(_z%L1j4*IcR?1Eh4=3=BRp1&VPZiv*WF#B$g_ed8T(dk<N`>&XMX%qK zRp8p|ww-w4M;^R!4AkmreDkxfc>Edb=p~l*4|vRo>Yco4L1=k5xd1H!=Pa`Q1<iYH zO>PmC%}T&iaaf=?Ga^cu21c-CYnV-%6K88@40M8u@3NF~KaD9^ECqEO$a#DfC%VwD z*vHfvPs3ioS|(*9GEwdL?00W_-d|kP;Tb-Bsactk51c#H3Q9<>xYVTR$f#QJESI;G zDz)iFX-z9OS1g-mtKvPbqE1U@jvNV8*yQt!o$>v#s6r%Qshk-y=})o36<01zHUtTW zGAAu@rEZz5*QQi|U~i^vFZzdT4<Iyx_pbxlI>HihVRqB@=`szM>0k5@21#3)L<h-e zNr>2*j`nezD`&!9mUf)u%QQK08YTf`=>%>-@|<w=vXdUMeE*EuZ1kBAJ@4_SuMLa^ zX)8k^n`wk?m&YNHY~_izsdgBgc5*7KXbiB?nOpw3Ghvh3!aHhdpm+)@*#wPDKpIOc zOx|Igg5$*w2E(INi12kM*hw3b9IHSCML#Bp-?j-OBdVStmJL7UUuY!$Wg>BL-pNbD zkqljmbn2n=hkBa@@raP37I+ZG*$HrEg37OLhZLmCG?JmDW>v|(TuYE#oKk$&v)`3i zb2&o_C#%qbbPks^p~g{e72iV6!2eVRu9?9paPqg`+;sJ(`*`5W?}|1`xJfHfVQ8H- ziU|b$L!=L)@Zy|aZX(V~{9IVfJE<s?*4btnp)SboD2qdsvnUqbguRAs2MKOr?L|*J zaX$@OCwl+ep7e|hPmBx;WJ2&s;5OKrqSu*?%scZPK&3>81NBU-xfUCpAVf*4NCvPD zJXiqXM05G)a0Px&U=R`!CJ?Dnkqv8da7KJ&$O0W%piV;^nWT>vaY;<-PaZw>D0=H< zlT(&-NX3Q0qPea0N6){f&-GzLXCJvJ3N#)-mfK3rkaxk#%aBTDB}>uau0kpKNAH@W ziXUVw$+?kMok^R74|Ne4%8o2T+Junu!N}`0*{H<}_rY5|1Ua|TS>~Zm(``iJ8*U$c z$G;vh8;=|vvUK1PtA|6!ga0uQ-E&2fy6bpU58pC=f^Ti29>Js{FO?cmP|C7I8wgWo z(J&xu-6H8otMHYl@+)A#vo}7Xx7FC6<CoBpYnHtJC1=34eSaC2l3_%|gZ2zTlp8D3 zjp`Z}UN-{#;3VUK<YSX@u#(NjuO%v8Qi9f#L=&nd(fTKj@UY~8`e{cnyMdN`c)3wH zjPU7zHW+xFebPCUM-7;~;p6M!$VC3VTaA31>Br39GT$LX&c@T0-Q#EbaG|r-E{s3& zC<h9t9I@r8ND35?{xnF$K4&x8PXJb&8j#&HfgxGTvDuQ0;8w2vaXs=j%Ux5-#+8(` zIgOpvjY5T;T45gQQlqTu)y~DtzU1RS%}*nKh|~F}Els{-vBJrk1bfz5i%KHxT6$qw zCIWCvP*R(?KZQNEZi?+Zsj7w^P*)Jf$K3SGDh*iphY?nHfi}<xPmptZ`M6+i-yc5V zs4raHaa;ZaOK*SeIgL0&O6^oWYHHXvWI(djM!nPBi>pLrZnr$ht{}zUHWZuA4@k&g z2MF=4@U$R|d@@}KlLP-K$=f@EoUli|KtQ!vb4}SKvrHXml}lzberi(3zqtsM?#s_) zqEixlhQ8mBcjIYG-};G;;dA<0)ln<wgl>7{k9{>h@t3#mWl_9xQU6e1Q}()w!XTCK zP`Si?6YV?p#Dnr0l{t7p-#sZl-LCIU!!#_O)2fV#d^(n?IRHDyraECqe^2AILxa{R zwjUM{McL>F*7(01H%LiKPGr|X{!o}$6{qH!F^TUr0u(U<F$eq-a1HLSa<nU=g-yK% z>Qn|Q{YEva`pM=_6J9RyQ$kuBXXC$Bnl5a#@v%#8z3f-BZGL`e(i0!GM31};J_WY+ zt^}~;_!QQb-2P1yuqyf*i1b7db~4Yf0Y&I+0vFEN)UaZQ4Vz{PKG2r&hGJJ|@}_o; z))zhPga-$Zj#$0unHQemM+4TQuLxP&j$`Ep3FJ*+`IQpO8?O?JPzjM(t&PD<ZQD2J zF%Ka#Vp$NVMEB?*a%`Qv>)w3Y229XyQ_;dEM2%+w3!{xO6+F>A2r6qMSejttMT$Bg zw2LgIQ$Qurq#a(Ihrd4Nkl{m?^#Asb^4@@nsrt)*cFJK(2DCg)W$5aceCL)s;_lRU zJY(%k9)C#Ebj}sR)2RXA3qRQM><>owiY3FnxBT7X{SSUDS?m9H&9*0h@JCXxw^?of z+jGNoF}zN0B*P&6Z1bMu|NqO1{RQxt!x!{6$zwp8R`OYh@76Ycg53T5i6F}$U?T{} z;=R^yp9rIj6@De80h2aqQ|m4N&7T=#w@LfPuN2pSv|~bQ7O3h}1EhE^z5zVF<GVF( z8ySDo=Q~cd9<tPGR%e~GSR05zlEr&W@eEY03S<JsrMpUaJ4>kA%Rw&<Nxmf3En0U; zC~UY9VONu2bqh!}pJGs*y?*to<#X@%P~AN}<-AA46ZQaDJ_Ij}VKSbUjAQWKL2;3Z zYLM=WN@U5bm#8VV|K|;5G;aQ{$oh5!14}$aO260yjo@31fBD1X6)d?cOd|cl4M3+$ zuqY@rCjb^Kjr`^2vs?Amhh?(at#;r1;dVVw&E!uZSOZfcqxtE?-l#~VhGh{t@36GE zE!`EnazVdyUxh(f{z%XWvj%8@91&|%c?h~@9_r3xE`3+U<)WrMd|}c-&Vj@DAt_ZY zDaB`2?2lx~8On(nk`&>apLC8fwqyWR>{&u}n`O?^ZF-l!j+cM(=X>{OfSmnAXB@w9 zu-C<0P#>Fm!0s0<T8Ox`bi%X~g6>uwaEqm?nlf9FECA%0GRToot_7}w_5hMo@qOjH zZJ@4<ebG~o-yfr==yB^0PrL>kKq7RZ4i+%C2o#+=oIW>0t1>)L;kvHLGc9DR18#|k z2McSF)In@84)F*>PC1fEfDCw8@&P}Q)K=yn(2SRWE}N_{vBqXerMAJbLa-2Z%m#Vi zf*q0}P0V@%eoBDmpRGvGC_^oPjgOk`0NIOwxGkw18783wND3XL2=7qlDvN-m8Zx9U zg+vwSd)31JSWpQoUo|fI&8#8pcmYX43o?K~DkOQerOvQ~jKQ%xpgcBJA@YW(BUN;M z%PGaKgeR4u$WWmws~KVt&XEJ9s*tU}DcuvPwnWyZSgI~%$XNQ<A8!5TPqvphc&O9) z?rY5FCV<yGL<)cpMq`mzr`Uj)pX=3jCqXX@i0@W-^isL6P!{S*TsjFTWP`(W9i)66 z_S4w<g@1V513PXxHJjC=Pd+4I&rG5?iiCCPu4{EWNPLmM)`N|^j^Jb?yw#-tNt^{s z4hW(`v13TYcyU`u-N$2vCN>(G4}RxyMq+}thuES#2;UbIKQLD|Y6-kr7Fu^EU!@7L zT=z&8b~TB|4QH1U{0XZJNW{pQ$1NJ@?dbM$>Cf)kJ3iB~5&*e|w0lyspOiA5E5e&X zaMfJ;u`CLA6(Fsg-=7q-I{!@Dey=ki&FycVv~q4oiCSlU0k82WP$h2FR?(W$70%`2 zoqEFpyaIr_gcCLsWT4tXtP~kSd@9s%7EB{YBZaQAK2}6^q;88m*7REFSJ{*dcZ^RK z07fU;Z}{9VabVID9U$5CSwNned@-qI$ujB?Xw~ghwvrU{*$^l7aWACxGj!2@VzmNt zq>x3;EF3fH1wGQc0m-aAbj9$aPg=SEh7rIc)-D|yXh!^C!=vRl43W>+FS7C_wz9Op zJQQ&=P}>7=)WhlsArabb&~@tg@x=TtMa-c{zl!j<y~0O6{Rs}y*%l`K+KovJahBez z==I<LJG>|HMM4}^Y0GWMmDg1%A}E<R_zAcd*aFt}wW@PYTHNWePR-Q+dCi?#T*}`X zfQ}xtZDcZ;n)7u{&b`E~4z4QPD!Hdbr76V?vTOmgX_xWi-|m{lkaOk{iyD>D;yRQq zrwAG;Uk1sBOjVLjc9PgOyWrXY)V7KrJl{5HN%b~xI!k%Q5EpS3)}`Z-II~4^7acSt z{-)G<MLa-;C2WV{l1;6a0q^~{8#eFkc<SOqnGRh#ux{m$|IwyJMMc&o-#6m~BrF0& z0Es|$zpU|+t`2MOwHB$o4~!);o2S(LJzDBSj<=(nQj#u0mn_EEr=Pd(0UNjytynrt z=B%JVc-ieX{05KqT6RkDhFKf(AQ~qV4M|3x6q;lN!Y08BkN^N607*naRN%viwDk`{ z>~d~_&E<@H#SD#q_|hz~2gU$PPXtjLGZhuA<50vsQgqjk07&UUQi<f`Z{7wopflLS zHzZ^!3NO|zZ2GZ>#EqxUYPI{(c3(EvlMGNa*)bblj99-qz}kS3$CU^l!vad#b!<}e zt#>7%zP-tgC-hZp1qR=pJ%pV*14&RM?PenS49N=Vpkj{)ArFP4Ac`C9)MX<N&KUc) z^I;LsiRh$`2}CL2QEqrhUy-~Lz#9p9P^#3+&SV!zA3#zYF(Z7&JSLV>eNl;N`i*yt z9`lw<r)G+H_)w>pU%2`suRTsHf>nosMTpsBki_%m=srFyP$P^_nt{;^a+hLB$p$8I z*pukp-lMNUKW&!B_=DYGQ8hvU9>6qU%;wwotbE*uAE1#d&_z!_=@WnXhuQ4TdIn(S zTZ#&V0}16v=P&qOw-N6pk5u9h4zFXIj`H|*QjoJoMWhbL;z=-8vbl>c>vGEcF52H{ z_7Lr9)SP7=NGp;~F~d@=$RK9b(&wgTma@u{PhOLs;dc!fY~3-j;<^8U4rB}ldz+yT z3At+8wVkBR9tP+OTi+DYFe6+^UE3K_FAUIZRB5S>O{c6Td;U9>>O{Zz)5jijP&jmh z6$u7NRYM)><>fI|yckdwY5fS0->I#H4ci1l{8NZ12@FY)Hz^7FFl>i#b1dj>cHuf{ zsV&7WLq#^@DA%d-gX&Q~nPEn0Lt|<H;Ps#V<pGLDfD5Ray<ti!#vv6enThKGCOC!j z$l7+;bHf3-om6E2bImxDj%(3+!1FCiG*X0*OC5C+T)<rowe`;8CZLgUUe^a7G-v$@ zE3UY<98B~6)3QZFo-4QS3Lz9a;6qe8@rnRW3`>ILt|t~S&JiFr+bbj!t+725hs%bz zf^K{eM%DdvsKB23mfmI`bgqh@IqS9YFr+HRb+vW!Xl&RR;JK|5>@mEr$i*kD!iyoS zA}R=xf$;LkqGKEr#^6-sks6<jAs4KG8p{{<oxEn=)i>@cK3QwA@80+;SzvssefRlh ztzo)-U!;o70q`Ev(mB0H3mSojQ6W0Q&?yF0%W7FfE)-(1bhTv1a%4(8SPSbSHCPF4 zNww!?O!`_#)lx)t)ugpCLNFQ?$&!{=yvr9RZBdGQX-i|oFLbeK0|4K=cKgNG9+18a z09wuJamOvz<7Q}ZO!}}K#now%j5Nw>MZpWin#79Cq11ezo8U^w{sXbU@e;cG@@u_r z5#6`K;(uK~?Fnn|?I_)I8XD{grl)CGz_z2$g|+0hL8IZ!Vzn~g1s_H2N?=_t{1Qt| zo(muw8YJdh5b@FO2O98T0Rt~z1)P&*s_3LHJcm`EXjeph(2&Pxe5YIy4}sQ?48mTh zI{1LdQWI=^H#oMCm=F=tSpKMYm4%6#adV_Ks^P*}t#%IwI&0k`|5-=z8~!R8=+fhk zO!t5~2z*Xa;uq;7GbC~q3T9%eQoj?D!gbbaj;^47f?gwjt71W$6k-1I{wrY1`DBI* zqZ4E$Yr(lr7VOcJGxh8Cr!T|2!JhqBIe^C=w{Wnpfgo@Yq?y0Y-=vt5Mh}Xz)dm?9 zvaxl=1_=@0;5y1U*>)qPqBO5#akg$rx_4=lwH6!KEn+sn)=xWkKLXOO-4kBg#seC{ zfN)QvPlq^9^U8`Wo~1S}NC(52L-N_E1*F(eSaESG3vX<y(^X~@A~wlGv4jc;&r9?b z8!(0~jS|*D`1FhmlXccgtu1>Dd#p7k^Oac<NC}^0sHiWAkO6Qv%SaCgI@_IDu8d|# zr|<l)c3)rVY*iuI>CUx@km0#6Qn_tX>79rp6Dqdhjp3KTru8aZDWZ-rB#o(sAJ0(M z&rTzS%)?t<=h%xhr%w+?LYuZ|vI>E}`M)>axP27+jh=n_iv3qPfDOki0B8!S=0Q2+ zBgG`7P!zYe$Xu8tOI(vDZ)1ewzCHN-aW-8?v1mge@I+l80S81+GqEE@WU2wIS~~cs zWA|6=vYop|Ju}`_EGTD=RTFd?OAsPki@cs;2oG%3bwpDUKY}`FQ8EKyuY?F`4A0VT z?T1cupqjI#+LhES4(ozLqFqV5^2W&CWbq#3H^*<og0GFe>{!RLjO7GfN_cVQDb5z= zqcx!s3j~W}Rt;BGUf^LwXRTdSNM%8tTT>v@6iVbrAm%H+5WG>wEt~yIw3_f%)XrpQ zN(`9}f-HYmlzcbob%F|VEz7o+5<9GqskT_cniTet@tlB-lEE3U835RP*TkQHeLo(L z-Pcn+_l$%0U;O}%J#-kz#vG(7nQ)PtgDpr5)nOSx1Y&A~0@-;i3mTq`^Gu)ijf$NL zpv*`mU@$Z}rOJ}PjY8aCocrk2`)NFP?j8>@RpA3h2!}C%LOW_jDrAG0A`@t#9jv0( zxS5lCi9N_kXj&vA33^OC8VQOMwA=8Vu<GOf8WVxg!zW9MP$37Nh#_JH*g|9qgrf*! ze)jYuf6Mrqg%*ozD@thcJQzS7rqM+!GysFoUUFNVdo4d~X!XK@)e8oo9y{ZDJ}I}U z&cMWy7O6DO@75((6wWF7iPzMD!iljOzB(8UbB6QD3uC6bE4Biq+~xHclA$*Bvrt`C zCOC!9mC=34(aYeCU%YPY{;gZiPA_=esu)pf|Io3kha==8dv$m&lRskhfI#s~;k5X0 zZk`eMFbWt7w)W7{x2aIKQ8|Z*a0Z}jk40oX6CbUQ)|zFLSkV&56&A)k@|cc0PVOh| z+%*9Jmb@?^Lzk|$TRIWiZ^n|t;5mXSV&+`c@NU!LD0DYgR^odF%!ueBh#nr9f7X1L zV{F4~by0au9qp2~RIndQO^1-O(lrBm6Qo@V`Ui=uN}p~ns`xEM99_B~eNNp<>uFp2 z{;%AWJ<^8}U9^6sMkD#gYf4EZVHj9(b^|>ZE-0kzf%&sg3Kr-(J%6^Du*ms}G7A|7 z2#d-YuTFm|^O2FBJD(iWF&n>^a<>gMQnqt{KmJ)Ed}aiJ%t;LxTyx9rFI=_1oV5TL zgV%37?DmoUxVNdVRULlNfPMptvxk~IkaMVZSEk`NkvLK1#cK!_p3I~iFf@EWMTK&e zI?-H*0O77+WX$+kh7I0yA`>NUDME}_@9Bq-)9YuCJZ66_73|zS9)-2<4x<0M*Ab1E zwlR2U<<$lMAlNBf30)gkH%)lO-O7zY@Nut$4`jd<89pnsP};#$i;K32rZXeYj-Gc! zRz!Y0JMOw2eeoIOj6f-SK+u?2sh?LOZ6dLhG-T{S`f{pQ)Jhn2PSk?$YgcUhO?ndf z!-^IUwO)HBSq_vQDdWl0DtW|)ph7($Qy6Of>{O%39<&J$F_lhL0)3XIU7&QPI!mn6 zt}3|7;l%$mvH#2i=U1qPv?>MB$e>&D)PW(MIV!SPG}J2JdVuJ{lb5YqKD1|SKSsto zdexjpm332n<mz?g_ep>Da=skNK1&mAfGjYGhAE_u5Awi79<jyA%3@VOBVVCdx;R)4 zfG|O>#TaOpFX~^uc<=!nNuiy)#}nJ5m$2l&AiWk9A+l|gF%dTnFYAMmQ^w@~vG?Bb zo?cbG@LJFB%qi1rrkC_G>AjK!LJJ@r6vToe>b)1+Rn%8s`RK)~0{ZGzE+|G6MUW<h z4gms$6w-Sp$t2S<y_{)hPJ7n-$KGr0?_PWV&P+0Ag7@RypZT15e$TVZ>TB(__p_hu zNLGo<Iq~2hT~f+kn^k9k!-ckKFCVNqiNK28cp`ho2)Jn57)c27Mfr<|K_E!RL{eIj zMGv_*qI`YG**?lOIvEx)9r!ell||@J|Lqv2-~WS`vzN}i<u|UF(Wl>YpkhxGmdwr9 zjJXvq%xpE@Exl9=?ts(<kRJuWMTbE-C|NHMxrBlrZYbLl*f>m9#n+o5fruhi#zX{} zI(JGg<rN6pW=;;;6yi%vE9MTIuwd%i?b$ohlURP^RVR?pF+Hkv^-6f*z+w<mqO~<T zV+PMWeWJf;=*=lj7hP0CEE&<G(PW6JL&~m=-wF!V;s-BmGNCK~R)O#(gf>EH>91g^ zn?}Q$2<Sy;9{2fgKQ-wj-930Hoi&iaZX!r&BB(E8#l<9z-!s`$A0NN%9k2skvV2_& zdq84+j4(vKGTtF|NSqB9Avb@}#EDm^A3EnI=e>0mW^d+BY^*k`mJ+aG&-WP2<iL}4 zD^BI{C*^-LO6p%1TItQ3AK3B3$Lnt(h4O;c^H$7{XT&jDgE+o3E>hfyU^-*MT;B0V z*j3hO-~;j2wyec@lS=1A3up9Qe&U=LoG^D_O6@4W(n=@J>qZ7dA&XE;r;^`yUdqJ8 zJ&ny#q~rfRsWB=KuDH0d3C3{U;T_KL@ys>&a`CEmTfUi#!?ob3uzu;!SbJ%S8rHN% zMyYF0pTBnddO8N>!V_m-b^3fFI;JzEc{6&G5R8lFDw!ys+Iq<#qMW}O_sy&{G3S$x zlOZC_p;;m*=xEAuQIv)h5QT4vN^~ly`(jHGy0O%v7F<)Ymp8*11WY9Dyjgev<)oDZ zL!-kZZC|eibh_1o)X1_<caoteeNEUI>-=Cr2}E-rg9rvaEH8m*B0c>SVVqDm%tNrH z4MD?2KcH^ji_{Scx(#J|A~i#5&YG)t#8!ba0`O;ROJD)fz_rDF%J*xPxeb9j*mFzN zp}+guM2dX!l4;-iqsu!clMMY3z%YR$L?B&d16!az1C9hW8FVvSl$1&<=bmvm$w$Qg zN#Us?+iLJy7U!HO$H=Z7@Ff8mfK2vTLsGyRK0hHjYh9-(E9E~&mnz%>LztIBu&|X2 zr=(z{b?9bG<tIjPEQE@nns#{2X>dsUq?UKScx8xW_6;3FhcvBUr@ZJ<Y>C43-^knM z>}!EXC4Vyuh;RFwg@S}tR$quH9b}glNbqY5YPl+@A+Y`_PS+POb==*1kJaMb6YF;B zMmtMS+50zP+xl4c##JB@zQb$DMoWl6zA@El+Z@gOT)RkHeO)Ym*kUZ*OrIWSAUMZN zoe;bpWVu00`oU9z<eOpL>hXOBMh3j-u1IGQF>|Y>EhNwxjc#!_Q3`7aOp^<R8yX&N zZ@hiW1U&uC*PPVB^U`Y8ShoR7g3VcByC^@fOvMG-Qma`^r;>XkXjM)x(P(qt79nvS z!cjPbO+!Y`tF<|%2vrpx#|uY_<eBp2A#Izd?6Ai$Pof+v9H85&rsx3Ni4i4BGJgOw zGgr-_jX$kgn`fm$X^K{9X2#hlOhk0eskJ@(M_mSbJ8!&nF%gl-F?C2&`#Op2&glj_ zg$cTniCFNb=)8y269kLabVyqLq-iLv*6+lL4(AhC(P{$6riEEieAEz=ZsHo(^WrF) zwz&Na&fHTpcMTpZhjhmSn^&JWN25sl?50`*!S9qaWV8x#Z^3>T-I8YJCueh>d5f6p z?rP(O{S7t5{$lcw6udT0b4j0w;gU~k6H*XDro^C56EjOXo*yZsh!DsaW$Kn-aC(jO z!*GgVr5%HA@)tMVyL|#hTQs}xZPzT1P0C0&fvQki#B9W9^P1SO8UdG`6Vx}aoa~{b zr)c6zx*`0|V3x4ia9jfhX-j!!SJQAT=X_OzFU1{v^9S}-HGZOsW(Z$5bAy!*mWn%7 zr&9U`3+T*0<3ufqd(p#@4BC=MF!4sRu7pTv*_{59j+^|o@z-9wXjcD}5Q7}kBl4#8 zcRT^ZUyJoHDnXU*_K))G*sTx|yiufc9kNssr;Wuee(Xngg2jzk!R1)z0Z90sP_U}m z27ypfCk^d*oSn4eyZ7cF^qjnM#{-**V4{|m?%g>QIss}CJOeV{FA&hqURD)qM-_3H zRJHKt6HXr!B)U05lv_5HA=tJM*Xn@fEpE!leFAfuuGxs`f-|rUw(P|+@h=)qU^K9J z6Pbk_Nm@!Zf|<un_f2&A^?!ZE@%>ZO^i`*5Ho8$mV70ZJ#5nL=9T)0RP64bL@8_n; zS^O4AN|e>4{1N39u*25X(VR1>*|f1ZAInB>yN`%t)$dFCOBpadDPAVzXl;6g_}~Q< zKV7Rb^u`K7i|{19ax#eA!b8C^OdzOZH8D9`?un>j_u|zHp4c|YCpG-c)yp-$rs@4% zKN@!QWm<nHLyh3tSS&yjcc1jy8Y1xpVwn_W+eAl=QPW9wGc>k3VY%B`v>3>Dh*Tv^ zkj1noMC(LsrjzwwY;r6e(pL55I#FmEz!7jK(uswgy9)FXw;LO$9cqSH6JItRv{*7b z!xS2ltyEEpGFm-RJ1kSBx`7d}O~cKKS~ZZY92D?Ou^J^VSOPY>Sbb|vLCZ?jhEl1; zqH|4(Uu&~6!GwlVCy#BMXt(#9uUMK!!~hNrAj57|gP~L|``P9_AXMc71fuNy4LAnQ zeM8w5dW))|c8^@{#2G+W+0CM?ayip*U#+V;p{$>fM$TtiM8q*Y0u8F+JDMtnUMRm$ z1#Z}b{c~P7R?zsD^ZL}~r`?=j!r11}S`RqW7jbW9z5S|5{@~lvx&1F(JwJ{sG`+9q za4nvDY1@JtPOM2$E_DX!gHlewYbkkwXDis(^I!#nVCyzf3jA%B6D>QQ1&2>{>$zKG zBAW-qX~*t;$I2nyzh=kK&@d7BfEMOD(q;=n{&TTb6J|&RL`#T|$FA(G2ZB~4iKKYa zQtFf7XJEQD1d7G;iU=k>K-jP@6^3qe2H7jRL}|mfom*j~NW&FYTXJP2FtRB&2lrFH z+)YlBb3TFe?l~~pjhn|WoO;rtX{lRtB%%P2T1+SHXa-%%4pDG1pDR`8ilg8OXHtBW z$3@<5u145Toie$Pk$Bog2^c}m(la^lD0xEyB9tDXYU;I4Q%QzqXiFX8ZrR%-0f-8c zl{VCg8a8o5xA{U57uRjAH^Yu{Ac-zqIs1Z@v$`~RF6F1LTHfiTU5hgYj-f+(a`OSA zT#~5Zuak^WI9DMx^<6^&{F@f)ZL^k|)O2tsS}}sNYAoM{h7}FE*~&KBQxY(OvEk@g zyZ>NU8+4RqY`neqvF+-6&~e&IiRR@<osDQh68#P7*V)Z{<BE#_#q5KAWS&NmjWM;P zp-GR_3saNe@LJqbVQvpo5$F_Qj>SrIf~^e%Z{4CyWQgPz+^XY63y(~Z(SoNV7{E|E z6GUlze@zkC3HGusn5m!LYYUT#szEjNan=v*o-@{^%1Ci7fL)k(wwgLC<MIjcbzLEx z2o?I#Fhs*~FN1@&t(i@%12g;z0TE`-M>IF@ih`|Y**TnB0?!Fzfx}dJ>8YFpRFaQ! z;B3%R{@e_#+pJddR&@gkfC(j|sr|h3npFkCo_qP}7c4_w9@CWF8p~9aYCwQEL4Ld~ za{Z*I;&RTcs#0M|2jny)r2fe<l(XGjM46>?YZc~x;uatwQpbi{@2K59IP{!}b|mHY z`?o}dlkv4_N{)+Je<JS;LjKLo_H5o0FSPR(oEe!fRL5`cy;?umVLI<sJ(fu7#~PB( zqS9VI0)Q=3+UnOd2)?EPNBLPnnIW)=C@PpJCKt8~(6iK2xKG7(miD050S0C8z-YxN zB^1nI*Cd=262sKFAI=*(t3?GaY2E{GWV)#g=S?zbbKA%@fE~<Ku0j=UT*eDced(p# zKO_jc0MWEF7rjX`-Ax+Lk*V~4)zTKwpuxfkjbjqlp_(tD8lfexV8G*kB8M&3uMQ#F zQfJ3MamkVy{gX3~IcLSpQx{Lip<}w>*pxM!4rJ17rHtU>eRw^n?Gl<%aqWt+xU~;h zv_xTBwjKvC?s9kelqelxK*{1KcST?^^?*35*|yZS$8G^Blsg{WmQ9RsZWp(G<NW|0 z!0hr`w%^_M6hxY+Ghk2>tI3p)Yn^CnH2YwZxgW|hX_$oz+t$M<iSiVUqv&RF>>)rH z`a!WU=_=l;3jKK}<Z>|RhbT8ycu_SVrE3vdJg2`KE7xq^zkBa!Y?4X1(#Q2I`A@r( z=}~U192Q0da}1dB3W`(emD9M=N;{`DK@ea1MMr;vA<7vZcWYbw+vGL`0Vq!p$3CMC z#>Z8F$}(}Ng5iS)D6feJH)O4HnZP+v)x%Rx0{4jE5fvb{L?jxa=rT`l&)Y7WoHMzX z&h3w*C_&C#KC^So&clCV^MP?=xuINUWl<AS){f&;3CUZ=6O`X^Jx4}Z22b>u(c;u+ zA_(*KRnr!}zGI(pv(vt#H6KeEuo%M2=IzJ!$g(>g+?LFJmRdCT)8<P%FbxXSX>|f5 zO4<1TctR?n44dC<?t*7>r(BuNfwCN(0S1m=bcv|d8BdmIRj&K<)L}%*L5hgy|J)S8 z{yLpSYo0u1PV}nOmAX&bA&hw530<@9BJ|;JJndyW>q^%toSI_F%fVSjfzEpwgxEu} zY@C*kCPvvAJu_l1$>wTS=nph6=ONXsBLRPrCRiV*cU<d%x=4t^+*EpZ0L8!J?}YkI zUXuZNH=V@dj2+%A;cjz(Lq)(<wsHeePIUJuQZQRkdFM4NX)?;pfhid-ME#v+^|Be0 z(s@}%#@e-;5BljgI)3AnGY#WHL|Hc3%6Q(2y8NxGx9H<m=dgZ-pp9!Dr2!>^E#Q#- zLrWbO;oHa8?|l|zdiLeXjeDQjZtHVyaR}xgxDfz9cNFWG19nR<<`T$%_s=iV<T*f+ z?5{Bc{bh0<qAwxkGd84o);Yn`a5gzie@d04{0`Obm_abhg>!T&jIWdAHXjK4&+W|l z-5nAU{pshPcznx&+=hUGraYc@#i8Twn<BU-p}5%t8r8U&B3CF!Ti2Uaumn4S?Jbjs zX`<%daw}9DQ*D%Utz<40!XSA~B(mf~6#X>mH@XM6G1}e+C`nTV2*+^zLs2U$hk`S^ zvgaz-v1iv?>K52sx0^&1cc7iUWai~3&aL(G?8>20Tjx(V&pUoHH%++m@$YQ(%X=;* zT?$RBTsF0AbJ1}rQ^^}rv~`KRl_a&<HGxRqEMw?xEcTVAP(q}q*QBo^<?A2PlE~v5 z1}Bw@mGZ^!u1mP3X{e?RN&OAswSb#32N2K!PY^J*c~v4BWrS*-gHdX@*^<2sl=lAV zh6{nokQk`WK~e(MlCDIVH*y-}n9dNeSA$MbVM|lDE|$(2wFdem9fkB}n=W2(#=OdT zaa#5q7=6WiZ+pxg1a82WXgb4%;FX$1wL2xiL^i+Ae1nw+T9qL<_S3?}1QP(GJl>~T zO}plN2(!Ia?x4>rhj2Jr=lO`8_gr~${89E*&MKToLO;xT{W5JzK&)~sD(b|WoGpbp z%n9C%VR%%X4>>R#3<*>YHCN0Z_}Hx*>FCOieIvj5ijy+kU>a-XQ@1^Hls$JVYo0mq zu2&tO9gD&s(@s_#`jt{}T=Ltd13^QY8Xq}lD6WxYUzeaHt$5m{!23z5ntqm)8zTCf zPp^4w-Lah{wQc*>mz|iw6U=vM_|o(Oo+WdiFA>228n;^N94Vj#5wr~yeMy|!wnev~ z?x`WEL!#X3i2i{*q~z?A{4dH3UZd1`<CV*qb>iw{g>LZ>6;l}%=@|n(w>`G|i7j1U zDBQJw^oDP*9~qSs7fqWr0H1}c4ng@4<!PA}8SwB+ORdOwE8}A_IxeH*?Z{|5Jk}16 zwL`<>2S?k3BjX2##}5pT?HeB7J2bZU(AeP6=$@gmJqJg3?H}EBaCGPXksbR+b{rVl zwtsl*zLBkaN4D%6-n{qF=E31jgTtE!4{h9iXw#lU2S>;Ir*wLorb0=oWkE_|kpgRH zQJr3Me&0z8nMUMY)qb-4*7aGBR>Pc4X1+P&K{v~87p|K9EXQ(xGh4|XBpe0L8fUoU zAunLST$XRb#3Ze}@B_Dg=dqo1bmf6Rx#rB}GaQhA_4TKI<)aTCWzXHpr{8_i>#tlK zM{Em%m&)UAdg5?4MP|pHoT`C4<>#qLH96g9bt;Ya5bnUSKt$vMUDh{J897R;-};q@ zpE|aaq`uzHj<5gt^l5!Df5l2Q(X*5Sctpw8r?-G9-goHO>YAPHopvgcBB-8^6ze$6 zLg!5}(00w;b)*)U6Pps5ow7wQ$$4G+Bxi&0j&ozFTHdqkw)A{<-+UFSzZ9K7{hJ@! zdCl+NLPt<$Pn)uAZhvo2(~5+NWw;nTI662qCL&G4vj%#4I!)V(5VfteLL%vJY$(P3 zP+!D(;pd^u9+<LpR{zpj{mW+cpLX2z>rS43?vhy={z-+@Nat$)iE4jCDOXjjVJq=N zf7SS>=!E6BuFs5no4<-xF+ggV2&!3SchkCcHK~ica)!*@gX9L0@;cU!J36l%w`wj+ z2ds~7duq>RfBbzqy7G=|SN!eIol~O!7hhic>mPgQC_Ar~7oI);rvGty`i=ZWeYU@C zPL0xOS;iU9?<iT|Msy@?^E>GNt%0=EV4^)Ry~#!qN*nE%No2g0sW1HW$Y`0opXBoC zKe^`hFI<`V6;ZE~4n9yvn*!3-K-CM1b3180MWjtNL*;m?0!9BJ1m26%h*knH@c;$% zXEsFsx!7<)oZKFzd)cJRG1|t&?n?)Q#u)oV!-O=TTp)1@-Vg!omA`Njfe2msyWju8 zW4q}879t`#Wx=!`KWE9C&slQD!ffAfELD0MPs?z@1qx-hP%yyCLzY&V<x;gmo%dXE zGErfVlCgl=W<I=&$`LCa2L8m8Hambe)qGOs)wu3R$_wY`C?{nV=B9WmM9j<P4&1YT z?_*nzY6sUn>jqzS{vy8*mFcpR=1lMJ`Njj=kEZi#d1~vy*I%}H;cR^Y&<Tou*rD=S zsoW97J7!o}KR$$FN(Fft?npkmV;_HWCjbB-07*naR7Wyl+MRvRG-bm${zY?7*;Hfw zmV<x(iN~H3sh(Zw@9n(y>U{g9b2gdUnWiHA5?e9gnC3CX(`2E^Qy?V<2~H%ku_Am* z|03~khp)T)Xi%so8?J)nPYLRqNg_giW!jh9Bk!5I4ODjJB&{WG=-gE^|Nf@+&;RV? zKW5o^aP;Q2yFPg9y3anaW%tnNX$z-M>+Sdmqx3pNz79Hm&M&M^DEM`cc&An$c-nc- z<tO`S7h78IZl@L=%Z)>#F)E*8DXXC`bZyH67V)n^$h8a=QZPrp(vNd#LT4_W@u8d7 z70^Gs^6;j8KYP`Ra+US+Q|Au!cE0)GL<d1WxAOgmcm340%X@noPYR@i<Xk8njO5p` zADyuBg#B<%YO2WqmF&>LQl{HBKD2-fM8ZsWJhJnjzjm}dI+C(s>w({R>*^*6CmcmV z<`~fQLk`VWzwoRCKi4t;fnV?g51n>-xZzZG4HA3bi}aI7*)9gkO@3h`s>?qFO4`j2 zl|S9hQcjdqF=Tci*|>Ng0V}<r)?YHafBvk#FW<ej2GD=rvTgs!x1QMfH$PZ6rNbAm znA53hrW7>C`;Pk)Xu3-eQr@=czw@3ePp*eTcHtsi(Yy`iE~Fbk*pD-X-Ac7vX9v4A zars8dou&IrfSS}BE}Yr-_|^jtY}(fy+{2gkJBLnNGX2b@Gd;9KSDrezx2O5mLzC>2 zwha!i-!b&sOBb_^NQI>^BDjqqR8*4;W)jL6Q3f$hZLA6Gl#{f?eYMfqL<IgZleAyG zee0KRo#^8?lU0U>$6s{e!c~i==_-yb{*$@^g+8kwL=wG1+FaKrcaruFz$_{>j9ETX zmkc{0?JwH(Y<8ue)RQ*(PA+&;bwb_L(>Vk3osk$++Na%jPKa`j6Filoi49~FZEBFX z9*8bFarVxABX>M8(WhhobC%IozWMl$&px>2>_szH%o*_U0YQ9E`m<XUf;<fZ&_I%3 zfQe?M%ZNvaILwf+J6zsxauBQTA>GMg#r*;(UaU7;Xo5b2a|v^IT*9z~u+k()yYx~H z_X3x5me2a%H?N!EFp?uFw?Dc2oiAF|+XMUTb=<2?o7ZXh+YcY@?g>}!e|qn6v-&PN zX?DiA(qS7sl#|G+NiG$c$Z|$%g62~6R@xfM8Bqd|nMEcdFsU5vHS;IFx&F3?o~NaP zIWwlb^wLE{q%$@*;ShhpoaT1uKZ0{&0+&O1?oQHX+iYW=Rc_T=Yt1;71YQb7w~Y{@ zX`q7U&dTE|cj-%<ZNkkFRI7lcv}oSQ)LfKpd2w?o>?gnZl5>vRwDZtCPapFa1O87e z+YgNV!(AIU>^XGB$~jYeG=t|XLpMXw%_5?#Iy>O>z38O#o+}__XDv&y!%reIj9NA< zZA~d>R9m*eYuAKeP~6~9lCOHr@Q?Dp&To~0A=BLHQ%1(y@2)v2lec$hZ2P|9SDw2l zj?iR8yZZEbBy{s5lkAheaqspQpSxh$yn#4kD5cMq!WrjbX1tG5=sp{7ua2e7TKOmp zeO5V(rIgzAz($p5j!FLhOY0tf`lzO`M_#t<JoK*DpU8}|MM);JEeUS(`gkIT`60pm z?rp{rukGq@m|*vTb`pP~hbuNIK#S~xC}SB>#{Dvepwds&ER)rrAPZ-ml)$+A=pd~h zXI|Q3+9X0m4bzWZw0POv{+k}$F*@GOi2kQ8_dK)rhC4T&y?EwH^Wb1JXB*2>>T(hx zjfY&gL%`Wu+}U~0Whd7IQn$GPU5<-e86HXQX-wvDD{mPzmAizi?li%f2j<;;3Ds`; zuDVptJ?rHs&HdD!&+P1eru~tWyPqEHpVGPV)Vb9`uRde`xX5=Ooy<tT75Umd+uwHW z@@akWouu+B?^Jk;Y7}!M6i%aXx>NS%+#%(6U<%|lp~maK__rrFZa=n%t6JH!fArc5 zj$5^GKyQR;N~5PRkjE{(dlYU+bS=Sia9$@i(sUma95qA{^YntMC;)o?LRR$EW>j9c zskamZf?P`Jid;~F`|sT<Z`JJ)4A<t&^*z^I6cy&Bd}KRFh%kl2MCTtr>kSt#zJL9` zbvvFXQTacs42_O|;{In&T`=v;<7U(+5{JDbl(u)5#i==Jx7}=UmmR8l`6`c%n${a~ zqdtN0DlMJs6UE*6vugA7T4mvBF>Z2T(BY<K&euZEJsm!K+02jr;Ar2Iz3HJHr!Ja) z*0P!9&`fmg>GKbbwYN;_M%BGTV|PEf=dD*SYbbw*jKD%kPBeh3!Z@lmC%CY!;lwG2 z(=FP<c^gp%VQGE3c*H;a$HxW_9K#R8yCSW;_61ABC6P^8IC>gyjPrG!v<7BTB-&s} zvmAS6*ob1s1>rxToS@x3iZ$YV){+pbX^neX)m#yCHXC+-DZiG2?^Sb=xf6i1>Np+b z)knEx&Y#iyGgmKv(dq@Q(3;H$#{TbYDK8@Q*@w2CICtvVi)L2%Sl#E6e2Mtbr0RiO zpM{jN{KoZ3e9L{+&KNa0DADvtdUw*<bTn$t{ZQU{`Lw$K+c_kv^=!jcJQ=`N-|C&W zHL?(q&^!M5{*QcbJsn-??P<R8?n_^A+Pn;AMMQ*t>4y71eABw49L1I2dHu<M{FA2> z<yPLf={_js?0(5XyeU<&(I2)C1#L>%4?aRLsulw~5gHfifANjar*WCu-`Vo{SIn5! zn_hawH-|jXU`LH&>7694BYK1ncao=x>rYMY=YT||@3H&kGOcS)MK$L?+#OPGVias@ z;!5?7sI-(PGDz_g6|j6yGlQz^O(uFuL@n(d8vFLcJ04iSZ{3cA>vjz7J}}Be4Kp)s z9UOjY`@sT%Sgt;G-i(2shB?^3(4=A33%x_!G_ej7H4SG?$~#OASy#lw*!g?Dyk=;0 zyb8~S%V)pyvK87DkBqm^3?AAvcxdC`(5AuRr*|LRd+6E4YRq)QYtQ+a^Ot2249W}= z-(6Stvk>sYHN*sLPzd?&*C+W4vJzeoLLhJ#R@F(kw`EJ8M76fv+{488olnAUv3@xO z0#ja77mE!2>>e6D{r~;W)}#K?!R)D1e((oZp1yc`Mj3^Cyp^~7&E5Yt*=Gy=`)^<T z>Wdfoxi8g_wd>M7l<q1NbZIVX5sF)G{Fw_-fer^x8M*8A=ADO@yy0s#n2urj$h$B2 zxmT<JVDv2rQ4P*qlon~Dzj1G>>f`!gu8Q+Llus<o$GA5|us4F6rB|qegC?HxK1+XQ zaJF4~>-J(l)qYm*aP8XQq+)32!mDrcYA1jB)wRF+FJ0eQf8>v^Jq<r7Q>CydSdMOv z=G{E205_RPXzp)+ZFiUNPrm8gC7=AM^K%?i+%VS4&1-jl;@)RI^T3wfLr1#ez)XMp z>a&0T{N<k16G)Upwv;XcYFC|{5XH|=aQ+~qciVh;27t=qKq>!C04T$7_^5OqSOLGA zVAwJoUs!wR&l3gzxpV>6*NZs=Q~v7Bt84f_yRzrt==JZreaoOaHpu|)H2kq&I`1WC zEjaptu>8cI-*w}iTe9OF5pn6NpQ$nxM5FvBDGR*f!GWP-2V+ZRIE2bU=!&-8xc$&` zBgoN|8@}`uk)A**x{bSS^P8|ZWCz(%TWm?_u2+ui6gx;i+f130<TKE%8%d?;ia`GH zq+O?Ir70+{G1|!A%kp}PL56!js+2VBs&&=iMBp|D60ybrsI6IBA)fH-Ft~@YLf&zK zFFQ!3rn@fLgw{Z5G66s$uvkcxeOE%Lr{Nc!IREcnclMUwzwS#vd(n$eo<9L<h~qo{ z{r=BBtgliSsHJ(tHm))vOF4F&V-2NA4RA`~hOGYdH>Fai3ZfL^;=-jC{+2>X*aW_I zY7)i;Y-K!H?UN=LC|<nr{3WkGcM%<Rd3wjeSAO9314B9u&%x{MX+HBS7hZDGoTDGe z%FxL8YyRgCKm7HlE0Yp4Pn2JfRx8!UisL3Kk|TR|gp7D2a#-tzqr<;V&)0SaEI)W~ z*JJDUCF5jHC4Gli36Z_4q;41s#sN}L5=r4=tg63>qv!6Y?4R;Gtwz>DG_Ggj;Uupu z9f01i7OA-$$?sR8vigP&=TQ#MAxy4t{*A_4@=gQ*Mk8aDnW)I+yV8ny1xXj;S5O>l zs_2)7*J!I3P5DxNf(OSEB1&s}py|EbTz~3uUwiu{pZJOM7SHJG(pgsC{q;x3+9Ew$ z&5^W{4NA4WC#CJJncv#yC&X8Ze_evXpo~xR9EGdqGLI!d_|zM+F3qWqlE3Mq$g)*i z!>a|9K|Z*lzkl1=%esG$^2p0wPY?e12k#milL{6sP4Dmd(r;dT#?s0Ba#AbuiyylG z|M}-fvIC>5frzt=ROHrLPnjwf6$?mZW&N6ib57QLJh!$ugwVzvKY|$&5q<P4>mwLQ zC=6dp8X_fI{m@h%3#UHq+W8^W4x~w$7$6wh)sK~7_7fK2#Ey!{Cmh(Dn*pP8Rkho7 zQYDdVI}VRfJ(0*Z6^QpGc^%5TH8{<;Q8BuLx_@Zwp-mGV6?Wf-z1hwZZ0w8(I#I-( z^P3JYY$8NLPwqT8Jl@Uo)A~I_n+6XhB@#+8I<kOcuWvqk$s@mZ&40UW)dWs1lqYr_ z_{NhvDqVSg2@$0e8A@(a{?|z1eiD)2_D%Wc14_c>jk8XL(%ZQuswOLrCGLJX9M`IO zWI|LTgmZ1IS@r4;O}isquC+|<>s-8Q_CMXW@#x-^B_dk0<-m@8BiEn3kP%evcIuSQ zYc5>$nICQ*JUE$K$iDZ;uC-eayyAj|9WFlV;TYr|Q9*eu+~pbzDjw%XDum?eV=Zid z(zqxm+Ru$Y*z(;6Ci(rXBPmZlbMRfSKcR!K#9@(~hDbd`QHq<AQ^xg)7g9VbOk%wu zQCj36ieyLbSB*%O^-_q+5ngxk2bF;)5IIrFshYoTO(>so>HR$iM}POzkN)I`@44mi ziMF|Z_O8vJxZ|0ry`6Jc=;7J%4ZLFLk}@X4RR~eqTOy$!JiYtvAHVNcKljkcSXYPi z%;2H_?|V<(_srfi7tJ_sX8%M0D2w~2G%r8pxXV_|{`7;J$Jz;qMXx&bxHA`MOpIb| z{Uh#Jq(%y7ZCt3tM2rpzJy6xL6I83#OptZiSmpY0vgqoR>?|3X#<lmunezYZeY%Br zG?7ggsRDRb%p2%wnr}Te3FrOX`P81_vGzr0EJ$Zw8{L>@4)k1q?!r&rw&~z-eUHs^ zEBCM4d+VBAufBLue{aV>E6q?DF#v?Ia(OL9%@(Q=RN!LJRBYpTo(zGS-?(f0_aFQb zoanrNXzawr)6YF=R>jJcX4>J{Ej+@uRYNg>X{%B){?txgqQC631m1yKMW+Oez~Yon z&Wd}4TVvWByH=7g92OETu)q-oo@$-1Jh1I$@4NjQ4{jgsZu+h4+&}V#d$->5#O`ZO znLDfaBy`umMa1bXB#b;XHvT&|KKhPN-oJKd*ZqE0gy_+2`#*BWhTaZex?)aKlE~pM zL_{afop$+(xu1S;^JsUU^poc-J8kattT`DL`HS#W!_Kh)Nz`RV*m=*T#cAJ&DB2O{ zFse=~0R%_Sl@`r9M_*XNN3}tnJH(oJ-d$-@P2BTS61sYFM29^{SDZBG*0p=q?l`=- z9JYLa&92Yhxn<+7LyvCS|4-lF@R9GV|Ni5<AAM&3(8&0bIsFS~^}T5If`9$NrU{~? z=TM&7dhiQB+<NwknJX7e%^sAF{78o7eCiX5)OstgyH)naEB`2iR{Q4N+i!Wk&JA+q zv5otG>Bm;ZX{Lj}YTT)~HXWAyXW1c@1nJ_mQho5{wyz}WLUF>FTj8$)+zp;8V5JR0 zq}rkacI9*I;#UNmIdjg*!Db%FEkw0MM0*d8{g;1w;J^Rt!~34)_UN_S58iOghJ`cw z&RsT(OBhPlI5g2ep|KLWW8I#Yf9Q@IAAELa!j6l4^YI;DU$gzH<LAwv)*E}np$h<x zpELEURdYY};O6Q97E5OI|F4&??y+;UyWwR6p%f7iq*_X4VIm@yU%x)96vi%(Y2dsI zbR<;Nq}(?URF(;v6rEdzrs$;nv=0vLz{YFo0!ek~@}{+FXzSkLbN=YNN52bvf-<eI z^P<%YUUv3^sr{XI{{8*K$KaDcZ@PTRpZ(P8l?w(k?@KkZxQkG^+cD}$XX;LH%Ik2^ z8#Z+Iy<rmht&cqXzE3^ztkIsN^0_~}_%&B7_Gl7_sB`LEVBvzNs^7v+?CT-bhG@Gd zc85q+%C8*@x;dVzg{^wHY7;8F(F9`!)VhsmRBdZ*ov(#fJNJ#e=udCGZ~akyYxvi% zJK_CrI3ru85XiMSJ6<*JaPfr)x4z+qJCEjwqnZ6ZU;DXBE?qvm?&*s-=9YE4U-$7l zw;dS4o6Pi&uQ~T^XD`jb!>%yUDG8p{EZX8D$+**b&!s2V58QN`L-}<B^^xeAP2oyI zH;@!Ro1ABqS0i{@wUTKF7~QQlyFM9I{YY%6-k;vrbN-51|8mEsqhCzwRz}C=vCaFx zbnmu*zjMpQC(PcsYw{QHAKI|*gI|66k&XN2OzT~F+(34kI(MHQNx=?hk@4Cc9Odk6 z)j&J$mxf!**Y4VW>%%{?kFY(p`QXpLd?h=B7|H}D67|Jt8R9NowtSTqA;o{iWQc04 zq2dl+2)Ml}zyvTmU+elWH(MeWRWF#ygQUt1eJZ+j*3E&68Dk-08XJ}C{_M89j{4Bm zTi5O$=<Qs2(p(Q`33k=TgE_u^{hpV9==P&LaBq05{nY)NfBc*!bEZ!5z?6|9(TbS^ zZ#ie_otp;N4aN<t$4%?~)Eh5&{ppLkvrG~eocFA_R4_#tx)6%xSFiVehyZ9R9+f{C z9Em@{ll@);*H6{8V4toPx~uBDwDFPt4q94jbpw^%psu%Wj#=+~<d*gC_~-kJ0Vcn^ z=7L3+pFH=sKJoCe8{&k8Q?Fe;|D5AzoxN)2*(+wwnK8u^q<ZXkH6SSObaU|4wi5&& zIY@u_FOU7f$DWU`^K~oVdjA#Io-@B<Yp4irut-6`(ve5im83@@-H-Vz)Nteu?j^$x zo&PAUWC?~8*HlZ+U{@^+-4<XtBjp`A;E4NN5U-{Pm81qO1_Ta;mfm~g<G=TrM`<$3 zln&qZyDvCv3G9h2Ei#t2c-qp?*!X#W_Pxip9o6SRtz3P=yl?&dB@M3eRNlnUJ1r5@ zwgV$~Z5muPd*HPB)0uOUhGGJV<V8Vpox8s-KC2DUdCz4hXEjJ|O;y3%d;U#Mcehg@ zUa)VDL%4C>UuTb;pJ)qstcVWHoY4zmtM)9#BdS#fG|yi#YqV{@_rx&|(l_ot^qF6| zuwlOW(POo#Z1;iDd!8En%01gY`t1#W`tMKNaMSvm9@z2VhJE{n#^+3*GQGd25KU-Y z63sm#uqox?@ztN$1C@$FMD+Nk12^9Oqx=Hf=AFZDyKZ@e#}S0|PFRyifj8X_zukHd zk-rFkC&+_U&HV&sabj2GI(OBa6D{4X_3xUO@MJfOJqu-T46V2T$r(pCBHX-h!``=k z=$@neri_(V=(eZ!y#2Bj9bBYvMjt_PWMLwq-@ftDFFrJBlDuyB(EO>rmn@x~alu)< zJoK41rE~K9X$z+IX5NUjg7ZdHqpiD1#ZAgaj0GmIwM`AxShdOTyWoyshJ=!lHOc#R z;^oFgM<v>Sbz??ZKXncX4X(8+(X<Qa5vht%{Q1ID=RdyvXg}h2*fKKKUUS;~pS^m; zzM-*OpV)m&#|mZd!Li3TANc+wyFPi#ruTpT$&Y<!!}h_Ei%y>1Hzl8PI$B{ggkeXw zCKGtFvQ?oBTlNfp{M(zJ19p>Dp4@!kRhKSWGEZMk%Qg{kyhFKP!TVO+DYVY$mp@~x z92(?8)zb^G#x-$qL+Mc{2hSN4tkaffZ|4=#cOq>6r1)y(hz3t}@my-nsUn1<<LxW{ z{Pt(|OlAUn%iiHmhp#zho`0{g>fI4|AriXfsa?PD$w^MMeCMfMZ#rx7yn)_IZ0-1H zn%GVtQMKLe=>D;1H0d?9&6-o{w#htpm8m8H?j2*vdu$aSQHe|}sYN~2_i&x=83juf zA|0jly$R-8z~%flDwV*6Ljm8DMZj7jA{M&gZRfn;<hgW=%a`xl%0%z~iPgVw?aE_4 zR$10=J^0?wtU2YEZ~Ev>8^lS1d!@kcv|V`ALIt}+wK$6kz7q^blsv(YuKejIACE7Y z+HpIf;OnKKgalMNm<K5)UIE+ux-GN@RX}pmRlS$VHrJYr7Zh%D2%T|ooeQuVx4IaR z?iE@`B`ejLgi~A2hwBEa6GFxPvv+Q}_vkh<RLlFm@#NspSlwhF?#>^4WzD27MGuXR z|H;iy`Y;j4CB4bHbd@?AgDQ73pGf$<k%e(^1vp~YO$H^Jm9~Jp8$edtyjrsCs->l) zrrgjM@Kxlj%~y}QNo~BNL*u?9l;Cb0LOM{bTCQMyo#u1DaM9|;lX<X0S?=GkkBFG* zgFk)NTQ6UFOvmb0w(J@H*}uN$4?gi|-8h!f5OTI;C0?|-#dJ0o|G_BB=h>%;eq`m- z-+N}wru{x#6Gt3L_R&Amjxg?VihxB5I+wc-q%aUB$!$(mbamBWR`PDqIM^d+F503d zLLM)0AAik$bu$768)I*^Nl8gSA!_Mwzq5{xK{+ry{_#6>vfkF{MgR#==E<E0Z(1`6 zFEy6s<M(aaJ2ci6jFNo@UN+s)yQMUC+fY~jEV$r{5XBjiH9-C~MRyqNbOWfY@8Clc zl=qQ3E}7#J4gx=^=(akdi%Glrn5q^bz*0OFBBHs|rhMnuF1v8$EIMXobi572b(lZ; z3+KJ&f=M`4@41yf`qY~L@u@Xl>?n_{U8w8+QEkd=7iJ|<B%Fk_L_+hX_pVx)ze@GI z7ZG~jr=BD#blyp+6J7MaEfB3*hYAW1G<QDC4JSDztIa7NLTb27tO%q}OEZKu({X>2 zs+BPZ<*g*IR(9SN%G(wY3K7%Txcp$k72gFjdM9`~arxd8yW)uWk}m>)OxG04_nth= zs_<O5Uk=K|2h$xIYwy}L=u>B<-r>_k-e53uvuO>nPiIbBsAElBaDc$TOa=~DrR+gA zwp}0{OFv<CssItCw1xmt+*GN&gMAt#IKOdlmgJ+Nnp>JHYnBYazg0aXnm@hwreC@2 z*yZlV?W{wg9_CN{@&zwBbCM4QKl1YXpLq0^M|Rb17J-eRTqH`ew?zdvD;>}KcQ%XZ z(o-k%6x!!j{_&d|9$L3AvyYVH*n-xWDoJ4`95LNZm!>cOwMsEJ94QzCAW?40sY`B+ z;1L$ddvM;Ony6{@P~CU{S{Eg)&X18q*wE!y9C-`sJ-lh(q3-YV^-pQu_lDEEJtd;| zzWUS&p5C>7PuGdEp@8{DA`-f5!$e!pUw77`6Xtdexh`Kh_o8L9Cj#l2!Hi;UL6&N1 zYcI5A#=Itq-r#o`2nmADf^3FFMU+%J702u{sBr^3$+qHNr^*4UOxT^}nm{yhIG2u( zeM(GNGgp8=EDEUel2_B=X7=@b^}k+n{h7znF(?<ToQ=Tr^)#RRm5Z)A^_Z_+bt~_> z;eqjSuq=++Z65wOK4LY3nnuj=Jdflo6o};|r~K$0(&$+G#`oU2A5R_ZmOOA3s_8E( z1kA~&6f~jyrVW9Phr8GjQG(meQtZod9jFXLq}dOwtJ(RdZO+6hFr}d^l@39z!ddI# z&ZqYj4^nyil`CFx*1~R2XAShc`^6{CpWbx}wPxFaK}?aAe-U7X>dpxr(qF&&%*$7G zmGH|}%zoeXr%llO&P{`vzHlKeRl>TDpoS(*AwSp;7h;p6*_AAm^tvG`&i^OvonRyZ z-%d48Bhb)#bBi%?AQe#81Ev>{76R9ZKlYE6kw63hXAtIJc`0Sr?n_}H%KQd`!8Fj* z`P?sD_+PGG)uq$tUS4+A0>{p&y`3-q>LnK)KT(Ku?8@D12S0QB=8OW!XcHTEClm|D z-6Vht_Bm0;n=O&hCI10tNJR9=hJC;MH}{K^7Aa5=Fvn<@olaRzGy$des#@@Fwx%tB zq1qknr`ul#i8Dqq=+y3DW?wfN?mkY`N(j4opz0LUk)7zy3EzbMxhs~>pVs@b)%C=~ zTP|AK>G029wtRvf?%J^DFlgpbjg8B_o4SH@?vj~{XZF4M>?PI1xu^AZUVX;G7p$B& zXP|3N?}r=rR0!p!0R&Hp(gEI*6WocYGtQVctFjvl*B%M(=C0C<Jo!8tE~@3?X$cdG zYynV&72(0Goz(n+<O8`W9Vw*{5~F*m#(0fsNy>@nMyCwT-cIw^Z$9%ozjoP)3npiI zgPH#7EoZ(gOuTZ{ojK6+)!)4If>p<G?P`MZ$y+wX_hYJ*p`7?`(tx~kR;H~n(V1qw zf8O!4rgSF$ip}#>KK8ARzw+S++E$a&)jYGoZ|CK<HKKL1;H8whA)MFYVrV2F)^P+M zFKAvh2(dRIB2CCk(k!RqRXM?)9pY6dUEV=k;R@DgBB9NL6YcgsbMXu!`q<B%w`!i( z+zVIE`tvuerk0k@nrLI^=Dovp5>a8hh=^#<!O=tAkEvWXtDlH2Up43budE~z|KauL zoHS<|GcB3X6{OAkhvSH4sKmw31fj&6l#7tVg1}tYZ7lrcf*`IAQ_lzHoR@xi@nIq& z79xrXMP@$y=0uzvViOKsg&y_9KB9WJ>e)nuIJ6Tcj$4&jSmCmoEF>JOc>t>Pn*eLc ze<eB;+z5b0_-#jEDF6T<07*naRE3#{5-xM-=YR34Z+-6v4?O(XmTdrwKy<&`4@bAI zW##gvFTVDwk&{pSz$Pvrk2t>WZD;NO*Uvom#M<XP%5y6>-o5>QK6plNZ%+;qAzO3) zR_DA{hlzCebKr7?Q<dOq(c-%|Y@FnezCX9}zixc$2OFoq`E{>sn#MrwF5%fvlOGk@ ztVy`(BtNg|DHC(kqI9kZuZ>P6JPx*!iSDK_C1tOGgu|!%QNcNAI;vH}*|*+H*aBb; zi@?xEE2$8K`H7)5L|dp!`SUGj_4H0*k+;9&%<td+!`tt=cWi9Dzpw9#OD??h!t?%m zu$M)?cVL*P>o?B7d|<`q!Ltk)IHo>IwFBwE!GlC!@7CLs<1;@nbS@Fg1?T<Zyz_4Q z?k$_PY-QqAE0$e%^_A<FEcw7F5z9`xgQ)%<<QVY>+VcPaBFcm8R0^&|OI_7pl$p{l z#ZnO)N!D8hKK0YHuT$NmQA&W$$GF=(txJ5uO>nlVW+L2Z_bsvRs^E-Cv6^AaV5)2& zF5rw48YXFpIMPD!F#=f{h*pCHcw{mpI0qzn!!ZmISjQ15(XM*>FTeIBmtXsm{rmSn zwRY{=wNI{n^2xn>5C0CttXZ?>FIcc(!EvispSf)LG9ua6RwEM~x~KO|Z+Y7nzVP|` z?!EW0oljyJ9UWV{W%tshA&Ft;!wO2svntABuL+<JOe8H)!_uC1###SC91;=Tb<YEP z_71)N4R08jI!#@xNIYmRQ6mX?Jm19$XVRU5<K3bt3qi|0UM_<n`Oi=#SWax^lsY`Z z^HHoH7bmB2S=xkV?86O>40WMo*+2Yb2d%}X1V>|t0TL8;+N_DzT%XvyYuWPUL_`Dq zmtAw+W!Jpe9t|@Ow?af)c29J=Pyejr_P2e2mm{MSW0L+Uy}i97BO_ER+jkG{qrT8? z;qj-w<@nRE=Y13$2JPJ4bzyAQ>^b|mSJ4+cyui6|fX#k^xN=bBs<=vtRMsK8I%V`j zCMP|@=3$E7xnXJbQHSkKqNpd5-<M*f;4vf&(T0JTwG&D26EPEUR9cO^v<C(v#=kHk z<%cSZ4%&nsgafo~tj!%tF;`N4C0j=+-9*R}MOg<8AjbKkc|{^tkUB)f+yH+XVxBf* z=2_>QbLKhckjSoGyZ7xK92prN9v&GPiT@7|5BK!+ELgB$!GZ;I=g;r$?L#!hpOPdd zGWs$ZGdHh(?dxXFn*F_-zeCSs*)zCr$+CpI6@|Z(LrYF@bD;?lQ<4N?CAf%iJPJS3 zmSe(MxO2fp7u|N-t^1C^(?37u$tR!q@P|M2rk{Ar;>C+YM3r<$^`d2vYOjVGg_*t( zp<6OV4<exyV{2%FnqZ2-pP0;8t1!ceLpM$O>^e1|9mFyAB4Lh3Aejh*+{P8-4*19r zY=_ZFowOPg&cYXEF^UR@>69cIn5x?7A^x@DfC$XQym;wEFYx{Fhd*4pVucRZfVf5% zD6QOm*PY#(GxNg5i&T0eY=)6y(%6@sgot{kELyyH{knD44tH$dzH|4UxpU{3)&#Mz z3PQZ*(MLu{N4tTvc*)YBIKm7B3@$(Nm-LQ(Wi=Vh1b;ky8ckoMlm9EA;by}rg)&ii zY}F<>$cBh}h#MiIr0oq!YoVC{K=9>yF@6J;O>Qz73P#)}5%Fe7J|vt1KoMw(T#UrG z!qN(N6gkNwHHKC}j;()*IL2N&07!_S62NUZmepc9g<K&q-ym)Lqzn-?A}w*EJ9v>a zN+hPV(sbs|UodC>f-J9ypQP8`R87%{GaR%j6hrJN1i}q9&9&FPc*e|`U-{yVGU;!A zcPab#?E`rLhXDqZvZzHcj1YZls@pQEF-vUQ60-!yA81Bon%3Jt^(}Av>3_W8BZr2D zo*%3aTL$;+x#92r_7$)Cv2)MAAj*|7j#z@00f~h019XjPs#B9h$tV{cA_;Mx4iQSO zVQR9ONvILd7zNGAX*W?LFm4Dgb%fBi1Hc7aLTXH`$A~^9AIWW#Rs#}QxT7^S!i&8H z99rT=OukG)!u=$5;11nSrX@?4O~ADWAGrUjYp$I)e?FQ1iU@a1J#WA5mI<u?`~?f9 z^z|zS4Mhi=X}VG?5=)4eEM3;kAraA+zVP|C{q)aJ6Pe=BA0Hq4<~P1E0Y*!fE=`IP ze2JKQkm!mcXdQ!40%PKkf$T&=ENu(aK$&C+ULY}*)E_^r6eT20JmTNZ3to5~aT7%_ zB-29p6aT3<jyHpQY~tx~@$}Mg-63WPdGmC$fjUjPlg6^BPDhDjrE6&#rm{Eeq@zKh zVPXA5NSIg@g#via5ozjA({N4RIRmYz=tqHRSQ{!a4PP<>HpD`Sycs0Y=pKF7Cn8Hs zOiPw6U%Yhb+9#fvKyxOsoO#Z<$1PqARO(J!LgMT6KXH~4rc}_GfPKWN2fdy)W5)Rx zUM$ic8X6ipbf~gr=6NsDwvRpf$i991PB{6Lrqjs~%mgME?Cd8IRq08&+5%M*{TtN_ z6w6#Sd~>I{RM9)nQydqs^+bKwt&M0*bXt}=3<gKRpd5>=ZIb~*L7QrTkqitB+;+?N z$H(iRU>1=F?!WJ>b1&%a>m%l1)(rB89(?eNpa0wh96$M#Q%^m8b*A8nfK5T<(0Ma- z@Zh5lcU_d)vwQd8zI`X3c6wsE_A}nL|N60yKC^M-1Rz~?&2=+p&o1=HY`deRLD<RZ z91OdF8k+t>+njf~jNuSXE)2;e_C(ibgL%)!>5?eKwrO%FZ9aD+iZj40Ue?S2X-X%} z0b>twsD?$PQH7C~U_mU-E-kPKXiyl7Sy-BeHNX_+Fym5C*)B?k>B2i=-NC0heTXQ8 z5`+^$MbjGQL7Z-g;0TH84A52wazkT+BC-$?9iduF945RrG@W$X8Nc|hU%T<&KlAvb zkCZ4+ZkaZ7mM$!FzV#zrhZSaN*rv8DLfoieSg}Yp2m{cQ%cI@JGGIi)!u`{xz3Any ze9_Ba*^Z75?%Ovy5>lcgqr-<rMn*<PM@NT;$J@52r>E2Dbb5MvIz0yu9{9$Wzj&-j zLqtS(-}%E`yLP?tCx5E1uaAvsQJf4HqytDAH6VEDX;MA20xA2^37R6zL=82VU?&ZH zO)}k}Ie9CJOaPnfA*;aBO4C6Z(CESA$U;eanR2yi1Sq5$(Sq2xbABZamIMa#lO5`G zRvdrA6OVQM@Wi2^q5u7tAGq?`7hQ7M<xNi$n(rMP{MOgL^5A{<bZZsLiW5$Z;Z(#F z6FJ1v=sJ49BErA?_!GnJZr$E{*PYw9ZM*K}uUNifW%MG_KK|HaH+}6ZJGM=9KzLtY z|H7q9VFkqK)W$s{(f$()7s^Nl(>oxI9A;F=KHS@t+N$XWjzq-0)8U4H@4bH-+LDN_ zCq=o8$;7nHjd3wcJOoT6`m<36Xgi9NHc3rV@|QJjWBnw0M1Nv1*kiVwm0l!rimF5$ zF(nEl8$EG_6L`LVwWojuMYV<rxUN(I0OGo$m>7X;9XfzvDP7BYbIQ!v4n;B2W#DNY zhMPik-`#h8{fnO;89r8@we9Qg|Fz%w{hldPB02yn7&tS-0=gkqNvUSE^^uXNbivLm z%D4u?W2;S~hMQ}$P0F3Ge&Mrs-FE9SqK}ouOP9Xo?eFLxn5qU@*_27R@;xPubA5;w z+r+9cVJc(d>Bgu;1iYa{aBLU{LX|Xm4iF|701`85)?6>5F-lA{JqkQBI*=0~GGl{y zf$nhfw9*C`(()MLQbW}JCmwm|lOOx&k#KGPaSNNK86G|~xcl(u>-P@~yz94ruXoB6 zq#?3^K>Q5xaPw0i`^Pnpbe$ww8JIeC#>|;Sw0qaC(JuQSuv~Q66)%0&tCedQAhs%R z-q^Z;0|^LXhbT0tQ&y5VWlGv4flM`ZRFTeAFMb)!D66yba_Ws!Y^KH%DMXD+Bj8WG z=sr-^c^J1c0gUq9K%ZDY5;!6y+(hBT>12eKGxXDl)tmryXfb;Pscc(dSGjJaG6d!> zj9k@fcoWlEN*rz$Em?ZzIp=M8X4BxFWAep{i?6uq#8XdC^i1^UnEFRnqNpUfa_q>7 z5GREVN7PK@nv#-noF+8sFcXj>bu0PMD^ED-;Ro(JG<5J-(8tRDef#zf4xV<_Ii7b! z8T<05l4%n@wX_LSmM1sd3(dkrsNyczbIBB^lA&iy)KCsdsfH+%L^*2CN`O6y^=m4b zks`t-G4Tb>leKZAjuJR$-u!h>tvwQrIC$W|f&Kf34;|5mDqi^VS1w<9yfao&bTct7 z5GPu&XwkiQ-f`G<-?7or1N-+M*uTH+l5)h-KQQo`H@~&FuV3k3qe(^M@(Uw%-ME$O zBQ?_(nmcn{tJ%5gx|b#+0_Kb@HDtnPvJ&C2u0!Psy&6SnfF&rGQbaNl^v`6mZ2*j6 zEP{0ugC|sKf(xQtrHw0S<*DKz!LTM$5ZrI#qMV=(ROrKTQ%Wv>RzV3uKz7VEBV|k` zEb;<St>*?6vLU9vfoW%5aN+!g3rB`W_UxL>kNaJ6)z#O&?3IDkX<T*}%0X^2V&?z! zK8RBiNLGS0Od=_aKwD|(n^YLNqRv>ik#SATk~cj)i<d6H|E?cSB4w&&`_?T>R;-*e z|G0`s)D38E6gX*UoZ+R)4RNEwgEj)4y%L0yc7W#Q*4!u-vZlsCtr;J&J<7GIL9x_3 z8K-ijOj8<-z@n`H;W2|iCJZ1aR<r43ilAbYnVp7L9Dl;Sciw&^X8j1u$`ej{>1$pG zp%PkNguKa#5J@_1#*C(Eo__N2$%2Q7u7CZTmmPmX94Im?iGhkx0u1P%lQa^xYPSgl zkDSv|4k}MG!Jte+R1!K@zU1W;wgWbejT!=5;i%R`Ok4t#nQs*xMstHg9EJ@$6!OZs zWl3#W^l#QlSa^sqdyB>jDrYd4fMsp12ckGuKs+=LbdaKza6{DSow)X86^xOA8K$vO z(c@UG8+c-n8@a$8pb{xai96|{U`K@9qud;~aPjK%FFg0+OQ+44v43#y!2?J2rR4d? zEqw8-UVF(4UdTyK;y>}ga9qqV$;*gr6*w+Wa<~A-p$8(1h!JrWRMxoy$QUVK!i-HV zYy$u{Gw00d?dyAL%`yKJ`m8x~SDt)IhHRz?UihgH1CzZ>ER}9Vq-f^Wq|n@`N)4`E zr><0e%;kj2DEub36jZX*eM%|`SaeZI<9iGj*d(e^r3m;Y$yfb~#57T1Gxt%a5~D31 z8W@;5Fm>7!k3KvpZ0+ssd-Koz;=sVPoL^iTOr&r!w!}oVWYzI&AA5BF-ib~&I`VSL z>a(tX>Ge^B8ZeLG3!ObN`fzL#bxODLCe$dC#<;Kz<}rkojDnFYVFadh1We4GD_?Sb zaEweLy40P-Y*7sB+Oi=N0b({yAe%P?VNyCX%t$mQOQS&GK!#Y@Y^FHa3ZcrPbsk~X zSxZP$L=&%+3Y7&Rv~-^~jGRbHo<r*)SA|E&Nrz~HmC;GM_Nmn<X&Qsww4afBozPiC z#ByIcI&n<ehT%-0At8{9oyr^&P3a$4zVi4BF1zBS)6eYm^o)*-3?CXg(hcIw$1PrZ z`Z?!aaotO=d(~?fELlcoU&4iPJn_^-7K1M`jIvp{%91pSNSH1~!xZOOV1^R$GcpFh zp3EGl5LLMu<7gX^JIhwA8XFzmxbCSVBE@qpv**n}W%b#{YoL<Lr-4F+I~lK4$b-J* zbC+BtS-7JrBiSf<hcH|eEdwT>tu~pMHJA)!tIsirgnVgqAxXcCN7|wKp)|keG(<qH z>2LxsDm%cYPN<3fXOE(gh=I3w+49XB*6rRo2_GVQ>FeIK>ZDU5EtT?QzoQP?2HLcJ zK#Y>i%+0dnPk8XIA9mXTc;sdJjG1qI`#XDk`=m)WP&Fy;Vg(&Z406gVO$Us*nQJ3; zGL>e}lkc&9)Y~bG8;zM%kaR~oal^m;zQ2O~H5^x%($Z&ihj9%!T1rDadw&L&!SdBI zw(62x8t%xCm5bi6xwx)?{G9(p$o1_DScj|ijA*iZ^9M(-E+bR+9#O2;<#>X!2X+|3 zz*v(DvXc=_-{&t8bc4D_%p@WrgL`)E+P-bqwrxANZ{59p+ra||di(mO^!4@j_VxDm zPU-9GpE`Bv@>NS$ozOopkg=&Gg#wt3f<lE9NC4w*k|ys(`H1i{^hOk^?MM_PExp-8 zD#q3;E60-%e)-=%e*c}f)o`1f^4hn({nWG1%|)fVOxoL%{-<H5h?AjUD&}ZzHT^b( zY+R%TLAThI!IJ@2uqJg2>VWp4dOvHGzq;nMHPa4Ybl6guSrUmcTxO}5L`KI(K7GUA zu6tt5VHr0;dEqNxbMe(LR6%Xy(5Q4|67KG!d`5n4TKCi^Kk~t&*@ZNH=FGRe^S{kK zZei?|sm`YOAHHVRMX&3{Sdz1ki{}Y<s|JpMtPT+qzx(}vty?R?J5zd{Fi1a%$nKD` zT~sB~j=L~iz6Z>zk!bS-5VN$Y0+DUSN!vMcU~)-iO8Zz+mGC%?P7x|HD41;s3IRf{ zrI9A7!<;r*wJ7naD^-9B{2E_GthJYPx>8PL6sFKTBAaPxBt_a3t2a%`B7zFM??0C< zg)<v8<6~eGafBQsB%!PV0HWe(&W1xSKlzR+<#@T1$5@btcJwi6L>cBnHbO7s?JeK@ z$}QjgY9;bG>N0cA+;{%=dpZrHP&qY8DCgE8(?P31piQ|TQKBt)Cdvc`J0VJ3c5DK5 zQ|WTC6Iu@@<QHXPmT|!q)lfB&30h@wl!v5f&M2WxK<V|=%PY6z<3IT3*KWP(t8Lr$ zgwt+i#;n=bzws@rPCWyamr5I$ktHgZtA>CL?%4jtPyX}9r=EPa@DS0-XP*7i*Zsuw z8Ph>elfIkD&D0?|?;>(db_=)25(){KO#qbBu0jzL8?$T*Qx=|tyZr9={|(a7oo<Ap zk0X`!@zKPsCMcN$%j+X8st{HIs}9-?>=K5uKHLn+jY`cU>|ugd-Ri@AA<YvWma2L4 zHoY@c7{UBnYBeD&$}0zWs)!sR`Xvk8MHSg@)Sj3)6NB{Bnn!Q^mwy;Kx@9(3`ln8N z<In%{k`=2;Sq&BNC$cH0WMh7mYI0sBKIM$2!^w<9LxYS?{B=WPg`$(feRk2`60jrD zXeX#OEb3xVirm&s8@}|f|FnI}vp5d%%!@94(W~FsH!wgGs_l{3JqMC7i^$#I`}WOW z`uy0~k-ppBH!$#$*S`6T^Dfl+F;hWa>caXewI@(ssM%oPSgY3cD9ftK^KX6NgG5A( zCkAO22q!0bS7|b)qEH=MZ&Cph%D1HHTTCptDS1(Wk~6R4Y;!N`ABWCnLV4(zHKdZS zu{nar3`9dn+(1B+)URYU6R8D=CZxxrc$xqmax}B25qP{dNMb;QjP^aF8!PQjhL^Ne z;&hiw<*e8@DkuqIVGvOi0jbn;cjeD|OM+J+Y=rsXf&F)V_gi;=|2xBnCgCii8MEfR z=@;KM@3;v+InVZ%UX+JSK@bbZ_xX^CK;&4bjmtI_vJ|Y$G+iYy*SjFS6@!p*%}kYe zN%lgUI?Q_plu?PCh~^c%JX@0z;Ibd)@zIgHzkl=Hx7<9q>oBWID^5Q3l51bO>a;Vs z5F3Y7j(#@)O4AW5?ApHdwwu2C$US$CkB#{rp!D|jpLx+`mtObM=`&{eo>TuynE)7w zP+pmQTQq=a3KjL5h`eoa#MgPPlVp1>*Hz}<{PPc^7*P%j5C};IzKS?co8}fdSs9%! z+XxZvj8%Es7}-WZET=ghQnF-`l$4dMqm;aYE^?xKj@Dr_NB}}2^6C*LwuOwwn+%l8 zc##2ynW#8W{;|Q7k;t75g^4zTS`b`^&uLmv7&1=AR^P;7$~d}JFmkyN0T^sD=0`Az zstau8elnUlE+B`Hp%Nk<K6LQGJ8s>$_VKM7*AG6Y9rN5Yr<`@(H9z+HnRDlXKqmMU zFo&QEp*U}A8e|kp_~!AW5~15eYn>~IXy=f!u>_PmIx~kPW@ZWiioakHIEfr`K7s)U zq?H&YH4sPvRmVlDO0N6RTib5ix@GJ7r?+few{^q19a}cH?Ralr|H5S}7A;>H{>_*( z7lf#SU0oNP4OGiq<2&dh)9}#HmJLsD*|2Ww#`Rm)KOMH=&6+!J(ehORs)fr|PU)S} zr5}^7{JuA#h6@3;3!2weOwC=?(~9Edgi1q178C3F*UZ297k?|6sS8B1^JrTlE-Luq zmXW-7je?T-Dm_k7&mG7EmNX?a7?=r{L%@P~V9KmT>?D!~yMk*;Czdu1jGkTC=y1Ok zZlaEeWYi0<F|!B8fnBa|8HrFB7{95JV9>-`(ndB?BVXb~N6&;U!Eo4Rb17$Xs4~;4 zibvT{y<_GAAvqA)RL*ruUQEm#fU`0=%f(4l$jh1u&VvUIY<p(IwhimHY*@GbnT^9k zL!%?ZBO}AL$p<m>%(?SUKmU?*F28!l>^UZE#sXVYse_Gli=ei7V#)vmtx;*LrHjR( z=9YO-*&_-b0H1`<$(U&9!eOVm2vRlGme(O9l##-EE(H&7Iz0usvZ0f<0@jfDu^w`D zF#6O6l5VVw<_>KIH@W?3b8cn^!5P(D4TVw;zk8Ofro7g%4?a{vkUrsQy2)v{(js{) z$D}7aB*9BG34Q;@U;aH8$$>(RE9L{P(ft;Y2>i^GKUzV^96+6jN0f&_e&mKM;~BzP z@(j^8YT$7-;QPhm0#LkcbOgi22$-&P6|hM)NTK3R#Wv+Ia6u~v7!{q90*M*dtPU)4 z*lM%)sh*x0fSlJ%H-(woR>?~RniWh7E?0@;3Ojwy2~OA#iY~Si;_=auQ9UkibYysZ zbY%Lhxija?Z8}Yj9ZmqM2zFy=jlY>3BI2mUQs7(dt$wqM0#>1=<lQpk;A;vuz~U-+ z<!}UDQ9g=eeRiFLQ5AkFC}Z%nU<9h}fofz#WSwOwwYVFyRZ~n3s)&gfV?(ei|K4mm zIq42$sfmQvpwP03fvIr6hlr$UG$Dv+yU#Ra;0j|+-S00{0MxiUqNn925INlES`Q|^ zV8&`k-r=Vxq+qc&w+V+RMwGD-GOcdXs;`C_K{YFwfFu>5^t{NBG$f?w$=W&0hEzkI z{e&YDS%=w(S%r*rWzE`kB8c5dU`x{}5|60|i59^&Y8xLtBErl<@#I_&szXGG^d%Di zG!a25M%Go89ogSpgtb+Z6PbvzMfikl)3Lm{#1l&!BI@+^b$a{yr_abSsyM*>vt9&Z zoFkYq)R_q)N^=x=8LrOj?3KGD$&Ncr1c$BF6`68sJ42ISq#;l?ph;LEYnq}5$}B_n zs351l*Fs5mx(Rs(1~3<>&1#8q`r}K4!ko-*4C;lFMe^{)|DvoiSfL{BafZTu!6!4t zc&AD?DvVoZ3Lv~r^})U&S;Q|1XKLaxMGpeoNeESm3rCYvn|t&%*i7`9TCtA<5|Ox% zdZDq<;mO`%OaL*357veU5=az7X^U{oDaF=IG1&!Z#L<IBWtimCZ3@#~@d#&@ni(sY ze6W6Rsm*ao78apZq*?(trul9q9fJ|k8E!aeAWdDvBj(VmaJOkMpV&D=8E!b6PI&{M zn_ag?e6QZjd2f+Kwvi^<EG9`uypzfaD<hPu3A;@3%vDD^ORFD3gk9i?2uUYX!jnY8 z_YbLU8_PX*aG);MA!4U?Cm<L{Ct{VZh!K7|T@e(eFZf04xL%k@kOigZvpbORQ3z84 z&7zw~AEjh6`kDz$EU?815D91NiAg_)Lk)4h$va&$OWU${9^fcU4bhA?`OqjWLExLB zN#wOO4Q7E93la+1Z&Y4IR&^hH(^Q+jJz~KGM<E1tAYua#J7ELcR3n&JFcGXDa`Sd3 zGM9B@bi&bgHi6#Zj@C#SU>|pKk7XPPa*}lw4Q*!kn`F{eqw|IhF|lrZR}&reJp|~v zBvZ{;vE4K)4TrTeiAXqzLs}z`_8bMKN5h#W=1F2NQOToK;*?nqu!><GR5Z9PyvZt0 zYLvql?Lug&tE0(zLc);&08`P>J=i!^WPL=|oAELdE}HT<jt~=?Fd=;tQ-Z{|`rX)Q zpd>JuiK&eyEFl}Mp@k>RMwDnk!TW;o5e!KreUp%ZVwvL!2D&h9sasP#Z9oxVosS3X zlqTq{5<*Hx(K8XOFVYXSk%QdeiKGZlf%TZ5NE$F-+JkVTvS>4p^eNaBxDweH$%Nuw z#DEJJpvd=P+L}dnqBvS~1t?H7F8Y02iB3s34pBfSGq_}_ykPI*v?)0=qDCw-1CylE zp15h8RTkjnM%wI?<jFd~3P(dkA`RH;=*9F)lE_PKC2ZIWbxi0@H$wj{ck<ns5d}p* z#0!#37pXTj+8WK{mnRGN9K(*xPh<^YP8kGPjc?!-ytzm~(#T?I68$5^IO|Fkgmf+0 zuxSJam2e1F_DxPS{bW)RPjU($l(C2+IxsL?W*dXpXRjDGVu%FGY3w59LSi}-k?6#s z5dKEzMoxKCX`7DqLK?p5H$?0st3e|us=0bUi_fA0Mp~gRq)l6Gqc)bE@N*A3()9Tm z-M`Bs@KKY{Hf#`Q5j$vvz@TV|mSt3QJe?|PpOVe)quth4QBWvJ15x@A5fey5c}KmM z2sIso_DWezo+LeOBIC5L2wpU02AJs*LF^1pDmJu%k}0IHv4R_7>o7Hu;2N0{@Wx2V z2t`EMhuc*gGc|^9?dpB#A-V~dz0qstgtG1AHb`RgrqD@>GN&}Bbi}<Wa3gU!SCuog z1zVLBwt4^nAOJ~3K~!y%mHdOV3LZipA(SknNQjV%kYT40qKcOG?})%UP}t#;f8#1r z0JBoz@E$y+A3A4KevrxdndX+jyF-Cj8bhn_-5UMKY*a4m$7DVxNy59U5>Ek7;s?T( zBqz&8BpsACX4k_2W(16Gu!LiOF^Y(F60MT0aN0o#p0w#8nRGvnO$2$xsIvkx$&$W# zYCLsOS0rrqL8%~+jd?o}?j*k)Y6ztYDj^(drUHTuxjth}rnXUT4MENkq;Q>9+F~dc zO46hJ1F}-6BuEh@v4Q)}f(1xg)qQ6r0<R@+PUdUD!Wc#Tj8iqjggmosJ(2+zy**Rf z_$1trZBdI8%?9Kwfap5Gydn7EEIp_hu8M6n_mH%OiJ{NfoqoKIIDK7;v!_j>CYvu8 zMmJ295}lCo6dMs2KXmaho{NPD!uJ3hmvmC>Iynms5_FBB9|W?cT)1^0%R<;FKGzH& zk$xa6{~ns|>WL{qu^5b_WV^*Pe7!$?p38uVT#nZYHm3yxR?0e=vF3qj9Y|>kFa?!O z$&x_w;*l()`b+yzqA&pgZFG|XB^`H&La5uOHAo`WaHF&6q|iZ&TFRQMQ47u;NHChT zNCrT(G9BeesDY3GzGie1?hK-6`hxS1R!wTOGh#<3Mh)T|qllL(Zw5dhV`45N07g;- zSj^1nJ*WvRgKxwc&AC{ZL@_quL1j1XuoMNUL4!b+-NFPKE9GONlA|*z{FyctG$ftP zJI_Jxr!-CETE0%ElGA{8yMB-<i6(g#p^ex@P%Z4}C|L@fO06QM)XmyQASwSqB7sI& z6C=L#z~(3nu^Sskm|3zZGwe1o4Z-z>1dUybt{mW_JhpO8a@`|t8{BP@9ST5EUP~|} z@5)9@%fdl4LA6BxHf>`rIRR|fL|JfT>z0^8HEtoOIzLFg;ohwvqq&<EAbT6LLz z2~hzi*DZ^*ja7&!ut?i9;V+^C*BOL%p#qn&9`Iu8+%cV~Rly5}UShf+$|1)ba&51N zE-a&n`lTb=_?On7M2N^Bak#W;pC<>RDF;P`EeW;?bD~LTo|Y)m5D8!-3(%i(Vy0jy zmpX&llTjNYFoYUyC@UkXqG&|O`Xpj)D?rRhr8eIgi$V_lVDo5k@=f6kh%|;s3+Xjr zM8;4hrjuAvXA>!3V~5+z$2ma)s4Y@Ekg;Y25+gv!GZ8X8T>ao;3xjDUHz86JZ!~?H z9ssRG3u%N3<VC1Vs&nAchZ$w?gcnWWDy9ZGB52o0K&*_CZ_Mopu1T6kh++S3`iN@m z*M{Vn=f$X*z;H<Vgljez)BRcugf?B$H;r^E79~&BQ<p$HII|Si9YL1sCuy4w?1@Yv z1M)Z^qi9+pj+vz8JbjFbQAMS-MOU`fpumBY2MDNHs#NrjW0L-Knjh_&<iJ>7)B=jQ zXptuJWHeDAgVcqksknk|WH-8n4FW=B3wfeJq2}DeSf-Y7LLi!<0#ijMZK@}Y7aL}w zP6VUT3_Hb*1Y%#Z*MM47$a0~Fg_tyHixpb#i7L?~2_aH%$10ypq?7D`p!Ki1*M^We zsX(Yq4KcU+U0M~q1ZfD{+w>t|*ryu@&2Wi^BPtF@HME6>M7@Mj%9F?Kf6;hpw-|V` z8YbOr!mNn1UNZs~&j?2vTF?;T2=|k8MhZkyTR4{DVw>fNh4zVG4U+_}VKfHDLGjAi z<mD}&NTnC80;ow8al&M(ogk-}hNWbYOa)Y=(|NuCuuYWBag!<?C0!P?w`QPC64dgz znA_4^MA5L=7ki0JF*7t1z!WV2;q)|u0jh`QmrU_hmdFI&AR(~fdM&EplxS-XBAB3t zQQuW1qeS&Y;V?B*IZ#<qo{?rJaj}r#CFI2Zusj$V=0^~LEmeRTA{Oo_=gj3OHO=Bt z0S~3TL^4}()e#O>KqDK1G72k%6u+#aCrwxb3IQ6peH|!Dxo&#llo+SLLV%weolG*Z zF2$2sQe~N~e1JYsm;r=4N>yrX*MMQoar2Dr9xydvimR!lS^<0%?r6=B$`^^f;k23} zTg_KC;1n51lzavuYEb|ZB?EpbnWKD{xNIP*c+t@&r<lu9LW-D}T8wo}4b<8yxsp7q z03_llqhawv1K1AGzp<xA6HSGy-sZsuX$Y*Fbj%8u-qfsWQY$f%CU-1E6y=kE=?p({ zd>k~ahuIQBM4Yl#4Iz;M9<kJlDq0w^L8Xp~S)1nC+Gj#GL1w<t=u2dgP{Kj2VcKR5 z?{=%$fNo-2C7oW787pVIv`yw>2^a?iXC})hYultXDR42F*MTFgj3$jxo3%}p2`a2K zjKnlw)iKMdl_gdtfZYs~Vhvpbug$@8vj36VkbcWI0U<rZOhbFf(5GY}gPxi&7^aDC z@&6ut(L|3kz$i6}GMm(5B*Jm+lttrfn9Q2yvu-qsvy-^#C;=p7t5cljdJ2!GK8aX# zi;KXX3rJ8xOu?K~U-31`=#U6C%+d-GMJ?4v=H)<96C&o5S&ad65<q3TXb2-shed6w zdVMA`f(Su=$$Uf8WO*1(bVLHBcl4xfdLm8{Djg(pf|avk>zT?disXvBcZ7)37MyJQ zpS%t;Ckn)#GvW|s+kpgxFPQ|+DQQ_3wRc7zA~qXm1SFm0sS9rcokN{~CaZU6QcsVG zh-8yg+f8I6*m`McNsdSf8gMq_-3aucyT)1A_T8CAC@*ZEv5JOhJP>ahwG#Qngh#<N zrb{}5gTb%rj_@elY7>ELEfGt@P6(43jeEADada?PbAvpn5lRB7Y6V>k#!Pz)RxG_4 z6LZLrF-vwhSj-@k$T3!?qo5ic)Ih1hX-u_MvowY>`lsY!o0y2Fh!PXdU^Hw}ZG{6b zQjRehNmC6@d1=26BD#Asx1T7UoM0w}**s)4#X-OtVzE;VQ_e6lCC=WWCaSnf$nJtc zKpg?)65$Thc#4KN<)~3S@avJO4nb)emhm1kXF%LG9dn~?6KqdZ%dBMz8DiJC%%xdH zvV9<NItkhm^HHwTrh(ZXvFJ8L31Y>%UTUT-C2BFbOi>Jj2E-{$n^<n44cT(8Xud@f z!}G{XhtpfpbgJc&7|0+x);Tjgl9YRiKbuUrZQ%3<F>5-4?T{=nNs0j4o+W8@H8qP2 zqA5@7E)fO2FGh1sSSu4vJ)#*i7(!_k1_OySN(Au85hqAj&VNcP2SSPnsXI*BD;0xI zsv9m+D!^Dn$Q6Y!GEqXf3L&KfQlWx98gT=?MlB&bpG&gnU(p~%sT5naY3)r>Ft#cR zVQLaq>=mr&8&VDzX%YuD17ZOf8=+czA)nc}Y_C8_l8t0~5UHSdFc4|03>Zk}82Uj0 zQxp|-v%%Db<$MCodn}D_QfJFE3TJ>o0aO_#3QURC(qta?7qnu!obMC>$!U~0@jg*l zh9M%ce5TntwI^m(l7!$zax;MraYe@}SRGQ>tlL;QjHTAhq}@y_n?5QeDk0pF5Di2- zX~Yv0X$>4wpqAS-w)h4g!RAI%SHh;GC^>m6l(dLKPd;H}U85GF2DbNUKQ<%F@8i-O zh43MzcT8Au_#h=16tvJ!5HFQAm{VKAos#Yq=xM~GKht5rq3858&4^+DXat7AaFd1w zL514n)uP305-y2E(XZ6jSB!>nJ>M2}%%qaE`K~!L0Yt$g=ehMjb|r<Rnq(1Z&PQb( zFoi(d4bF%=`kTPq_$awolL6R9Y*7=jVW*L%!JJepkk_(;LM{1M0zrE-ESSi0;-z*O zTXBm-S{2A;iFJiQ#luqbnfw!xopPcL)zm1n+*k@{j5APr5w&o?f$MT~r-tFu&X0g< zpblai@N@}HNWx3XAUu?nD2fJlC|MdeRkgj;gu)pUHEkw`q(Wt;AhS88DM&(P30@+J zvw9<iz_=nfS&X>kH)F7fr_?7fvb|2+p@>~TS?s!8%3>Kes7%=dH^Bw63WgIZ7H)IG zQrbVMah#EkZ15yq2^iZnlqzKgpMZLCI+%`Giuz@w3*)N0Wqc$#3k*W#h-D5FJ8~&i zduZFfQ`QUeKTYbz?6|l4PJRjVIY3Y7D%D~5*@5dOHh~yFbzAxCAOK?79R$xLGIMne zyt<6<79?@glp<`d(<~ysl&bk6({M&O6M_bqIFQ2sAsmjLFMmNjRuE(g;LGt<zEon4 z2%;OstVX~@D02pyXhL6ZrO8ImspmQkg5khp9WK024&)7pF#AqaL^Y4WiK?t&LLsqA z7Pd|ZI9NwP^O<qu0O?9w<^~EHLXOnr&1U}`Wh`9)zESTIyBQsx5s<xjd%h@1As>*9 zk}|-tm4k%h8!#lq#2wA1W}Eb=zykK2c5*6l;S3xW5n!@p7qTg*xg{!zh^0wMGbLBW zd>JGq`-q4;#ZyiLMZid!9^adTQ%ko0HnCeW?Q_kuPCEa8YhTl9T@zfjYTx?@4Us6K z1i^{_DI*7hpaexhF^)2D5(qeP5S+w8g1_P2l|k29wW_<%eO_YD;Cas7r+0UKtg7y= z>RsDM;j(u*gy_qAPv-(9?9uhUYq#a;ftAFe7{hMu|78onz9Bh5(u4MJu~D@?-w00B zer&gza3(CNTE<fgdEcYx?|KSS%QH@|6q&~sxV|p37+3%#i+mCBF6ZdKjtQ1BBIOk@ zo$RvR+fRELoo^dn=XF*aIfy04qCNtO+g9BHz~FAl-1VOUYcY~c3lEM`yokXzFaSC$ zWpH8A1z;-3#ZpV4_?jr*Xxj;BhgA=gW00CHWHlS<nXEtx<JY3cGA;^jb3^HLyurbA zm}ky0=@gUYMLCqD5hSz#q%TfXAYRAAqI=3p1V-@2-|Ruu*?3tH)tv%fcv_AQWx|zk z8n&=Bm4L~dBkrcxnOfQ18grQpCG|2corwqe=JUuB6O76l66_IuptPxHdODG5$3O+8 z7hNF&A~FOG-9q0YM*$jLXOC7;1kAQ_?)2q|x>}?7Bh|HK>E#RKB_`JbNp=1xb;=Sd zXdg8nLKuca$=Ds~Grg6}(63{ENnj69Epr|$*rdX|(KG^iLaX}YuCiTFyPA~y0xAVw z9>7^TR>o49;y}ry)Raa?bQcR|KErn6U;oK}+~r7gHjzTr$V~KSCguKtJ{+Av)zSao zbHtpuX#@T^`ljj6jTOYu=aA=4{0Y9l2N%2oAf8VO@*9r~>MzGV1+`D{AA0*$=MJy| zwqer#=dCdO?gf4>9)F>2cMZVOkv$}zj}k?@@pt>*t<xKN&&EUSgPxCf{Z15Jn`yY7 z>ZXXc#mrb4{Lu4{_WJ|<yHolV{hz72==X=t-8mm$&bD{G+?qANHwlkFHF<n8w5@%Q zg7W=8+Q@$K_xAs*k0yw^@et0*`0gZGT(!>EwO75KVHMAQMco0NC(w9XnN(m+q|c?n z9*C%Bj3rijU}f6%4A<=T6D+chwhv6~v7qp0r^Zs{(FuKfPQvc36frEf^u{QN03%h= zo0IHQPz_C;h_jJNiP16@G-<X?FmHb&gOq;)Uoxg4oGdO}1w)YfqSH#2g|-88`y3Z~ zUZ<*EJaHEC@Q{7Wq^?x<)P)c^ZZX32TsrJ}M;p3mPyk3CrdTffF$GaOCEh+awdc%T zru#7#=QJsHfh4d}S>8cCJfzpJ8L)?_aU&o`C+qWkBfX5e-Dn4H7mM*~n?4vE9kM-- zg$;gbN1KSYO@sV{duq~@uPMcU&oNvm=ekKL>G9SmYxFmC$mpRkV+e{p)0Wps*YPr~ zi<h64@|g9xKiTl`9=Vo2K^B=68!YY~^f~fvvI$eoMh2!pHaUkG>~*aW^Ct{;;&IR( z&`NtXWdND1_MLz|@;1*JF`%#o@}M<?MIma8=*`XJfl8iVT-#V~KPwC(k0Y(WJnq6S zf+@tsMipXNBXpq-R|2CPYY!>M{g{+HsQ4B`{i~fHtB3yH=Zm_Bt6U+e;w8S$icgFS zfh@1|tDj5@9+30NEUhGr&ftK4cCe5GK&ag@H5W(;jRJc7`TSB-H7f!3#D+{h0)vD< z%xegJmcWz(Nd)lJ5lT)NXb6Y5AK9;7Ybi<9Zgl;?!#rW6o~j9t8Loa-J|Nb@E8i8l zTZg7#gi&iNeS-HvuZKDsv!LDv@<s&kmSs(WkZ+x!QxBUv<3d4GN@pM{z863u5z)aw zM6bE(&_oPT!`qN$KXo05D49^CD+I}hNSK~}o-&Y<1JPdVbNPn$fLX`UQtu6r3@xvd zU~N;L-zonvCLWaTk{)nMxXz)Iu*K_F!QNI;b%LA+dVvf)Z;79y06k5XejmY}aeg32 z*#)Y2yrh`mDdR#u?}KT-2E4MSkd2@`XO---g7*<6B|V{5&Mu`A=y<9HsLLU@s(8wu z5n6f=Pd)I@)n`9fuq{p4wwGC&DTiaJh<#!GTg6gQ=gb&MWVEDfE&Ei5M6M0X(+HzG zc>8G>Boi|tsLza2ni~uCwbmWWbq4kHu-n@4=xGCmykE|&xos&jSxs)NR@Ut3hmcdg zJsKaj3ggN;UEGnLnkrxc%1A|Yx80|+PJQ<gRrS-BW`_?s-C{YIhle$D>(d@-tP7b1 z-Hs#g0!dECVHrW5u1l^c)@+e)l_UVCvk>ozbrhB1``VYx0A2Rby>(uVs;;P{n)Jo- za5Dr`u<{nexv$e1IW`=C@}^x+g+@~3aRFpt*w0FhsG4iD`LeTT4&a_bI;JG3SB__@ zQYP6>mdc<*OYqdYu;EiuW%ay}N>m$-+mCHZJK4G}=42p4&Kyn$%P!#>&Ej2-HksNf zzxTWXmzy({mIG`hy6h#{(|7UDuJgNDT$IONKk>;JweLmYW*{cpHF@f}X|oq8T`y1Q z<F8rtxBXVu?XEaYD#ce->3r=WVUxcWUfBA{wrfazx>s4Q>}!jo+~!)-vRky0+_n%| z*9&-Ixzfdshs7d+?+o*>_=0}!sLmODNMt|HsAW{^Oskt(Iy{5K>Nd4+?JFY_6C5b$ zlr38yvwf(I2ncSpbxzUODcFko`PMk}%z0BQDX-!6wAz}zfC$95QI6^-q8(qaT2`Bf zigcOuV_~iR;mg7sGg!6UlN>H#v9Yk6Y!y^4IORSf*Fa5=m%DzNKc-j7-BUKE{fjBf zmdrpE@_2yP1SW6N6$?Y_jO0lwRnl}Pj@~S$$=^g5mH=l|P|wilBb0{6a1tB%A+RMY z2*_TtmNur-V<HUe3M^|9gs4=B*7zbUd~xPx&%2(@Yk*=zyFc0W;;woYJ}>7>3EJgH zB_f#ZVCb<%PqT<@c4WL>&!w=@6Grx!(y5TSjGC$}M6riP=VM<VsjfT~cL^jc`gwz7 zxq40)<vRo=bN5*Dj1_Ta&0OC9oFY9m7~oQMfqh2OXlOO}aVfTpLc85l1>Hx|#%l#e z$abPZN08(USHqPq!C{+450_k$fSEbfx8@MerDTmT*j^%|9Fhk{ouD@(_~h*#&6gOW z0yyHHzdiK+d)B9_@P?Mm1q<nTt%-t%Nm6k$Cb!DZWhl7OqF%&A#@Z1Z6zYowLxjlY zsDfiX#V#O&@iacKCvW&j{LxtK%}Vz+-pi*PfN`C@=T^+OC#QLyQWK}oUiC}ZqP~S$ z^{*axwF0Fr<Xcc0k)7BqzN1BqKjTKc3{z-{0NSKiR#t~yftPYFbBgxw@{*69>enqq zMe^~+(jdqE8cT})x6H=Ww_&5SY3DovtY<7FB0(+*h7zn|K$3vYHFV}uv8)ZHivIbc z>M<kjHzPE(^z0<fp_bK=O|yIx?<(RIST&!33ebgvTyu#80z*3}cB|BBBYM(WwO80h zSsdj9(qN~D^I>(+;kBgSVxh|nCRmG-A;%Pt^>|&aGDUE?=?%bgU+4$AwfZrIQqgi^ zZq#96r$9s9jV>dGj%wDdQlE-&pq#BIFF~7H;Y~qZ_M)dwmtN!#dpgWuPO)g{H_4F^ zMiJ_w{4*78@dM-Q&Bu$fQwXcLYOnN-i9%UNnO3LmdVSNArO36p`?9bjn3&0I*MrD+ z!J?|nf}v#F?b5au8NF}I&0_nMCwejm5YOB9@uADIk)FZJvr>@^i4ZI73iRpa<vDq$ z9)+yg=<O=V+Bq!&t%N~*Y2Dh>C_7g?SMyxWgu_aE1A>~f6&gxGq}x+&@MGV-vaywg zy`mdqD-A3&t{cPSa@u}R##i}B#2S>(v}-2Q<{hfET>(8hwkn@Y{H?X&GZ)L1Dp++e z*H}HZD5ROPb|TqUEhW6S(?Z2U%FrPdSJmM6`L4-=o8~o8J@~0HSwuPGJCI3o-ltHf z6m$UozThpXvj);OlxKOxi>jJNqFv-T?h%2?w{c=#IwE)$gKuLYXss(<L31lW%BX2y z+j0Cvsk<yimTpsBI~G@Q*9$HqaC{<)*)os97%6F4t-0-GX0cXUB_BS{u>zY~F3{&t z1);Uq0_R&(%e%5}OLxXpt+tyxn(Z1I47#L(Rvz%|YTRL_{eU^H&dT%HRNB9kkCwba zI|>HL``}pHi*!f#rGd=tgv?M*0}6g7bLY13YJH*wPX8l(enr)Eb|XSY#J~DCf96^r z!F|=V_CFmZYODaRpw{TLUEbEF{!Gkya@_8JrlEIh#>L=hd49GY)QR`=>C4ITc9%Qw z!QhW1ofJAfzn_wm7$<3KxykB>;WnLKTb{(9ET3|_-hLhE{G7u7sb%iC{nXXj^ZC;+ z8T^^ft<P)YPau@Be1gQ4NTA=cc;hHFk8V9|toilpC|4TJ8?O@E+)k&IYOWszR?ZQ* zCipcApCEU2FF!Osub-dOU>BwCRJWGD9O4J>=U((w)~U7gvn%V}N&O_E6V<;ohm*TZ zM0~>*DYe1m_h30Ztk~4U_lapu)pni$(5EDo$VI(d%(vSihAXumoz*<^H*5(WAqnMd zGL!<T=s+1*FZ-HRVwR^NI#?w7ljR|535gXjWJ@l&wJEj&h-;wm4SUmB5+SwS8--|p zdOf$ekVJL*HeBx}&oSbXmAG@!WvUHBYV=K`C~wrCS=)m}s>!+gMqu|EJcbusNv#m2 zm7Sf{j+b5@>pyKrBpz!mr^<)E-92240EX}$yhEm!P=F+xMH18uQf|k$W9_B;Oij^H z0wHVFM{&n3_=rTI7PetQ$l9mnqmrX~bK2@SySMdk*T|PALZFIzL}*{Ty5;K$Le>4j zOqGGqffuc*4i>eT${xp0{R;K4^34>l4?)Cs?hy1L8h16SC}{R>GHjVo^UJmZ=v^mP z1)~o&Kpb~5Q|n||dhHcBbUW*8feTcbib~N-NQ`ub<S1kXG(CmcZ@$h&LB7PR6DGCT zEK<Nr!oJbo_~*S8yUZ$*{&^YKWA+$sWnuNh)S)IKZm^0NuQL3-Ag)4|v*Mw?Ec@X` z{s~}#hC(4hkYwwDXDA`ac%|-G|1eNn1o<1c^lSUU?8CJQgz{Ufe`XHA$mT*45DIoN z{t!(MBgko*F7m2UKr+w}kw$O@*-CD;0&VvSLETeU%@k^GQ$2zrrZSrm0Fn{S)(+M# z_<0#Jrfd}lfJv<4-5R&R)ny`MWpv+%XpW`0IwZ<)(37=?e;~KG?sz(aDmf^Q$4;J( zt3pGtbKT2Q)4~AyjO@_V`m$;P*DFnV<_?-CP|^q<*LLi6z#Y(Gs$^<E+0a5U`5LFW z@^C?!w+oL3gT_lPE-HIhj=+xg3C~MtUp+o017w{!8c9b|vglk$qhl%v)xYKRO&}@t z`7E_eKz7&NjRc!bA-!}e0wTSb?3(%N-sDSiIRO`wgKW1fTTL@l+fmAeE0tiD6;LKH z1BWU@uB<s5M*(lS2IhX2Gl96OyH;0xW4*la!&fIi?eT=+l|plt6|B$p545J`Z0&V_ z$w2G&0>GIrl0)l0Idr2`z+37oR~8E2mEM;PGK@))J{2E)+i)6P08!m|vv;w!!)(G7 zA<u~H!!P)zC+#=Op$O_!1fT=;dRL8dJj<^q35veb=@x31)Mq8wtNq)&7i$ZDwopr& zJ$MY=1ksO1t`PHT{o6Xx-b;_Nz;4{H-av<X+4yC26}?hh>K$sZhea6KCku<^?vO*g z-BmG_<zBI(u}D43)%}2Fc#<!*duw6KmLnk)A<2v^eL1h%tVp)5+*)~bQh_3RRJ$`e z1Qd~@6e(JF)+gUp`t;iNF`AcHLMb9%VZuWhAarVEX;bi9z>pVM9#$njw}eVLojO)z z>&LOfYwfgTBuRFj%6@Gsqf(weM=CYZ6hmk?-I+Spmt|8?Pg67(eVSv)q_g6hK7|VR zxtt@>H)4L;>ivB*Tes0mu|?i^FRdsPiUK`Waly>!!0<B9R~$(?-UGA9#ZG6=v`T1o zCo3Jp?1jry?K_!l<DhnYqu@uSG&?{%Z$#v8MO({FC~^q#Cpf=#y*1KRWeq&tvpb^n z;DmC7^;6FTvClx&KJ0;XlxL9NSOz|-T`wNBHIPiu#PlCr<@l#9t5Ra%J}my_zx{KC zo_v$<n;C|fYRR*Jtj%e!kg7R1Zu9#2u|4(HIPKCeKNdZv7u)-6ul+Lq;0)fPt2^c7 zTI8w0Xenak;I1r>h<6R&kg`sGmVhk-dpOa!Gcu9Ute768=yUzc-Mz+Z;=@c-X64H< z6C<>>cK{e&W8D4X(bBtV^6aWCHm5Lmu-zbWqIUq5yRjR1#N+7j<41^+yPUM0R2}&I z$i+@uSj-B$Sh_2_KKhy9KMByEr=fkKbIu%-T7&4Y^l5#~$PSwkkGjgIyV?l2>DR{H zgQfNJHp<N|E}A-EPrZ!5<6S=aaop2K#Z4x6uW^X0c`>H%Tx>*|c!s#nOq2isAOJ~3 zK~!5iu(xtZ0J5H_x54YkwdPaBk{<c2Q8Y8)aa*-VSTqmAMNNwZP_INHm2tLgOYJ@% z01+aUWrl0lm9+_7sj~HO7THlOmAkrDA-%78>vlp~4%?sZ?$-)peSZ`QK~}`N)S$aw zJysm(XYmw6BQC|bt_Lc_y8Y?`QJa>trWi0FpgbbMuzCTuA4%XaErde7iC9Sv(w2!> zY&y%YvN4Wd9)4XZDSJmwe=<Tfzk7nA7%ejV*!vq-7U!|uCvst<6dH(fB2;vY*FV}` zO{pnq)>Oc_VpQjfjBPBW6JH`ULor|r4*(MwSQ*^3ckYGz<^`Xkd^)%g%Gw4AHVQD& zHnMaoOD}7;#Roa+e4*R>=4Wj!mWv%A*GrB0lVOo!>x;4A^w_Ud)AJw^uxg=_`r2Go z+>Bem2CoFzGmy~`HkL-Qn^nj_>SJu^t@uQ}B494!sKIE3F0{O`mvP&yX5KD<I;x)9 z87kqe@5I$E^Fpk@3bicA*-GI~u0ZqOsM#tRh69PIN&$spT>tm}lJZwN4R7l=cj5uW zAOE}mxjBWoL8gRdGxq2Pwnp@ovy+1OcGtCslZNYX$GttoNn~o`oIMo(;{`2)1rSf4 zX#3&wV;kChjSl<sDx6~-v0wkx;B0vp-KT+mX#6{ba97HYx7=yof0)XJ$?a2DOnv_> z=N)yT;eb=#$Q#1J0WI%m{dofNs`O9%9@L&fyO`e3mNm83?4Q&+F$Y}nD?r{6?zG{i z)=zHd697K(u3vEo^V;D>>0F3xH(ts9C2c=iB`8vSw)Y|P&pz`#@n9WZRR6&z?7;qH z4nO+sb5H>I2FCiU=I1q8Ua*zGvtEj2iF$8VnIx+p>gQ@6zKLs%a(}23W9j-@5^^_^ zMUQBZse{Rz3=QP(8%&P!81F80ObU02uWnD{pMFH_=;ApL)9BqTj_-D+%a$q<tX&B& zb6_Pf!pL)V=lpg1EIFsq{7eS7nJg!TuW70-b`iS0u}1mSCyX!c<Zuju4-S#J-=e&E z<h?VqQeVDA*g}HuAh-Ta3l48fAlX7>$!GS{qnt|w@oNu>y96Tj%8{RL7Y+Qm+1c(A zk1bW3ejaj%Lndh;aoyq6tl?0%=vi`+cbbg*ui<kxNYnGeomD4<m^BfMT@H?r0}mQG z>FC0W?XIIb^L?1Z%KTl3L%G(8Kj8~=aqf=1y$ed%gM*C>_K0tXqrA76V&B}_YVc)0 z!3cKS_iU~^jXs(X`DT32x1r*jCrp5qX$qJ)7XH@36_+nhPfjQYi(W+L`{=Z{`o|`? z;FEXQKYfcIz~Ix-8=qs<sh*AbApM&M)MU_}j$AZ~r)9czZN9SPKw@&j2<$vQPgDWu z`RB$#WWN1sr>-H(dM7ZwxbDIj^nnKcOye7C*u--D<XVg4Uqn9Bs!Om0N&59^2E&p& zQqkjX=DO1`3(Vt?(nXJk@F68ZZsNcFvJqJgsA8UoZ8=yij0#b-kx%lV<B{jmkb)A} z+U`Dd*m5v%4mq4k;b)&+=E*>q)7a_cLCv23%yQL(6C6fl6KuD@$J)?EYR6|XwK<CC z#vl$m6+1osPj%>wUs#QjuTz)?j7>Y6JM#MUGSbZ|<=N6ypB();IC3ZK^7&%fd$=bz zHg|rFyt8qa)FCAft-V8zJGAx<#Jdg?BVUgRFA^hGq?7W~bGd<fms%7n_OP)%tMS<N z$MZ1(WQ8%qB>_MObpW}rh`MKa=XTbsjZW$4PbL7@5mMgJGt*)+>#jOg^3*8MKoa?~ zCXd>ut}{G}8hxc1*TM&n<s{bA;}RwpdJ$0033?|Dk`Bm0=Ju=;YgV|hhzDS`4`k}S znu`(+>c;7jV|7w7cbztb<%|6cWP5yzLa-ZZtNPao*ZMEHQiHkv_LZspTu0NRlR6#& z6LcfcN4jei06M$aWwZ4XiU0^>X#|95(}30Udhe92>}r`bjA+S9l}ZA5gNC}aBazar zL?3odz&%LY&JHJ*ekgIVLo9bQM5k&)0m*8ig4f$eDmRvn&-I7(8Sz@y4V^1uzAgZ* z4kM)(jCBU*bt+VCRF{ESiuzvg#j3zY+mA3P>eq$dP!*M0ZuW$r`Q~Zw97)`&A!9$~ zNP;CZ5Y%#)Dj-ktgg_TpGdEaDRz3S5y4w4L=d<Ap)$%erH)tEyUM=}z&XxtekqD#} zZlIg3NijKH^&X(++Q>$fWRh$1YUk}jryr$adY&<sgb+Z+zxelmLG{_u0k}U3fsc{X zeyF4qbZOuBl^XWzt(QuYbKIOa+3lS@PIeZ@xZ7Q`rT=6(Jlc#OO6hS)o~8ZT?=RFV zPb&g2+aK&-zIZDF&si3m9&6T*_IP0Z=>a`gqQ<E<MqV#s1b|8AAZc_qSDCRByvfb` zt+_l~&KtURP1#QzWxsde!8&vyG)YZltJ1;m$Z`C~{h}%ikw^(Cr)IAr-R+3$48P0# zlHWc|RUI4#sJVH7w%ANOu`1sFVAs10@0dKi0ms^Ov7`O8Vi>;@jaNB%<BgJY=nY+) zklh$3#1G+sDmY|fvkPyV!r$#{ayO*Z*KGmn60=)?>x~Cr*U$b_54XW}>*1U=TF$Y{ zCpMA*FRnTPkX3de7BO7Q)Zu=Wn>A&(Rdm@89{k|aLo4^y50?yejy*KuMCYQ_ci+j1 z2J0Nk*h9=%Vrp?YR-k+~*t%Wgwy0Zn^|txIjVdk=>!+}IQ5=ZhkjiG>ZBGgIgd23C zjLQl)z0e}J^k@mZVkV%cmm1&cF>wu{w;c78MhGxM)q<VQdU47{f8>kcR=u}q(;tD0 zfOV%dm^wIV#a=^aiab!<tM)`4`#C&FgQW57jwxDbOTsk1AU^9jejs~?;ZALJP!&#V zK=eLd0$IU^RrbQd6vEX)X<HWM4_L+eK*w-ak<hO$1c1Wxh$y;4Ou+V|jkbK(au^Yr zkCh9_1+W@)5l~KGK)n!Ri{m{Dl`AOnG{15hjkgu4+@_*Mzx<539r+U^`kY0y^gs)q zXlWY>u^AJSKt=^b)*pPva0$Wo);9Uc$si&MORWN1xQqa`C|tl8i<K^SQlTw#us!41 z+{gIPg7i8~R~Ez<lG(Em>#mlYuc4dt^}P#qQ$bdzm0Dhc?ZP5aP=QICnyvj=+h8Cw z{`r6SOF&tZEg1tdD*io>37x@u!PKHR&v4Vo_3IjUJ8I$`9uefdjh%1lCoYX+uV9@{ zu-~}Ra}Mo{xE9&NnZ&wC>3X8(AZGt_`)Lw3P*rH0TWRx62tN|tw~y<eq<zzlgYqJ@ zO%$hIKD9i>d-m*oZh-mJr~MS;eRQK)98&6@e4aanb`#VE>f2otnUCAf$^Laj+%$Fa zeq(lHttE4{L8tJhXrG@(&sU?qGUDX@pyFfbLHQKR{<h+6Txad-ms~zKBww}gv8zv< zo*n*h@spR>xW)m?O)saY52;?%@$=~0jRy@Kz|`&gUH|M)|5y0qqW;N?rEP9-(`z%^ zAn!kO#o`^1Gl#(_9-lVYq%fyOtjXF5(|H6RC92su@z-_qm6P|rUHtYEdrk-7LZ`R4 zcQ@oY8^+E1Z3z1)CEMeXb+Nz&wzqE~oa(?$BkZmEzKt^QV4WXUln$q+(EH2*7^h#% z?m{~>Xm@d?>HNB`>$;j{ALyrKE}9)8l2&=I{|a_~sJLaaR>D-x2Ja!&lj~_R4$hO{ zCIEKh1_SqNNB<|NHWRbEwC|tSOaA?<cmn!JRjU9^`TmoQ(uSPGiFP5PTsGUR_D`FC zxCm-~PKztPgg1^0IjD(k_B>g*E;USa!(M!dz1xk*67LQ_WB=^oa*>=4p=G-I+9Odz zFkq`^2xG9$@5BRZLK;dn*-;WI70gwk|Jkm`U9zjt0;5Bbq%LB<?jG_Q7PXkjUboa0 z+F3kSo;HDq{4L{)7uBITt*RpYPE};_=tUpO2+&cuZtk?%ck$jA%~LDjGejZDH1=nd z3>d!~F%o0<=}*)je#-(Z4Uk^5%eNUWHea*R98W7nt$PR~eVZZV0M#M7?dHp-aHI~2 zm!i-V(g=YKWYN^j=6W-jVMQ^k-ER}&iO<|`hvi2b9$TO8gJkJ3fTW8~0L-Rhyf*uo zizEuK4B~Zcz0Zm5E23f!wf-Bz7wk<h!oM2xz10)aF2-a$*H=8z%=R>T2x>E1HJ0S{ zNxPCcDKuL?>D*<KL-O%hdyUocH_A#hi#8K@0o8o3`jI2`Jx8hy&v(d~t6z7sL+l)A z-^7@Ezs@i*o=+bhZ(wOEf}?yRo{SY#T>;1BOWSI4OTF<>Z<Ay=xOg=m!a37q5@m0Z zRfvg`SD4WFBDHqY)lIHHX)qC5WAgM!7h_FU^UVsCt}=+vH?rPl0)X+WMcb+c{S07g zvjV<trM(!spOs)py^Jyua5~9aVW`()G02vxv_?+3OA;fWRrDwgu;dEW2!EOn+X3W2 zSON%JrE08zhcBd{oQTYZxX9PZnyv>=&uEkJ;-RKitEmiMXZf<RbZx$7Q4X6p9VZXp zTDIhdUJj>vh;kOvV@XwJQx{<}A$kRPLO~BXsFPk_G=o}}Mi&_?pGJ%kU=fj~jvAuK zRvZT9eK@5Nx4e!bSV{`+tp}b%vvQ@iN_Uh`eJ{)6?IHRe>3UgZuZ!0Z4e1hTIwaI{ z^;u>ZP_;~n2v`^ck|@F&mCP2w99OQT@-vU|%ZYXYfMThxjMHd@h$Ox7YpB@C3}Sd4 zcwb6q&r2q7*E+gQ6Pl(a^OSD0UwzBMSF{H(L#D967kul+YW7GGLjJNS?suOa6p$Dx z2R&x%N4M+tzNNC8X4iCaoI%>-eZO+zbY$y`Sn}E`4%x-k+Bl~R3jj;Yv^p0$WV&J) zxttXFmjimNnO;;}XH1tM=0+9SvKxWEHMQtmrh%r^*?}^2=qw}b5w?EmWY%!?+)TSs zo&yH`<8T3_Y75O#gHYU=LnBTuMga5KMAs7@A>k<LnoM%v81}~cW@%!qy>`1@cya#f zqhD?3)cVW%IF_O1(M;19DID-!f0P4HS96XxGy-+(ILU8YyE@6Cnp#Vm^er|Uy|^(! zC0J{jqrbk^ecex)|6sl6@!a2#3ENYi<%Ufi-F_*3SdAp#n}~kW-odt(_Tzy~gPHWz z^`sdfl6;IEiGcu%buRgFyYr}24#LEK=UUWeNx*0E%|bPn*IsdtG<52h3ZIpP59Hf$ zO{vnKqBUebjfZHxH-ix>bW82Pxf?Bq^lEpqx!G2FRl~ZJJRsTd3emKYde()lhr^MF zfnAaFp-4f{QZEcsr)^i}?b{U!{OS7c?c7?MQ(qDBPyf^Z_8q{!AMee6%!?)f3@E6< zz)d5jD<yk}OvJTmZU1&}@HjgKF(`L{YKH5bqaBit*%jtRXH%UxRe)jwy%iYu(rnBW zFNueANs>n!-R-Sc;ro>Am{>kV&TF(O!xt}8;Nw@AUTmw>Xi+l8-NcNh_SB>3_C)z0 z;NZ9A{~364KIH*pV#y`5Vc4T9)}a*Fzq$tdiZ8q_^bD2_S}}$~xm}$-*@Cw-q<N(i zv;WcNj38;9hntixBu<<(*_|-hoRSO8)n{gCmg~my9z$aaMAv4Rw<Ww;A`V6z*ccog zUQQ&9mGLmfgAvg%2tEaf;XU>a^We*Q@lKrhDcg(H+<f)sxCRYq-UkTXA8wt0veWu* zXD$rzY_?v|X9x1a#8LlBE}HY7Nl;LhYguQL!+Pqfe(zI*tgojO(OO>VQ9(v3daNJ= z46s}PYNI3&)92dW%f}k=DCsgbMWW<@RXOyn1JjQFhSZ>@*pH{FE$u&m!hM)E2Q%?R zy!BdZWa1el&6Nu&)E+-mg>d)=HXtD_Q=E0iv^n)-ov{RHCp%l|d~09zW81q&{}ycO z|HVs`2#ACgyQ`=Xrb2yzxzC-u$^m8C5H<5X!$)pCw9DAk{rC{v0Zhze)v0WG<{*;3 zW0b(LZkP1x-syTuhCJcDMu~`boz`_lKcWS>-c_S#4@@A#wWU$H_K06Y+JpGU*GK6g z%H)NjF!vhnH;SP3Xn{Qp01~6LP-Z;%<oE*a4O;(TWM#9&enwL@J*PLX&1I`#ZQnNr z5wT>;y$Atg^E+WCRiY0%H>$4_t$;_lw^cgWq(Q4Gyia(>h%iP*wz;t1iI-V=3@Q{l z7v4%N3@bgM&P{h8CkT6hK_v)8h&_%H0OFtg=f6stG1WP!=ePDaI?ujBQlUs!^<zk} zFpg%$aUcYM{W{=63}XDy3fNrK!9vrlWtT0B*a^|UxG0CNFSaRwL7uF&9Gackl@HV# z2qXR!vZ#tdKibKS<?ROXA>k2&0wd1lxqY7+rZ%~vZR^+JQ*HT8+=*Se(h;qe(?Dkq z{N0`OTqY7wjN4J1rftdx^2cJz0qK7xy<z`LvvIT^i|DOq2i4}E4)EyBp*FN5_KX~4 zyXI}U#2|h@XSG?eM~@G95AB4Aw>BC*2j$ZoG`sLKMLl>_Xx^=9!buPnr(={;t#Uy| zz}E91Ksed*8EQ5?z}R-pw5kJjn6-n%ZOZqF(}%(Bv2oz-+V%(gn?H>6)|AwFqbC}t z6FxNS6yj9hB&^-wNoUJb`y_U=uE!t!m;VE-1kWay?Q`mS{;Zr;H#mE1p_Mo^f3g9^ z6oCJFs%GyH2-4sNiJ>O@Vk}Ps=4l@l@l#xt6GC^ckf?ctjajE0^eHiAwc&CT?<d|j zA#5|#NyhG{%<&EF&*zq|cWqo;C0z3Ht-{gaE}2O-jt*PJ^(CisxXAM=H<MLny$`p+ zaHp2M<iV7~>6H0)%cghn2<F+7=9-5EeUeWPY9;{enz~tKAEWwYvz;LyE+V-NYDEu) zN?b<aCmimdt05l=sx998Lnr$$lNes1w>dlmwoX`{Cnk~DzU-;uW7heRDgzV2bK_`( z#9f}ZUr(R2BV+^ZguQoirD50mI91RBG{eak5#LNtsS>j#);2d69{;&<yt@Wb6Or%C zsRBA=LY5RA>LP|klJopprC!*twL50DU<QQ-FFOu062WbFwE_I)yA<E*&}u4&m)f-) zplPM|)TFT5uNP6ftir!ot`*J82-gD04zm<%FB`kc*mFmyau#5fDC~-*G%n$?I@Z}Q zavp;1n7HD2q83yfbul`Jbp_ySfrP9L5iR+o>KcqA>;Tr97gn=l`-FYdu@T+qK4`ck zMqg7eiuK0>W{pvo^8>tAnp4fjzG_J?Nq^Rj!z~&%wg}$auQc7)aFUqQ#&H>sjeLo7 zM=a!w#9-Bla1mA;W%XqdyR<Eks2d|@l3Xg7mWw8Xug6t`y$8b2*NbdvMb?J}xn{yn z==;Atqu9#?U<z`}3f9>EXz9)@5HpYNp)klf+Y7Io1v0qJ3a4ec_BUuXqF4t6Hg5SY z^Glm>mYm;PRax~gY7}JX3SGqW9q;?CV<*`K9Q&9}{ZS+6c-1Ik*c{)U^<90gI*;RY zU|5_45y<!Xj@PO@@T`%K7+6(A*O8~`$4g!vZw7d<&#!3oRNAH+c-SEWejNbcY}T;T zk+bb~2FDN0b<j4E{XTew4UvAFY0%Re=7<q41kI!S%Af)o@a)|-y<xu?uJmI9i!ahP zeu_FlD;g{yR?_Inz9&2zdg!{N_I(gkhrtHnIuYRFihOHrF^1Thoh6W`RLNQaAcjC9 zxJ%f;zhkKxcY*NYK0Lq3DvO1Q4HsJKk&H>hrF+1%=0rZ2{*FJz7zmH-V!;(LI#k)y z;Wx&dbO>h}>5{PPW$(c{0gyfOO@qyt^XNL|^>y}h4#6(QR2NsDbM=JFy5kFRq33Ab zyfCe0Lj-1wG{><zAOde37SYH--^iJR(qOK4%5Cdy+^G2FO=zgMytcXdv=aH0NGZn1 zaiBL5`FzDc{;z)xY@rXI2GcKkYGh)FjI*(2L88{@dhkunv_}SlPi!4QQuCWl<dVzL z;ofGfE^iNcnb?hm<Vwm6&jS=k&n~6?*|aM?PDXWZjyvN0tya6w7do;JT;w@EBe`;T z(z{e|_fE;=aZ4EGT1UH5u5IRMgA$9BPEO~Dkb=mXCpPFFKT*4X$ArBA*|gcu7pWdX z+XcJD$EN@eV3Y~uq~sJr<HwNHK7Ai+vl{))I(XfA+WT1Vy~+wOpUvDIMKuPGjJBX| zRv^Z0VbKHtJH|Grw6lDLchJei2V1`MFrtD*N!*#e_p>1=#il8@n~pwR)Ef-$*nr!J zNgIR0<l1!4^mxJ*yL;KpWD54?1~*eW8)HJMdx$^$Z~ymfJ&0&cobo-W+_8IH|0O3| zZ`C%i8}MyV{n|MGD3MRJWkkHU=aYBcZ;k_(KQ}hdLIywdb_c;pe_YxhR0WREfjg8R z0QVCXKec}@to^{q*p@|?AM8i>?<<Lp(chO-`V+dM=aY7E!9`&z(Df@XKVb6X=l5x_ z{|sPDI?m5eME=UecIEzTS-<*R96ct|Hm`c?`R5V;zkvFqj&7>#Qxd-(bmN-80>i|{ z0`8>kcgW`l{QQDK{rUU?73-&u&gx_T_R!k|<X8vbBj5qB+V|>fHC?Trz;AXylWChk z3$EP9T1o@}Jq8727oT1(#-Bz;tlpHVvvHj_SV4haFW6>N9KU)9raEb@*Oh)Iu4}IW zT<zwtmRwH<vrUh)QgFtXm4AjW<vi9Oy>hW%0X?S`9b~KTI&Hjb>x_m|8d6h|Bk)yV zZy?^7W)>0kbSjLC=|?CE{?v@Opw^<MXim0wuEXAJ3(4OH;*rx1s+8nAGWKP(J>!Ap zl9jq=pSgb3jeX1#V9b+H49|Ax%igV!X&9*7>=XH$9eEg#IFQiqH}eMuOA`Ku+0f9P zShZU?gv|jn57Y^Xi5W+))RacN?HgjKIPy1pF0!Y+y0Rmd$SEy690gUeg14LEOzC8Y zfJs7S?3VgL&H<A0MaZ<4Ry^KrXYSAkEtmMVe74&s?G20p?2>(@+;aNQ&9s-k67+a9 z;pu>i+J26Qx@g!;uf-&*036vKhS2guTjp<{`3BqVh!d<?skI(Ow>tNAW&r`jD5(=) zz>A)G%p3f{fBzd_e0d$9Y@G$8qCQt@)|(X=y^})767<lV=%7h6yrGCf$=5;(0a#H* zO^mCPahDV3Ivp(3Y_5((cD5+NFaqOd&FRY#c?L-mo8#tOU(^Afkc70Tpj2y#G30MJ zppO_#(XCjEZrX0Nx$aJKjm0ZnBB9kWS)fuPP}qR>-6{RD{hdKmiZ8t;Q;H*mK#z|5 z4E0G?%d1Kwl7--<_A3&5<hrKE(qq&SCe1^n%klM=YmMZ<7*l;>oFbb=OxmZ!7%>Dw zwEIi%ZIp_U<?d%LW^|^08!96QvU;C0+K-<SAQ&KfY*q4$DD-q%ud8*OFIojf2)$6* zoXMd<OK4?_2*e2u*;cfQ#!rRzvg6<j=nZSQqqBS67wwRCAZ&(!fe<QA*rr!;{7>0h zoXy5INW0g9J3v3K(sR7rV0V#5Qp#D4grCm^mWSh?Y-28MaQz2=_O~8q8&wP%4b!V^ z+p%#4y=BuDUNua&Ajx^7nr%TCfB1j@^&nD#+Ktrm6LaTy4MOe#T#Rn#T%z`-?=b`U z#{#C~`$c;0H#Tu~AQ-zSMh||`iz-gJU8wvd!#M<ecALUEbuonee9p9)@I9vjGz{kK zc4IuCq8`?C&I?me(<=^=PNw{G+QlZcAF#T0KI9oU#9o^nGCXYuxP`Be8*$nom(q8u z@repIy<82Uorb%}i+o0hXDHj{GxzbMR*2IBcrt17JBZmm-m|m02kJlB(WdL?BFqhw z+N5^r=PA`Iz&_Ei(c_(X9?M<y#SNb1-Mr-)TEAd&!;df007U$w|MCAOS7S<LFCu7N zNvz2efN%6P;j@QcbkvobmDYEGDQ!?vlUyZmnV`}8E@;i~+b`|+d$w<w>-G{cypxNd zTcheQ0E?t$BDPgS(^exKi$ZBneOB;VETeYtJzVu|_a<6{1L#vFHt4olHg#}p1vE0j z@YK}uYNo7Dubd7=JB1sa_<V0^6N~q3G&#wWQ*1(LVG{H33uEf_>Cg2-EVWW%9!4LZ zum{Fl5t}u&DXo8}>*;~atabyQT*Htp>jOv0*&#OCi?A(vfeA<<P&nV?JTM`f(U~=Q z@W90~85zGed3Al7AyNP}6CN^jgxm02{8O;;FK`cTNOpznofxwkcQdO~hgUr8Dx1C+ zFgK#`+Wggk*Eybj)p$zia2-2G!mxJd?r%Tq(S|DnAw7${Z`8(fLAW-dW%mtPRRUHt zc`2ZQyB-QDpA}6|2NvjDdN|Zdzf(~0Ai#0}Yp?dKh%?cHD#sgO)Sf7f2mO#iJ@4{X zIwnZ%vqCnCQqBh;YUWo~hVkD@J}s4O>@SvmW2-}}iq2(lKNFH}Ft5gwMcGd+_+uOu z^IbuU1c0|Bp!8TD$1e?1N9554ilpwBC_45XV^^X60hG+&=UMV6xGIVDKHsJ82$?~J zq@p9;L3IP`OuqzDP+iwa9+=vZ9J0%bLo}z6%0E?f90>))fMlFT(Zxnju#}|cT>_Y~ z=2&8<cCel&JHs6rk&%(>_-u<}m51-n>#k@J#uG+UKRk&28Et~Fg-}C33USB6Nss6- zM~wbyS&N)ySw>q!?zLDbL7p;y3ST2VBz0k)wlmytq!Om4)>2bu>J7U7aBkU1M@nCL z!v~Rg-Jg^m?~BxoU=p{d+ZMPRS_c@$qBH1Kiq0o$mat$cfvwR|5(tZwnnNq)TG?x^ z#r6=HQmy{JwD%!L%MZ{^y^oU3OTbT|pdGA$iKe{HJ+|A~U{SyT001IML_t)K%vI-i wIsErw(wC_w;s=b8a%M@&p**99b}M=IcSz_$YYDI>@c;k-07*qoM6N<$f>D)%1^@s6 literal 0 HcmV?d00001 diff --git a/editions/tw5.com/tiddlers/images/Marketplace Banner.png.meta b/editions/tw5.com/tiddlers/images/Marketplace Banner.png.meta new file mode 100644 index 000000000..b693c99e3 --- /dev/null +++ b/editions/tw5.com/tiddlers/images/Marketplace Banner.png.meta @@ -0,0 +1,3 @@ +title: TiddlyWiki Marketplace Banner +type: image/jpeg +tags: picture diff --git a/editions/tw5.com/tiddlers/marketplace/TiddlyWiki Marketplace.tid b/editions/tw5.com/tiddlers/marketplace/TiddlyWiki Marketplace.tid new file mode 100644 index 000000000..3de695de3 --- /dev/null +++ b/editions/tw5.com/tiddlers/marketplace/TiddlyWiki Marketplace.tid @@ -0,0 +1,18 @@ +title: TiddlyWiki Marketplace +tags: Community +modified: 20221204165636777 +created: 20221204165636777 + +<span style="float:right;">[img width=200px [TiddlyWiki Marketplace Banner]]</span> + +Welcome to the TiddlyWiki Marketplace. This new forum is designed to provide a space for individuals and organizations to offer commercial products and services that are built around TiddlyWiki: + +* Paid hosting services +* Custom solution development +* Training courses +* One-to-one training sessions +* "Fix my wiki" debugging sessions + +<a href="https://talk.tiddlywiki.org/c/marketplace/22" class="tc-btn-big-green" style="border-radius:4px;background-color:#ff5c48;" target="_blank" rel="noopener noreferrer"> +~TiddlyWiki Marketplace +</a> diff --git a/editions/tw5.com/tiddlers/saving/Saving with Polly.tid b/editions/tw5.com/tiddlers/saving/Saving with Polly.tid index 60ae74087..103c9e0c7 100644 --- a/editions/tw5.com/tiddlers/saving/Saving with Polly.tid +++ b/editions/tw5.com/tiddlers/saving/Saving with Polly.tid @@ -9,6 +9,7 @@ modified: 20220223160414274 tags: Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows Edge title: Saving with Polly type: text/vnd.tiddlywiki +ribbon-text: NEW [[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. diff --git a/editions/tw5.com/tiddlers/saving/Saving.tid b/editions/tw5.com/tiddlers/saving/Saving.tid index 8210bba1f..9b55b1d1d 100644 --- a/editions/tw5.com/tiddlers/saving/Saving.tid +++ b/editions/tw5.com/tiddlers/saving/Saving.tid @@ -54,7 +54,7 @@ Available methods for saving changes with ~TiddlyWiki: </div> <!-- Page content --> -<div class="content"> +<div class="tc-cards"> <$wikify text=<<alltagsfilter>> name="alltagsfilterwikified"> <$list filter=<<alltagsfilterwikified>>> {{||$:/_tw5.com-card-template}} diff --git a/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid b/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid index 272f22bbc..d4aefdb0e 100644 --- a/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid +++ b/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid @@ -8,6 +8,7 @@ modified: 20221126192853897 tags: Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows iOS Edge title: TiddlyBucket - Save to AWS or Google Storage type: text/vnd.tiddlywiki +ribbon-text: NEW ~TiddlyBucket - Save to AWS or Google Storage using Go diff --git a/editions/tw5.com/tiddlers/system/tw5.com-card-template.tid b/editions/tw5.com/tiddlers/system/tw5.com-card-template.tid index 50d0b1163..a2400a739 100644 --- a/editions/tw5.com/tiddlers/system/tw5.com-card-template.tid +++ b/editions/tw5.com/tiddlers/system/tw5.com-card-template.tid @@ -3,19 +3,4 @@ modified: 20220719134613555 title: $:/_tw5.com-card-template type: text/vnd.tiddlywiki -\define tw-card-template(bordercolor:"") -\whitespace trim -<div class="tc-card" style="border-top: 5px solid $bordercolor$;"> - <$link> - <$let tv-wikilinks=no> - <div class="tc-card-title"><$transclude field="caption"><$view field="title"/></$transclude></div> - <div class="tc-card-author"> - <$list filter="[is[current]has[community-author]]">by {{!!community-author}}</$list> - </div> - <p><$view field="description"/></p> - </$let> - </$link> -</div> -\end - -<$macrocall $name="tw-card-template" bordercolor={{!!color}}/> +<$macrocall $name="flex-card" bordercolor={{!!color}} captionField="caption" subtitle={{{ [{!!community-author}!is[blank]addprefix[by ]] }}}/> diff --git a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid index 251851457..d4ce76a8e 100644 --- a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid +++ b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid @@ -122,62 +122,181 @@ type: text/vnd.tiddlywiki margin-left: 10px; } -.tc-card { - margin: 15px; - padding: 10px 20px; - border-radius: 10px; - border-top: 5px solid #45D3D3; - box-shadow: 0 8px 17px -8px #A3A5AE; - background-color: #FFF; - width: 200px; - transition: box-shadow 0.3s ease-in-out; - font-size: 13px; - line-height: 18px; +.tc-cards { + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; + width: 100%; + padding: 0.5em; + background: <<colour background>>; + border-color: rgba(34,36,38,.15); + box-shadow: 0 2px 25px 0 rgb(34 36 38 / 5%) inset; } -.tc-card:hover { - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); +.tc-tiddlylink.tc-card { + font-weight: normal; + max-width: 100%; + position: relative; + display: flex; + flex-direction: column; + background: <<colour background>>; + color: <<colour foreground>>; + width: 200px; + min-height: 0; + padding: 0 0 0.5em 0; + margin: 0.5em; + border: none; + border-radius: 8px; + box-shadow: 0 1px 3px 0 #d4d4d5, 0 0 0 1px #d4d4d5; + transition: box-shadow 0.3s ease,transform .3s ease; } -.tc-card:hover .tc-card-title { - color: #1462ff; + +@media (max-width: 500px) { + + .tc-cards { + padding: 0; + } + + .tc-tiddlylink.tc-card { + margin: 0.25em; + width: 45%; + } + +} + +.tc-tiddlylink.tc-card.tc-card-quote { + width: 320px; + box-shadow: none; + background-color: #effdff; +} + +.tc-card-accent { + border-top-left-radius: 8px; + border-top-right-radius: 8px; +} + +.tc-tiddlylink.tc-card:hover { + color: <<colour foreground>>; + background: <<colour notification-background>>; + text-decoration: none; + cursor: pointer; + box-shadow: 0 1px 5px 0 #bcbdbd, 0 0 0 1px #d4d4d5; + transform: translateY(-3px); +} + +.tc-card-ribbon-wrapper { + line-height: 0; + width: 75px; + height: 75px; + position: absolute; + right: 0; + overflow: hidden; + top: 0; + z-index: 999; + pointer-events: none; +} + +.tc-card-ribbon { + transition: top 0.3s ease-in-out; + top: 15px; + right: -77px; + position: absolute; + transform: rotate(45deg); + background-color: red; + box-shadow: 0px 0px 2px 0px rgb(0 0 0 / 50%); +} + +.tc-tiddlylink.tc-card:hover .tc-card-ribbon { + top: -77px; +} + +.tc-card-ribbon-inner { + font-size: 10px; + line-height: 13px; + font-weight: 700; + color: white; + text-decoration: none; + text-shadow: 0 -1px rgb(0 0 0 / 50%); + width: 200px; + display: inline-block; + padding: 2px 0; + text-align: center; +} + +.tc-card-image { + line-height: 0; + overflow: hidden; +} + +.tc-card-image img { + border-top-left-radius: 8px; + border-top-right-radius: 8px; + width: 100%; + transition: transform 0.3s ease-in-out; +} + +.tc-tiddlylink.tc-card:hover .tc-card-image img { + transform: scale(1.05); } .tc-card-title { - text-align: center; font-size: 1.2em; + line-height: 1.2; font-weight: 600; - transition: color 0.2s ease-in-out; - padding: 10px 0; + transition: color 0.3s ease-in-out; + padding: 0 10px; + margin: 0.5em 0; } +.tc-card-subtitle, .tc-card-author { - text-align: center; + font-size: 0.8em; + line-height: 1.2; + color: <<colour muted-foreground>>; + padding: 0 10px; + margin: 0.5em 0; font-style: italic; } -.tc-card p { - height: 67px; - overflow: hidden; +.tc-card-body { + font-size: 0.9em; + line-height: 1.2; + padding: 0 10px; margin: 0; - padding: 13px 0; } -.tc-card a { - color: #222; +.tc-card-body-wrapper { + position: relative; } -.tc-card a:hover { - text-decoration:none; +.tc-tiddlylink.tc-card.tc-card-quote .tc-card-body:before { + font-family: Georgia, serif; + color: <<colour blockquote-bar>>; + content: open-quote; + font-size: 5em; + line-height: 1; + float: left; +} + +.tc-tiddlylink.tc-card.tc-card-quote .tc-card-body:after { + font-family: Georgia, serif; + color: <<colour blockquote-bar>>; + content: close-quote; + font-size: 5em; + line-height: 1; + float: right; +} + +.tc-tiddlylink.tc-card .tc-card-body-clear { + clear: both; +} + +.tc-card-body > p { + margin: 0.25em 0; } .tc-card a:active, .tc-card a:focus, .tc-btn-download:active, .tc-btn-download:focus{ - outline: none; -} - -div.content { - padding: 1px 16px; - display: flex; - flex-wrap: wrap; + outline: none; } .tc-btn-download { diff --git a/editions/tw5.com/tiddlers/system/wikitext-macros.tid b/editions/tw5.com/tiddlers/system/wikitext-macros.tid index 70f62bfb7..a867def4f 100644 --- a/editions/tw5.com/tiddlers/system/wikitext-macros.tid +++ b/editions/tw5.com/tiddlers/system/wikitext-macros.tid @@ -94,3 +94,38 @@ That renders as: <<tw-code $tiddler$>> \end + +\define flex-card(class,bordercolor:"",imageField:"image",captionField:"caption",subtitle:"",descriptionField:"description",linkField:"link") +\whitespace trim +<$link class={{{ [<__class__>addprefix[tc-card ]] }}} to={{{ [<currentTiddler>get<__linkField__>else<currentTiddler>] }}}> + <div class="tc-card-accent" style.borderTop={{{ [<__bordercolor__>!is[blank]addprefix[5px solid ]] }}}> + <$list filter="[<currentTiddler>has[ribbon-text]]" variable="ignore"> + <div class="tc-card-ribbon-wrapper"> + <div class="tc-card-ribbon" style.backgroundColor={{{ [<currentTiddler>get[ribbon-color]else[red]] }}}> + <div class="tc-card-ribbon-inner"> + <$text text={{!!ribbon-text}}/> + </div> + </div> + </div> + </$list> + <$list filter="[<currentTiddler>has<__imageField__>]" variable="ignore"> + <div class="tc-card-image"> + <$image source={{{ [<currentTiddler>get<__imageField__>] }}}/> + </div> + </$list> + <div class="tc-card-title"><$transclude field=<<__captionField__>>><$view field="title"/></$transclude></div> + <$list filter="[<__subtitle__>!is[blank]]" variable="ignore"> + <div class="tc-card-subtitle"> + <$text text=<<__subtitle__>>/> + </div> + </$list> + <div class="tc-card-body-wrapper"> + <div class="tc-card-body"> + <$transclude field=<<__descriptionField__>> mode="block"/> + </div> + <div class="tc-card-body-clear"> + </div> + </div> + </div> +</$link> +\end diff --git a/editions/tw5.com/tiddlers/testimonials/Testimonials - Joe Armstrong.tid b/editions/tw5.com/tiddlers/testimonials/Testimonials - Joe Armstrong.tid new file mode 100644 index 000000000..2f110d20f --- /dev/null +++ b/editions/tw5.com/tiddlers/testimonials/Testimonials - Joe Armstrong.tid @@ -0,0 +1,8 @@ +title: Testimonials - Joe Armstrong +tags: Testimonial +caption: Joe Armstrong, Co-inventor of Erlang +extlink: https://joearms.github.io/ + +The ~TiddlyWiki is the best software I've ever found for organising my ideas. + +It's well worth spending an hour or so playing with it to see how it can help you. This will be time well-spent and will change how you think and how you organise your ideas. diff --git a/editions/tw5.com/tiddlers/testimonials/Testimonials - Network World.tid b/editions/tw5.com/tiddlers/testimonials/Testimonials - Network World.tid new file mode 100644 index 000000000..9c78f84cc --- /dev/null +++ b/editions/tw5.com/tiddlers/testimonials/Testimonials - Network World.tid @@ -0,0 +1,8 @@ +title: Testimonials - Network World +tags: Testimonial +caption: Mark Gibbs, Network World +extlink: http://www.networkworld.com/article/3028098/open-source-tools/tiddlywiki-a-free-open-source-wiki-revisited.html + +~TiddlyWiki gets a Gearhead rating of 6 out of 5 (it's that good). + +Finding code that works flawlessly after just two or three years is magical enough but after seven years?! diff --git a/editions/tw5.com/tiddlers/testimonials/Testimonials - Product Hunt.tid b/editions/tw5.com/tiddlers/testimonials/Testimonials - Product Hunt.tid new file mode 100644 index 000000000..388b1daa6 --- /dev/null +++ b/editions/tw5.com/tiddlers/testimonials/Testimonials - Product Hunt.tid @@ -0,0 +1,6 @@ +title: Testimonials - Product Hunt +tags: Testimonial +caption: Product Hunt +extlink: https://www.producthunt.com/posts/tiddlywiki-2?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-tiddlywiki-2 + +<div style="text-align:center;">{{Product Hunt Link}}</div> From 595da5f9f666740148970e78c897f0efb967229a Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 20:01:17 +0000 Subject: [PATCH 131/937] Page control button for page layout should be hidden by default --- core/wiki/config/PageControlButtons.multids | 1 + 1 file changed, 1 insertion(+) diff --git a/core/wiki/config/PageControlButtons.multids b/core/wiki/config/PageControlButtons.multids index f880b3399..a437251f5 100644 --- a/core/wiki/config/PageControlButtons.multids +++ b/core/wiki/config/PageControlButtons.multids @@ -21,4 +21,5 @@ core/ui/Buttons/print: hide core/ui/Buttons/storyview: hide core/ui/Buttons/timestamp: hide core/ui/Buttons/theme: hide +core/ui/Buttons/layout: hide core/ui/Buttons/unfold-all: hide From 4be0c17dd0f27dafebf456121a8a4cc36911aabf Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 21:00:31 +0000 Subject: [PATCH 132/937] Fix HelloThere thumbnail for latest version to work in prerelease --- .../thumbnails/HelloThumbnail - Latest Version.tid | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Latest Version.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Latest Version.tid index 5ed5eb0cf..25b0bb36a 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Latest Version.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Latest Version.tid @@ -5,4 +5,10 @@ link: Releases image: New Release Banner color: #fff -The latest version v<<version>> of ~TiddlyWiki (released on <$view field="released" tiddler={{{ [<version>addprefix[Release ]] }}} format="date" template="DDth MMM YYYY"/>) \ No newline at end of file +\define prerelease-regexp() [0-9]+\.[0-9]+\.[0-9]+\-prerelease +<$list filter="[<version>!regexp<prerelease-regexp>]" variable="ignore"> +The latest version v<<version>> of ~TiddlyWiki (released on <$view field="released" tiddler={{{ [<version>addprefix[Release ]] }}} format="date" template="DDth MMM YYYY"/>) +</$list> +<$list filter="[<version>regexp<prerelease-regexp>]" variable="ignore"> +This is a prerelease build for testing and review +</$list> From 1bd58db944a8421c2a6581c4aa5cb8b536b98a46 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 21:14:30 +0000 Subject: [PATCH 133/937] Add missing docs for commands command --- editions/tw5.com/tiddlers/commands/CommandsCommand.tid | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 editions/tw5.com/tiddlers/commands/CommandsCommand.tid diff --git a/editions/tw5.com/tiddlers/commands/CommandsCommand.tid b/editions/tw5.com/tiddlers/commands/CommandsCommand.tid new file mode 100644 index 000000000..84d819a84 --- /dev/null +++ b/editions/tw5.com/tiddlers/commands/CommandsCommand.tid @@ -0,0 +1,8 @@ +created: 20221204202531478 +modified: 20221204202531478 +tags: Commands +title: CommandsCommand +type: text/vnd.tiddlywiki +caption: commands + +{{$:/language/Help/commands}} From 77053cfe13c8d9e22034c459c00c159206b7c81f Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 4 Dec 2022 21:20:14 +0000 Subject: [PATCH 134/937] Update release note --- .../prerelease/tiddlers/Release 5.2.4.tid | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index aa6d9baec..e21fe7d98 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -13,9 +13,13 @@ type: text/vnd.tiddlywiki url:"https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/0dc30086e933cf2272cddb076a9fcbedad252735/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png" >> -! Plugin Improvements +! Major Improvements -* New [[Twitter Archivist|./editions/twitter-archivist]] plugin to imports the tweets and associated media from a Twitter Archive as individual tiddlers +New [ext[Twitter Archivist|./editions/twitter-archivist]] plugin to import the tweets and associated media from a Twitter Archive as individual tiddlers. + +<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6961">> new GenesisWidget that allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance + +<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]] and [[format Operator]] ! Translation improvement @@ -32,10 +36,6 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6882">> the [[Translators Edition|Translate TiddlyWiki into your language]] to add an option to display the original English text underneath the text area * <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6933">> "delete" button text in $:/AdvancedSearch so that it is translatable -! Accessibility Improvements - -* - ! Usability Improvements * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d62a16ee464fb9984b766b48504829a1a3eb143b">> problem with long presses on tiddler links triggering a preview on iOS/iPadOS @@ -46,11 +46,15 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6877">> default styles for [[styled runs|Styles and Classes in WikiText]] * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6881">> upgrade wizard to make the version number more prominent * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7042">> parsing of tiddlers containing CSV data for greater compatibility +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7076">> new page control button to summon the layout switcher +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7084">> folded tiddlers to ensure that the unfold button is always visible +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7072">> handling of [[Modals]] to optionally allow them to be dismissed by clicking on the background ! Widget Improvements -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6961">> new GenesisWidget that allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/127f660c91020dcbb43897d954066b31af729e74">> EditTextWidget to remove the default text "Type the text for the tiddler 'foo'" +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7081">> ''focus'' attribute to SelectWidget +* <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/commit/1df4c29d73073788ba3859668112e8bb46171a6c">> restriction of the LetWidget being unable to create variables whose names begin with a dollar sign ! Filter improvements @@ -61,10 +65,8 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7004">> support for nested [[macro definitions|Macro Definitions in WikiText]] * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6976">> support for [[SystemTag: $:/tags/ClassFilters/TiddlerTemplate]] and [[SystemTag: $:/tags/ClassFilters/PageTemplate]] to assign dynamic CSS classes to both tiddler frames and the page template -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]] and [[format Operator]] * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/c5d3d4c26e8fe27f272dda004aec27d6b66c4f60">> safe mode to disable wiki store indexers * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/166a1565843878083fb1eba47c73b8e67b78400d">> safe mode to prevent globally disabling parser rules -* <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/commit/1df4c29d73073788ba3859668112e8bb46171a6c">> restriction of the LetWidget being unable to create variables whose names begin with a dollar sign * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6735">> keyboard shortcut handling to allow to global shortcuts to override all other shortcuts * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/965bd090a905f5756e79124b698c894f7f72ad5b">> [[list-links Macro]] to allow the rendered field to be overriden * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6913">> [[Table-of-Contents Macros]] to allow the default icons to be overridden @@ -72,6 +74,8 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/5947">> [[timeline Macro]] to override the link template * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7043">> support for Unix epoch timestamps in [[date format strings|DateFormat]] * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7064">> the "big green download button" to use the defined palette colour +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7063">> new hidden setting [[to use horizontal tabs for the "more" sidebar tab|Hidden Setting: More Tabs Horizontal]] + ! Bug Fixes @@ -80,13 +84,11 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7017">> issue with wikification within the advanced search filter dropdown * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7057">> the table in $:/Import to avoid creating hidden empty rows * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7008">> advanced search keyboard shortcut not navigating correctly - -! Developer Improvements - -* +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7083">> erroneous display of drafts within the advanced search filter dropdown ! Node.js Improvements +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7073">> new CommandsCommand to enable command tokens to be dynamically generated from a filter * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6947">> console logging to avoid spaces and `<empty string>` message * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7014">> problem with lazy loading deleting tiddler bodies under certian circumstances * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/344110e2890caf711ab8f3c4f4deaa7d86771231">> handling of ".mp4" file extension so that it defaults to video not audio @@ -98,7 +100,7 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/53d229592df76c6dd607e40be5bea4d5e063c48e">> performance of `wiki.getTiddler()` * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/81ac9874846b3ead275f67010fcfdb49f3d2f43c">> performance of variable prototype chain handling - +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6056">> performance of list handling during filter processing ! Acknowledgements @@ -109,12 +111,15 @@ AnthonyMuscio bestony btheado BramChen +carlo-columbo EvidentlyCube FlashSystems flibbles fu-sen joebordes hoelzro +kookma +linonetwo Marxsal oflg pmario From a311e5ebacb1e3929992741e6ee66a9f7ad60e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A9lumire?= <31185220+Telumire@users.noreply.github.com> Date: Sun, 4 Dec 2022 23:09:06 +0100 Subject: [PATCH 135/937] correction of the z-index for the card ribbon wrapper (#7087) --- editions/tw5.com/tiddlers/system/tw5.com-styles.tid | 1 - 1 file changed, 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid index 8f94ca620..16b2f46ff 100644 --- a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid +++ b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid @@ -192,7 +192,6 @@ type: text/vnd.tiddlywiki right: 0; overflow: hidden; top: 0; - z-index: 999; pointer-events: none; } From 229159fea7e25ffae5037c1fdda1dcc8d934aec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A9lumire?= <31185220+Telumire@users.noreply.github.com> Date: Mon, 5 Dec 2022 00:29:36 +0100 Subject: [PATCH 136/937] Correction of zindex for tc-card-ribbon-wrapper (new ribbon) (#7088) --- editions/tw5.com/tiddlers/system/tw5.com-styles.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid index d4ce76a8e..b446b363b 100644 --- a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid +++ b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid @@ -192,7 +192,7 @@ type: text/vnd.tiddlywiki right: 0; overflow: hidden; top: 0; - z-index: 999; + z-index: 849; pointer-events: none; } From ee7bde58a2dde5c628c5cb856c17b0d8db0aee9f Mon Sep 17 00:00:00 2001 From: Bram Chen <bram.chen@gmail.com> Date: Mon, 5 Dec 2022 15:38:59 +0800 Subject: [PATCH 137/937] Add chinese translations for the new layout switcher page control button (#7089) --- languages/zh-Hans/Buttons.multids | 2 ++ languages/zh-Hant/Buttons.multids | 2 ++ 2 files changed, 4 insertions(+) diff --git a/languages/zh-Hans/Buttons.multids b/languages/zh-Hans/Buttons.multids index 97f403745..a94a31940 100644 --- a/languages/zh-Hans/Buttons.multids +++ b/languages/zh-Hans/Buttons.multids @@ -59,6 +59,8 @@ Info/Caption: 信息 Info/Hint: 显示此条目的信息 Language/Caption: 语言 Language/Hint: 选择用户界面语言 +LayoutSwitcher/Hint: 开启布局切换器 +LayoutSwitcher/Caption: 布局 Manager/Caption: 条目管理器 Manager/Hint: 开启条目管理器 More/Caption: 更多 diff --git a/languages/zh-Hant/Buttons.multids b/languages/zh-Hant/Buttons.multids index 2a170ed8e..7ffc15f50 100644 --- a/languages/zh-Hant/Buttons.multids +++ b/languages/zh-Hant/Buttons.multids @@ -59,6 +59,8 @@ Info/Caption: 資訊 Info/Hint: 顯示此條目的資訊 Language/Caption: 語言 Language/Hint: 選擇使用者介面語言 +LayoutSwitcher/Hint: 開啟版面切換器 +LayoutSwitcher/Caption: 版面 Manager/Caption: 條目管理器 Manager/Hint: 開啟條目管理器 More/Caption: 更多 From 58013ba43504f55eea371078a90fcbc48f5b3ffa Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Mon, 5 Dec 2022 17:30:40 +0100 Subject: [PATCH 138/937] Another bundle of Polish translations (#7090) * add Polish transaltions introduced in 272ba6a4b7157b0e7f48ad76d1acb4497c0f0b95 * Polish translations to changes introduced in a93a4996848578ec5625c2ce079804a7e15ff37b and 0db987da600f261bb5f887698bf1dac6552084ab --- languages/pl-PL/Buttons.multids | 2 ++ languages/pl-PL/Help/commands.tid | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 languages/pl-PL/Help/commands.tid diff --git a/languages/pl-PL/Buttons.multids b/languages/pl-PL/Buttons.multids index 54691581d..8d5fa3465 100644 --- a/languages/pl-PL/Buttons.multids +++ b/languages/pl-PL/Buttons.multids @@ -59,6 +59,8 @@ Home/Caption: strona główna Home/Hint: Otwórz domyślne tiddlery Language/Caption: języki Language/Hint: Zmień jezyk interfejsu +LayoutSwitcher/Hint: Otwórz przełacznik układu +LayoutSwitcher/Caption: układ Manager/Caption: menedżer tiddlerów Manager/Hint: Otwórz menedżer tiddlerów More/Caption: więcej diff --git a/languages/pl-PL/Help/commands.tid b/languages/pl-PL/Help/commands.tid new file mode 100644 index 000000000..a0bc5932d --- /dev/null +++ b/languages/pl-PL/Help/commands.tid @@ -0,0 +1,18 @@ +title: $:/language/Help/commands +description: Uruchom komendy zwrócone przez filtr + +Uruchamia komendy zwrócone przez filtr. + +``` +--commands <filter> +``` + +Dla przykładu: + +``` +--commands "[enlist{$:/build-commands-as-text}]" +``` + +``` +--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]" +``` From 10bb3ba09d258b22d7d854dda9637436261741fa Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Mon, 5 Dec 2022 23:04:52 +0100 Subject: [PATCH 139/937] German Translation Update (#7093) --- languages/de-DE/Buttons.multids | 6 +++++- languages/de-DE/Help/commands.tid | 14 ++++++++++++++ languages/de-DE/Misc.multids | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 languages/de-DE/Help/commands.tid diff --git a/languages/de-DE/Buttons.multids b/languages/de-DE/Buttons.multids index 15094f23a..4615d41c0 100644 --- a/languages/de-DE/Buttons.multids +++ b/languages/de-DE/Buttons.multids @@ -17,7 +17,9 @@ ControlPanel/Hint: Öffne das Control-Panel CopyToClipboard/Caption: Kopiere in die Zwischenablage CopyToClipboard/Hint: Kopiere diesen Text in die Zwischenablage Delete/Caption: Löschen -Delete/Hint: Lösche diesen Tiddler +Delete/Hint: Lösche den Tiddler +DeleteTiddlers/Caption: Lösche Tiddler +DeleteTiddlers/Hint: Lösche diese Tiddler Edit/Caption: Bearbeiten Edit/Hint: Bearbeite diesen Tiddler Encryption/Caption: Verschlüsselung @@ -57,6 +59,8 @@ Home/Caption: Home Home/Hint: Öffnen der Standard-Tiddler Language/Caption: Sprache Language/Hint: Auswahldialog für die Systemsprache +LayoutSwitcher/Hint: Öffne den Layout Selektor +LayoutSwitcher/Caption: Layout Manager/Caption: Tiddler Manager Manager/Hint: Öffne den Tiddler Manager More/Caption: mehr diff --git a/languages/de-DE/Help/commands.tid b/languages/de-DE/Help/commands.tid new file mode 100644 index 000000000..b7de1b86f --- /dev/null +++ b/languages/de-DE/Help/commands.tid @@ -0,0 +1,14 @@ +title: $:/language/Help/commands +description: Ausführen von Befehlen aus einem Tiddler + +Sequentielle Abarbeitung von Befehlen aus einem Tiddler. + +``` +--commands <filter> +``` + +Beispiele + +`--commands "[enlist{$:/build-commands-as-text}]"` + +`--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]"` \ No newline at end of file diff --git a/languages/de-DE/Misc.multids b/languages/de-DE/Misc.multids index 32c8b9d13..da5b15411 100644 --- a/languages/de-DE/Misc.multids +++ b/languages/de-DE/Misc.multids @@ -8,6 +8,7 @@ CloseAll/Button: alle schließen ColourPicker/Recent: Kürzlich: ConfirmCancelTiddler: Wollen Sie die Änderungen im Tiddler: "<$text text=<<title>>/>" verwerfen? ConfirmDeleteTiddler: Wollen Sie den Tiddler: "<$text text=<<title>>/>" löschen? +ConfirmDeleteTiddlers: Wollen Sie <<resultCount>> Tiddler löschen? ConfirmOverwriteTiddler: Tiddler: "<$text text=<<title>>/>" existiert! OK überschreibt den tiddler! ConfirmEditShadowTiddler: Sie sind dabei, einen Schatten-Tiddler zu verändern. Zukünftige, automatische Anpassungen werden dadurch unterdrückt. Sie können Ihre Änderungen rückgängig machen, indem Sie diesen Tiddler wieder löschen. Wollen Sie den Tiddler: "<$text text=<<title>>/>" ändern? ConfirmAction: Möchten Sie weitermachen? From 80442b7f7f4a7779570cfc707419ab62273ed65d Mon Sep 17 00:00:00 2001 From: FlashSystems <developer@flashsystems.de> Date: Mon, 5 Dec 2022 23:05:20 +0100 Subject: [PATCH 140/937] Fix for bug #7054 (#7092) * Fix Bug #7054: Reuse of $:/core/ui/EditTemplate/fields broken This fixes Bug #7054 by creating a new variable `safeNewFieldValueTiddlerPrefix` that is always set to a valid, temporary prefix. This variable is used within `$action-deletetiddler`. If the passed `newFieldValueTiddlerPrefix` variable is empty a new prefix will be generated by the same logic that creates the original `newFieldValueTiddlerPrefix` variable. To be even more defensive, the prefix-filter was prepended with another prefix filter that limits matches to `$:/temp/NewFieldValue`. This prevents a bogus but non empty value in `newFieldValueTiddlerPrefix` to delete arbitrary tiddlers. * Add a default for `newFieldValueTiddlerPrefix` This fixes a problem that was identified while fixing bug #7054. If the tiddler `$:/core/ui/EditTemplate/fields` is transcluded directly and `newFieldValueTiddlerPrefix` is not set, it will be generated. This makes sure that this value is defined. It can not be redefined unconditionally because if this tiddler is transcluded from `EditTemplate.tid` these two tiddlers must agree on the same prefix because the clean-up is duplicated between `EditTemplate.tid` and `fields.tid`. This would make `safeNewFieldValueTiddlerPrefix` obsolete, but I leave it in there to make the macros safe and prevent any problems if the `newFieldValueTiddlerPrefix` is unset by a later change. --- core/ui/EditTemplate.tid | 7 ++++++- core/ui/EditTemplate/fields.tid | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/core/ui/EditTemplate.tid b/core/ui/EditTemplate.tid index b63a02ee2..4d6dec5d6 100644 --- a/core/ui/EditTemplate.tid +++ b/core/ui/EditTemplate.tid @@ -1,7 +1,12 @@ title: $:/core/ui/EditTemplate -\define delete-edittemplate-state-tiddlers() <$action-deletetiddler $filter="[<newFieldNameTiddler>] [prefix<newFieldValueTiddlerPrefix>] [<newFieldNameInputTiddler>] [<newFieldNameSelectionTiddler>] [<newTagNameTiddler>] [<newTagNameInputTiddler>] [<newTagNameSelectionTiddler>] [<typeInputTiddler>] [<typeSelectionTiddler>]"/> +\define delete-edittemplate-state-tiddlers() +<$set name="safeNewFieldValueTiddlerPrefix" value=<<newFieldValueTiddlerPrefix>> emptyValue=<<qualify "$:/temp/NewFieldValue">> > + <$action-deletetiddler $filter="[<newFieldNameTiddler>] [prefix[$:/temp/NewFieldValue]prefix<safeNewFieldValueTiddlerPrefix>] [<newFieldNameInputTiddler>] [<newFieldNameSelectionTiddler>] [<newTagNameTiddler>] [<newTagNameInputTiddler>] [<newTagNameSelectionTiddler>] [<typeInputTiddler>] [<typeSelectionTiddler>]"/> +</$set> +\end +<!-- Beware this is duplicated from fields.tid. For details see bug #7054 --> \define get-field-value-tiddler-filter() [subfilter<get-field-editor-filter>sha256[16]addprefix[/]addprefix<newFieldValueTiddlerPrefix>] \define get-field-editor-filter() [<newFieldNameTiddler>get[text]else[]] :cascade[all[shadows+tiddlers]tag[$:/tags/FieldEditorFilter]!is[draft]get[text]] :and[!is[blank]else{$:/core/ui/EditTemplate/fieldEditor/default}] diff --git a/core/ui/EditTemplate/fields.tid b/core/ui/EditTemplate/fields.tid index 6173d9b76..6a767517b 100644 --- a/core/ui/EditTemplate/fields.tid +++ b/core/ui/EditTemplate/fields.tid @@ -10,6 +10,10 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$ [[hide]] -[title{$(config-title)$}] \end +<!-- Beware this is duplicated from EditTemplate.tid. For details see bug #7054 --> +\define get-field-value-tiddler-filter() [subfilter<get-field-editor-filter>sha256[16]addprefix[/]addprefix<newFieldValueTiddlerPrefix>] +\define get-field-editor-filter() [<newFieldNameTiddler>get[text]else[]] :cascade[all[shadows+tiddlers]tag[$:/tags/FieldEditorFilter]!is[draft]get[text]] :and[!is[blank]else{$:/core/ui/EditTemplate/fieldEditor/default}] + \define current-tiddler-new-field-selector() [data-tiddler-title="$(currentTiddlerCSSescaped)$"] .tc-edit-field-add-name-wrapper input \end @@ -17,7 +21,9 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$ \define new-field-actions() \whitespace trim <$action-sendmessage $message="tm-add-field" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldNameTiddler>get[text]] :map[subfilter<get-field-value-tiddler-filter>get[text]] }}}/> -<$action-deletetiddler $filter="[<newFieldNameTiddler>] [prefix<newFieldValueTiddlerPrefix>] [<storeTitle>] [<searchListState>]"/> +<$set name="safeNewFieldValueTiddlerPrefix" value=<<newFieldValueTiddlerPrefix>> emptyValue=<<qualify "$:/temp/NewFieldValue">> > + <$action-deletetiddler $filter="[<newFieldNameTiddler>] [prefix[$:/temp/NewFieldValue]prefix<safeNewFieldValueTiddlerPrefix>] [<storeTitle>] [<searchListState>]"/> +</$set> <$action-sendmessage $message="tm-focus-selector" $param=<<current-tiddler-new-field-selector>>/> \end @@ -52,7 +58,9 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$ <$action-sendmessage $message="tm-add-field" $name=<<name>> $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/> -<$action-deletetiddler $filter="[<newFieldNameTiddler>] [prefix<newFieldValueTiddlerPrefix>] [<storeTitle>] [<searchListState>]"/> +<$set name="safeNewFieldValueTiddlerPrefix" value=<<newFieldValueTiddlerPrefix>> emptyValue=<<qualify "$:/temp/NewFieldValue">> > + <$action-deletetiddler $filter="[<newFieldNameTiddler>] [prefix[$:/temp/NewFieldValue]prefix<safeNewFieldValueTiddlerPrefix>] [<storeTitle>] [<searchListState>]"/> +</$set> <<lingo Fields/Add/Button>> </$button> </$reveal> @@ -65,6 +73,7 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/> \end \whitespace trim +<$set name="newFieldValueTiddlerPrefix" value=<<newFieldValueTiddlerPrefix>> emptyValue=<<qualify "$:/temp/NewFieldValue">> > <div class="tc-edit-fields"> <table class={{{ [all[current]fields[]] :filter[lookup[$:/config/EditTemplateFields/Visibility/]!match[hide]] +[count[]!match[0]] +[then[tc-edit-fields]] ~[[tc-edit-fields tc-edit-fields-small]] }}}> <tbody> @@ -148,3 +157,4 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/> </$vars> </div> </$fieldmangler> +</$set> \ No newline at end of file From e77006de63e423c91cd98689530bc99c84a2f98b Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 5 Dec 2022 22:44:35 +0000 Subject: [PATCH 141/937] Update links to Open Collective --- editions/tw.org/tiddlers/Fundraising.tid | 4 ++-- editions/tw5.com/tiddlers/about/Open Collective.tid | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/editions/tw.org/tiddlers/Fundraising.tid b/editions/tw.org/tiddlers/Fundraising.tid index 0ccc5736b..0c521caea 100644 --- a/editions/tw.org/tiddlers/Fundraising.tid +++ b/editions/tw.org/tiddlers/Fundraising.tid @@ -14,10 +14,10 @@ We do need a small amount of money on an ongoing basis to pay the costs of runni We use Open Collective to allow you to contribute towards these costs. You can contribute a one-off donation, or make an ongoing monthly commitment. Find out more: -https://opencollective.com/tiddlywikidotorg +https://opencollective.com/tiddlywiki !! Community Projects We also use Open Collective to raise funds to support the development of major new features, plugins or community infrastructure. These projects generally involve a small team of individuals getting together and making a proposal to the rest of the community. -For example, the [[File Upload Plugin Project|https://opencollective.com/tiddlywikidotorg/projects/tiddlywiki-file-upload]] aims to radically simplify working with attached images. +For example, the [[File Upload Plugin Project|https://opencollective.com/tiddlywiki/projects/tiddlywiki-file-upload]] aims to radically simplify working with attached images. diff --git a/editions/tw5.com/tiddlers/about/Open Collective.tid b/editions/tw5.com/tiddlers/about/Open Collective.tid index 8d096cdc8..1113535c3 100644 --- a/editions/tw5.com/tiddlers/about/Open Collective.tid +++ b/editions/tw5.com/tiddlers/about/Open Collective.tid @@ -5,10 +5,10 @@ tags: About HelloThere [[Open Collective]] Open Collective is a platform for transparent fundraising and expenses for projects like TiddlyWiki. It is the official TiddlyWiki community fundraising space. -https://opencollective.com/tiddlywikidotorg +https://opencollective.com/tiddlywiki You can make a fixed one-time donation, or setup a recurring contribution. The main goals listed for donations are to cover basic costs for community infrastructure like the Discourse forum, and a new goal for supporting the TiddlyWiki Core. -Additionally, the community can make use of the platform for special projects - to pool funds to pay for development, design, or anything else. The [[File Upload Plugin|https://opencollective.com/tiddlywikidotorg/projects/tiddlywiki-file-upload]] is the first of these, and we want to welcome others to launch projects here. +Additionally, the community can make use of the platform for special projects - to pool funds to pay for development, design, or anything else. The [[File Upload Plugin|https://opencollective.com/tiddlywiki/projects/tiddlywiki-file-upload]] is the first of these, and we want to welcome others to launch projects here. From 2db886793e095ef3040cae197936356b0f474ccd Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Tue, 6 Dec 2022 17:36:26 +0100 Subject: [PATCH 142/937] Fix table overflow for small screens (#7010) * fix table overflow for small screens * add PRE word-break for Chrome and Safari on mobile * remove comment, since it looks better for all browsers now * add 1 space to trigger the new automatic build * change small screen settings only for tiddler frame --- themes/tiddlywiki/vanilla/base.tid | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index c323a6f19..d2fe757f6 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -30,6 +30,10 @@ background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}` <$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/> \end +\define tiddler-width() + <$text text={{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}}/> +\end + \define if-fluid-fixed(text,hiddenSidebarText) <$reveal state="$:/themes/tiddlywiki/vanilla/options/sidebarlayout" type="match" text="fluid-fixed"> $text$ @@ -144,7 +148,7 @@ pre { display: block; margin-top: 1em; margin-bottom: 1em; - word-break: normal; + word-break: break-word; word-wrap: break-word; white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}}; background-color: <<colour pre-background>>; @@ -1173,6 +1177,28 @@ button.tc-btn-invisible.tc-remove-tag-button { } } + +/* prevent overflow for table content for small screens*/ +@media (max-width: <<sidebarbreakpoint>>) { + .tc-tiddler-frame tr { + word-wrap: anywhere; + } + + .tc-tiddler-frame table blockquote { + margin-left: 12.5px; + margin-right: 12.5px; + } + + .tc-tiddler-frame table dd { + margin-left: 12.5px; + } + + .tc-tiddler-frame table ol, + .tc-tiddler-frame table ul { + padding-left: 20px; + } +} + .tc-site-title, .tc-titlebar { font-weight: normal; From 28c1e6bfc3b4a842323ab6cc03c34c17a93e45e9 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 7 Dec 2022 09:43:39 +0000 Subject: [PATCH 143/937] Docs update for nested macro definitions Suggested by @kookma in https://github.com/FlashSystems/TiddlyWiki5/commit/bcb3b06d60a3b616083e9df36fc487cbbbf8abb7#commitcomment-91922651 and https://github.com/FlashSystems/TiddlyWiki5/commit/bcb3b06d60a3b616083e9df36fc487cbbbf8abb7#commitcomment-91922974 --- .../Macro Definitions in WikiText.tid | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid index d5c7ce509..cae2b2009 100644 --- a/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid @@ -1,6 +1,6 @@ caption: Macro Definitions created: 20150220181617000 -modified: 20221022135909352 +modified: 20221207094236472 tags: WikiText title: Macro Definitions in WikiText type: text/vnd.tiddlywiki @@ -19,22 +19,6 @@ Alternatively, the entire definition can be presented on a single line without a \define sayhi(name:"Bugs Bunny") Hi, I'm $name$. ``` -Macro definitions can be nested by specifying the name of the macro in the `\end` marker. For example: - -<<wikitext-example-without-html src:"""\define special-button(caption:"Click me") -\define actions() -<$action-sendmessage $message="tm-notify" $param="HelloThere"/> -\end actions -<$button actions=<<actions>>> -$caption$ -</$button> -\end special-button - -<<special-button>> -""">> - -A more formal [[presentation|Macro Definition Syntax]] of this syntax is also available. - !! Accessing variables and parameters Inside the macro there are several methods for accessing variables defined outside of the macro or parameters from the macro parameter list. @@ -93,3 +77,26 @@ To make a macro available to all tiddlers, define it in a tiddler that has the t It is also possible to write a macro as a [[JavaScript module|https://tiddlywiki.com/dev/index.html#JavaScript%20Macros]]. ~JavaScript macros are available to all tiddlers, and offer the maximum flexibility. A tiddler can manually import macro definitions from a [[selection|Title Selection]] of other tiddlers by using the <<.wlink ImportVariablesWidget>> widget. + +!! Nested Macro Definitions + +Macro definitions can be nested to any number of required levels by specifying the name of the macro in the `\end` marker. Nested macro definitions must appear at the start of the definition that contains them. For example: + +<<wikitext-example-without-html src:"""\define special-button(caption:"Click me") +\define actions() +<$action-sendmessage $message="tm-notify" $param="HelloThere"/> +\end actions +<$button actions=<<actions>>> +$caption$ +</$button> +\end special-button + +<<special-button>> +""">> + +Note that the textual substitution of macro parameters that occurs when the outer macro is rendered will apply to the nested definitions as well. That generally means that textual substitution of macro parameters should not be used within nested macros. + +Parameters of nested macros can also be accessed via the `<<__variablename__>>` syntax. As ordinary variables, these parameters are available within nested child macros (and grandchildren etc). + +A more formal [[presentation|Macro Definition Syntax]] of this syntax is also available. + From 9f867ad51ee020398f6dd59a20e345156354b89f Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 7 Dec 2022 17:10:45 +0000 Subject: [PATCH 144/937] Dynannotate: Fix undefined class --- plugins/tiddlywiki/dynannotate/modules/dynannotate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tiddlywiki/dynannotate/modules/dynannotate.js b/plugins/tiddlywiki/dynannotate/modules/dynannotate.js index 00314dab2..cd47c07c7 100644 --- a/plugins/tiddlywiki/dynannotate/modules/dynannotate.js +++ b/plugins/tiddlywiki/dynannotate/modules/dynannotate.js @@ -332,7 +332,7 @@ DynannotateWidget.prototype.applySnippets = function() { // Output the match container.appendChild($tw.utils.domMaker("span",{ text: textMap.string.slice(match.startPos,match.endPos), - "class": "tc-dynannotate-snippet-highlight " + self.getAttribute("searchClass") + "class": "tc-dynannotate-snippet-highlight " + self.getAttribute("searchClass","") })); // Does the context of this match merge into the next? merged = index < matches.length - 1 && matches[index + 1].startPos - match.endPos <= 2 * contextLength; From 17a1ae23eb59cfa1feefa106ccd810988a7735a5 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Wed, 7 Dec 2022 18:14:12 +0100 Subject: [PATCH 145/937] Fix truncated search results on small screens (#7099) --- themes/tiddlywiki/vanilla/base.tid | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index d2fe757f6..7dccf1894 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -1999,6 +1999,15 @@ html body.tc-body.tc-single-tiddler-window { margin: auto; } +/* Make search dropdown visible on small screens. issue #7003 */ +@media (max-width: <<sidebarbreakpoint>>) { + + .tc-sidebar-search .tc-block-dropdown-wrapper { + position: initial; + } + +} + /* ** Modals */ From bef11fe6a25fb849dee40c4aa4337d6a30daf0b4 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 7 Dec 2022 22:02:58 +0000 Subject: [PATCH 146/937] Allow overriding the coreURL for the external JS builds Fixes #7096 --- core/templates/external-js/save-all-external-js.tid | 6 ++++-- core/templates/external-js/save-offline-external-js.tid | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/templates/external-js/save-all-external-js.tid b/core/templates/external-js/save-all-external-js.tid index a41cc0682..cd15cedc3 100644 --- a/core/templates/external-js/save-all-external-js.tid +++ b/core/templates/external-js/save-all-external-js.tid @@ -4,5 +4,7 @@ title: $:/core/save/all-external-js \define saveTiddlerFilter() [is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$ \end -\define coreURL() %24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js -{{$:/core/templates/tiddlywiki5-external-js.html}} +\define defaultCoreURL() %24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js +<$let coreURL={{{ [[coreURL]is[variable]then<coreURL>else<defaultCoreURL>] }}}> + {{$:/core/templates/tiddlywiki5-external-js.html}} +</$let> diff --git a/core/templates/external-js/save-offline-external-js.tid b/core/templates/external-js/save-offline-external-js.tid index 7175f7eea..2dfca5d52 100644 --- a/core/templates/external-js/save-offline-external-js.tid +++ b/core/templates/external-js/save-offline-external-js.tid @@ -4,5 +4,7 @@ title: $:/core/save/offline-external-js \define saveTiddlerFilter() [is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/core]] -[[$:/plugins/tiddlywiki/filesystem]] -[[$:/plugins/tiddlywiki/tiddlyweb]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$ \end -\define coreURL() tiddlywikicore-$(version)$.js -{{$:/core/templates/tiddlywiki5-external-js.html}} +\define defaultCoreURL() tiddlywikicore-$(version)$.js +<$let coreURL={{{ [[coreURL]is[variable]then<coreURL>else<defaultCoreURL>] }}}> + {{$:/core/templates/tiddlywiki5-external-js.html}} +</$let> From a899aac92cb5ae4ebf9a623e0f39cae6cd682a3f Mon Sep 17 00:00:00 2001 From: Maurycy Zarzycki <maurycy@evidentlycube.com> Date: Thu, 8 Dec 2022 14:48:45 +0100 Subject: [PATCH 147/937] Change first letter in two plugin-related buttons to be uppercase to be consistent with the button that appears earlier (#7103) --- core/language/en-GB/ControlPanel.multids | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids index ca1739b76..d8321edbf 100644 --- a/core/language/en-GB/ControlPanel.multids +++ b/core/language/en-GB/ControlPanel.multids @@ -90,8 +90,8 @@ Plugins/Languages/Caption: Languages Plugins/Languages/Hint: Language pack plugins Plugins/NoInfoFound/Hint: No ''"<$text text=<<currentTab>>/>"'' found Plugins/NotInstalled/Hint: This plugin is not currently installed -Plugins/OpenPluginLibrary: open plugin library -Plugins/ClosePluginLibrary: close plugin library +Plugins/OpenPluginLibrary: Open plugin library +Plugins/ClosePluginLibrary: Close plugin library Plugins/PluginWillRequireReload: (requires reload) Plugins/Plugins/Caption: Plugins Plugins/Plugins/Hint: Plugins From c2d82ccb32a5638a98c5e8702a8c5e3041c551fe Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 9 Dec 2022 10:17:31 +0000 Subject: [PATCH 148/937] Update release note --- editions/prerelease/tiddlers/Release 5.2.4.tid | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index e21fe7d98..9f941cdcd 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -27,6 +27,7 @@ Improvements to the following translations: * Chinese * French +* German * Polish * Spanish * Japanese @@ -75,16 +76,19 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7043">> support for Unix epoch timestamps in [[date format strings|DateFormat]] * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7064">> the "big green download button" to use the defined palette colour * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7063">> new hidden setting [[to use horizontal tabs for the "more" sidebar tab|Hidden Setting: More Tabs Horizontal]] - +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/bef11fe6a25fb849dee40c4aa4337d6a30daf0b4">> the [[external JavaScript templates|]] to allow the URL of the external script file to be configured ! Bug Fixes +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7099">> truncated search results on small screens +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7010">> table contents overflow on small screens * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/fb34df84ed41882c1c2a6ff54f0e908b43ef95a3">> "new image" keyboard shortcut not to assign journal tags * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6987">> SelectWidget class to update if it uses a filter * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7017">> issue with wikification within the advanced search filter dropdown * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7057">> the table in $:/Import to avoid creating hidden empty rows * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7008">> advanced search keyboard shortcut not navigating correctly * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7083">> erroneous display of drafts within the advanced search filter dropdown +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7092">> backwards compatibility of new field editor cascade introduced in v5.2.3 ! Node.js Improvements @@ -111,7 +115,7 @@ AnthonyMuscio bestony btheado BramChen -carlo-columbo +carlo-colombo EvidentlyCube FlashSystems flibbles @@ -127,6 +131,7 @@ rmunn roma0104 saqimtiaz talha131 +Telumire tw-FRed twMat xcazin From 1118de319e4753eefe453025aebecb1ba3a910f2 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 9 Dec 2022 10:43:13 +0000 Subject: [PATCH 149/937] Update prerelease warning --- .../prerelease/tiddlers/system/TiddlyWiki Pre-release.tid | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid b/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid index 7dd4e1f01..96aee607c 100644 --- a/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid +++ b/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid @@ -1,7 +1,11 @@ title: TiddlyWiki Pre-release modified: 20150428204930183 -This is a pre-release build of TiddlyWiki, [[also available in empty form|https://tiddlywiki.com/prerelease/empty.html]]. It is provided for testing purposes. ''Please don't try to use it for anything important'' -- you should use the latest official release from https://tiddlywiki.com. +This is a pre-release build of TiddlyWiki provided for testing and review purposes. ''Please don't try to depend on the pre-release for anything important'' -- you should use the latest official release from https://tiddlywiki.com. + +All of the changes in this pre-release are provisional until it is released and they become frozen by our backwards compatibility policies. This is the perfect time to raise questions or make suggestions. Please [[open a ticket at GitHub|https://github.com/Jermolene/TiddlyWiki5/issues/new/choose]] or make a post at https://talk.tiddlywiki.org/. + +The pre-release is also available as an [[empty wiki|https://tiddlywiki.com/prerelease/empty.html]] ready for reuse. <$list filter="[tag[ReleaseNotes]!has[released]!sort[created]]"> <div class="tc-titlebar"> From 0ce5788747571c29c659808f56508470e148450c Mon Sep 17 00:00:00 2001 From: Jeremy Ruston <jeremy@jermolene.com> Date: Fri, 9 Dec 2022 18:31:23 +0000 Subject: [PATCH 150/937] Fixes for JSON operators (#7105) --- core/modules/filters/json-ops.js | 61 +++++++++++++---- .../prerelease/tiddlers/Release 5.2.4.tid | 2 +- .../test/tiddlers/tests/test-json-filters.js | 29 ++++++-- .../tiddlers/features/JSON in TiddlyWiki.tid | 2 +- .../tw5.com/tiddlers/filters/jsonextract.tid | 66 +++++++++++++++++++ editions/tw5.com/tiddlers/filters/jsonget.tid | 15 +++-- .../tw5.com/tiddlers/filters/jsonindexes.tid | 1 + .../tw5.com/tiddlers/filters/jsontype.tid | 1 + .../Reading data from JSON tiddlers.tid | 11 +++- 9 files changed, 161 insertions(+), 27 deletions(-) create mode 100644 editions/tw5.com/tiddlers/filters/jsonextract.tid diff --git a/core/modules/filters/json-ops.js b/core/modules/filters/json-ops.js index d5e8c33af..eabf6433e 100644 --- a/core/modules/filters/json-ops.js +++ b/core/modules/filters/json-ops.js @@ -17,9 +17,23 @@ exports["jsonget"] = function(source,operator,options) { source(function(tiddler,title) { var data = $tw.utils.parseJSONSafe(title,title); if(data) { - var item = getDataItemValueAsString(data,operator.operands); + var items = getDataItemValueAsStrings(data,operator.operands); + if(items !== undefined) { + results.push.apply(results,items); + } + } + }); + return results; +}; + +exports["jsonextract"] = function(source,operator,options) { + var results = []; + source(function(tiddler,title) { + var data = $tw.utils.parseJSONSafe(title,title); + if(data) { + var item = getDataItem(data,operator.operands); if(item !== undefined) { - results.push(item); + results.push(JSON.stringify(item)); } } }); @@ -31,9 +45,9 @@ exports["jsonindexes"] = function(source,operator,options) { source(function(tiddler,title) { var data = $tw.utils.parseJSONSafe(title,title); if(data) { - var item = getDataItemKeysAsStrings(data,operator.operands); - if(item !== undefined) { - results.push.apply(results,item); + var items = getDataItemKeysAsStrings(data,operator.operands); + if(items !== undefined) { + results.push.apply(results,items); } } }); @@ -57,11 +71,11 @@ exports["jsontype"] = function(source,operator,options) { /* Given a JSON data structure and an array of index strings, return an array of the string representation of the values at the end of the index chain, or "undefined" if any of the index strings are invalid */ -function getDataItemValueAsString(data,indexes) { +function getDataItemValueAsStrings(data,indexes) { // Get the item var item = getDataItem(data,indexes); - // Return the item as a string - return convertDataItemValueToString(item); + // Return the item as a string list + return convertDataItemValueToStrings(item); } /* @@ -77,15 +91,34 @@ function getDataItemKeysAsStrings(data,indexes) { /* Return an array of the string representation of the values of a data item, or "undefined" if the item is undefined */ -function convertDataItemValueToString(item) { +function convertDataItemValueToStrings(item) { // Return the item as a string if(item === undefined) { - return item; + return undefined; + } else if(item === null) { + return ["null"] + } else if(typeof item === "object") { + var results = [],i,t; + if($tw.utils.isArray(item)) { + // Return all the items in arrays recursively + for(i=0; i<item.length; i++) { + t = convertDataItemValueToStrings(item[i]) + if(t !== undefined) { + results.push.apply(results,t); + } + } + } else { + // Return all the values in objects recursively + $tw.utils.each(Object.keys(item).sort(),function(key) { + t = convertDataItemValueToStrings(item[key]); + if(t !== undefined) { + results.push.apply(results,t); + } + }); + } + return results; } - if(typeof item === "object") { - return JSON.stringify(item); - } - return item.toString(); + return [item.toString()]; } /* diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index 9f941cdcd..f11531985 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -19,7 +19,7 @@ New [ext[Twitter Archivist|./editions/twitter-archivist]] plugin to import the t <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6961">> new GenesisWidget that allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance -<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]] and [[format Operator]] +<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]], [[jsonextract Operator]] and [[format Operator]] ! Translation improvement diff --git a/editions/test/tiddlers/tests/test-json-filters.js b/editions/test/tiddlers/tests/test-json-filters.js index c892c2419..b7f4836d9 100644 --- a/editions/test/tiddlers/tests/test-json-filters.js +++ b/editions/test/tiddlers/tests/test-json-filters.js @@ -23,7 +23,7 @@ describe("json filter tests", function() { type: "application/json" },{ title: "Second", - text: '["une","deux","trois"]', + text: '["une","deux","trois",["quatre","cinq"]]', type: "application/json" },{ title: "Third", @@ -38,14 +38,14 @@ describe("json filter tests", function() { it("should support the jsonget operator", function() { expect(wiki.filterTiddlers("[{Third}jsonget[]]")).toEqual(["This is not JSON"]); - expect(wiki.filterTiddlers("[{First}jsonget[]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]}}']); + expect(wiki.filterTiddlers("[{Second}jsonget[]]")).toEqual(["une","deux","trois","quatre","cinq"]); + expect(wiki.filterTiddlers("[{First}jsonget[]]")).toEqual(["one","","1.618","four","five","six","true","false","null"]); expect(wiki.filterTiddlers("[{First}jsonget[a]]")).toEqual(["one"]); expect(wiki.filterTiddlers("[{First}jsonget[b]]")).toEqual([""]); expect(wiki.filterTiddlers("[{First}jsonget[missing-property]]")).toEqual([]); - expect(wiki.filterTiddlers("[{First}jsonget[d]]")).toEqual(['{"e":"four","f":["five","six",true,false,null]}']); - expect(wiki.filterTiddlers("[{First}jsonget[d]jsonget[f]]")).toEqual(['["five","six",true,false,null]']); + expect(wiki.filterTiddlers("[{First}jsonget[d]]")).toEqual(["four","five","six","true","false","null"]); expect(wiki.filterTiddlers("[{First}jsonget[d],[e]]")).toEqual(["four"]); - expect(wiki.filterTiddlers("[{First}jsonget[d],[f]]")).toEqual(['["five","six",true,false,null]']); + expect(wiki.filterTiddlers("[{First}jsonget[d],[f]]")).toEqual(["five","six","true","false","null"]); expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[0]]")).toEqual(["five"]); expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[1]]")).toEqual(["six"]); expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[2]]")).toEqual(["true"]); @@ -53,8 +53,25 @@ describe("json filter tests", function() { expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[4]]")).toEqual(["null"]); }); + it("should support the jsonextract operator", function() { + expect(wiki.filterTiddlers("[{Third}jsonextract[]]")).toEqual(['"This is not JSON"']); + expect(wiki.filterTiddlers("[{First}jsonextract[]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]}}']); + expect(wiki.filterTiddlers("[{First}jsonextract[a]]")).toEqual(['"one"']); + expect(wiki.filterTiddlers("[{First}jsonextract[b]]")).toEqual(['""']); + expect(wiki.filterTiddlers("[{First}jsonextract[missing-property]]")).toEqual([]); + expect(wiki.filterTiddlers("[{First}jsonextract[d]]")).toEqual(['{"e":"four","f":["five","six",true,false,null]}']); + expect(wiki.filterTiddlers("[{First}jsonextract[d]jsonextract[f]]")).toEqual(['["five","six",true,false,null]']); + expect(wiki.filterTiddlers("[{First}jsonextract[d],[e]]")).toEqual(['"four"']); + expect(wiki.filterTiddlers("[{First}jsonextract[d],[f]]")).toEqual(['["five","six",true,false,null]']); + expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[0]]")).toEqual(['"five"']); + expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[1]]")).toEqual(['"six"']); + expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[2]]")).toEqual(["true"]); + expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[3]]")).toEqual(["false"]); + expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[4]]")).toEqual(["null"]); + }); + it("should support the jsonindexes operator", function() { - expect(wiki.filterTiddlers("[{Second}jsonindexes[]]")).toEqual(["0","1","2"]); + expect(wiki.filterTiddlers("[{Second}jsonindexes[]]")).toEqual(["0","1","2","3"]); expect(wiki.filterTiddlers("[{First}jsonindexes[]]")).toEqual(["a","b","c","d"]); expect(wiki.filterTiddlers("[{First}jsonindexes[a]]")).toEqual([]); expect(wiki.filterTiddlers("[{First}jsonindexes[b]]")).toEqual([]); diff --git a/editions/tw5.com/tiddlers/features/JSON in TiddlyWiki.tid b/editions/tw5.com/tiddlers/features/JSON in TiddlyWiki.tid index 2f2edd09f..cd827ddb6 100644 --- a/editions/tw5.com/tiddlers/features/JSON in TiddlyWiki.tid +++ b/editions/tw5.com/tiddlers/features/JSON in TiddlyWiki.tid @@ -2,7 +2,7 @@ title: JSON in TiddlyWiki tags: Features type: text/vnd.tiddlywiki created: 20220427174702859 -modified: 20220427174702859 +modified: 20220611104737314 !! Introduction diff --git a/editions/tw5.com/tiddlers/filters/jsonextract.tid b/editions/tw5.com/tiddlers/filters/jsonextract.tid new file mode 100644 index 000000000..15517e110 --- /dev/null +++ b/editions/tw5.com/tiddlers/filters/jsonextract.tid @@ -0,0 +1,66 @@ +created: 20220611104737314 +modified: 20220611104737314 +tags: [[Filter Operators]] [[JSON Operators]] +title: jsonextract Operator +caption: jsonextract +op-purpose: retrieve the JSON string of a property from JSON strings +op-input: a selection of JSON strings +op-parameter: one or more indexes of the property to retrieve +op-output: the JSON string values of each of the retrieved properties + +<<.from-version "5.2.4">> See [[JSON in TiddlyWiki]] for background. + +The <<.op jsonextract>> operator is used to retrieve values from JSON data as JSON substrings. See also the following related operators: + +* <<.olink jsonget>> to retrieve the values of a property in JSON data +* <<.olink jsontype>> to retrieve the type of a JSON value +* <<.olink jsonindexes>> to retrieve the names of the fields of a JSON object, or the indexes of a JSON array + +Properties within a JSON object are identified by a sequence of indexes. In the following example, the value at `[a]` is `one`, and the value at `[d][f][0]` is `five`. + +``` +{ + "a": "one", + "b": "", + "c": "three", + "d": { + "e": "four", + "f": [ + "five", + "six", + true, + false, + null + ], + "g": { + "x": "max", + "y": "may", + "z": "maize" + } + } +} +``` + +The following examples assume that this JSON data is contained in a variable called `jsondata`. + +The <<.op jsonextract>> operator uses multiple operands to specify the indexes of the property to retrieve. Values are returned as literal JSON strings: + +``` +[<jsondata>jsonextract[a]] --> "one" +[<jsondata>jsonextract[d],[e]] --> "four" +[<jsondata>jsonextract[d],[f],[0]] --> "five" +[<jsondata>jsonextract[d],[f]] --> ["five","six",true,false,null] +[<jsondata>jsonextract[d],[g]] --> {"x":"max","y":"may","z":"maize"} +``` + +Indexes can be dynamically composed from variables and transclusions: + +``` +[<jsondata>jsonextract<variable>,{!!field},[0]] +``` + +A subtlety is that the special case of a single blank operand is used to identify the root object. Thus: + +``` +[<jsondata>jsonextract[]] --> {"a":"one","b":"","c":"three","d":{"e":"four","f":["five","six",true,false,null],"g":{"x":"max","y":"may","z":"maize"}}} +``` diff --git a/editions/tw5.com/tiddlers/filters/jsonget.tid b/editions/tw5.com/tiddlers/filters/jsonget.tid index dbc247d7b..d9caa680e 100644 --- a/editions/tw5.com/tiddlers/filters/jsonget.tid +++ b/editions/tw5.com/tiddlers/filters/jsonget.tid @@ -10,10 +10,11 @@ op-output: the values of each of the retrieved properties <<.from-version "5.2.4">> See [[JSON in TiddlyWiki]] for background. -The <<.op jsonget>> operator is used to retrieve values from JSON data. See also the following related operators: +The <<.op jsonget>> operator is used to retrieve values from JSON data as strings. See also the following related operators: * <<.olink jsontype>> to retrieve the type of a JSON value * <<.olink jsonindexes>> to retrieve the names of the fields of a JSON object, or the indexes of a JSON array +* <<.olink jsonextract>> to retrieve a JSON value as a string of JSON Properties within a JSON object are identified by a sequence of indexes. In the following example, the value at `[a]` is `one`, and the value at `[d][f][0]` is `five`. @@ -65,11 +66,11 @@ Boolean values and null are returned as normal strings. The <<.olink jsontype>> [<jsondata>jsontype[d],[f],[2]] --> "boolean" ``` -Using the <<.op jsonget>> operator to retrieve an object or an array returns a JSON string of the values. For example: +Using the <<.op jsonget>> operator to retrieve an object or an array returns a list of the values. For example: ``` -[<jsondata>jsonget[d],[f]] --> `["five","six",true,false,null]` -[<jsondata>jsonget[d],[g]] --> `{"x": "max","y": "may","z": "maize"}` +[<jsondata>jsonget[d],[f]] --> "five","six","true","false","null" +[<jsondata>jsonget[d],[g]] --> "max","may","maize" ``` The <<.olink jsonindexes>> operator retrieves the corresponding indexes: @@ -79,6 +80,12 @@ The <<.olink jsonindexes>> operator retrieves the corresponding indexes: [<jsondata>jsonindexes[d],[g]] --> "x", "y", "z" ``` +If the object or array contains nested child objects or arrays then the values are retrieved recursively and returned flattened into a list. For example: + +``` +[<jsondata>jsonget[d]] --> "four","five","six","true","false","null","max","may","maize" +``` + A subtlety is that the special case of a single blank operand is used to identify the root object. Thus: ``` diff --git a/editions/tw5.com/tiddlers/filters/jsonindexes.tid b/editions/tw5.com/tiddlers/filters/jsonindexes.tid index 933f0f101..605936a2f 100644 --- a/editions/tw5.com/tiddlers/filters/jsonindexes.tid +++ b/editions/tw5.com/tiddlers/filters/jsonindexes.tid @@ -14,6 +14,7 @@ The <<.op jsonindexes>> operator is used to retrieve the property names of JSON * <<.olink jsonget>> to retrieve the values of a property in JSON data * <<.olink jsontype>> to retrieve the type of a JSON value +* <<.olink jsonextract>> to retrieve a JSON value as a string of JSON Properties within a JSON object are identified by a sequence of indexes. In the following example, the value at `[a]` is `one`, and the value at `[d][f][0]` is `five`. diff --git a/editions/tw5.com/tiddlers/filters/jsontype.tid b/editions/tw5.com/tiddlers/filters/jsontype.tid index 766757af0..b88f865dd 100644 --- a/editions/tw5.com/tiddlers/filters/jsontype.tid +++ b/editions/tw5.com/tiddlers/filters/jsontype.tid @@ -14,6 +14,7 @@ The <<.op jsontype>> operator is used to retrieve the type of a property in JSON * <<.olink jsonget>> to retrieve the values of a property in JSON data * <<.olink jsonindexes>> to retrieve the names of the fields of a JSON object, or the indexes of a JSON array +* <<.olink jsonextract>> to retrieve a JSON value as a string of JSON JSON supports the following data types: diff --git a/editions/tw5.com/tiddlers/howtos/Reading data from JSON tiddlers.tid b/editions/tw5.com/tiddlers/howtos/Reading data from JSON tiddlers.tid index acf482789..8f7968de0 100644 --- a/editions/tw5.com/tiddlers/howtos/Reading data from JSON tiddlers.tid +++ b/editions/tw5.com/tiddlers/howtos/Reading data from JSON tiddlers.tid @@ -1,11 +1,20 @@ created: 20220427174702859 -modified: 20220427171449102 +modified: 20220611104737314 tags: [[JSON in TiddlyWiki]] Learning title: Reading data from JSON tiddlers type: text/vnd.tiddlywiki See [[JSON in TiddlyWiki]] for an overview of using JSON in TiddlyWiki. +!! Filter Operators for Accessing JSON Data + +The following filter operators allow values to be read from JSON data: + +* <<.olink jsonget>> to retrieve the values of a property in JSON data +* <<.olink jsontype>> to retrieve the type of a JSON value +* <<.olink jsonindexes>> to retrieve the names of the fields of a JSON object, or the indexes of a JSON array +* <<.olink jsonextract>> to retrieve a JSON value as a string of JSON + !! Text References for Accessing JSON Data [[Text references|TextReference]] are a simple shortcut syntax to look up the value of a named property. For example, if a [[DictionaryTiddler|DictionaryTiddlers]] called `MonthDays` contains: From cc47bb0330dc0c8facd829ea5fa5477373cfeb2a Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Sat, 10 Dec 2022 15:10:54 +0100 Subject: [PATCH 151/937] Improve readability for: Using the external JavaScript template (#7097) * Improve readability for: Using the external JavaScript template * remove the extra button --- ...Using the external JavaScript template.tid | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid b/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid index df21e9b16..918878b0d 100644 --- a/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid +++ b/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid @@ -1,22 +1,22 @@ created: 20180905075846391 -modified: 20210611055708739 +modified: 20221207112242775 tags: [[WebServer Guides]] title: Using the external JavaScript template type: text/vnd.tiddlywiki -You can use a special template to externalise TiddlyWiki's core code into a separate file. This configuration allows the browser to cache the core for improved efficiency. +You can use a special template to externalise ~TiddlyWiki's core code into a separate file. This configuration allows the browser to cache the core for improved efficiency. ! Background -TiddlyWiki in the single file configuration ordinarily packs everything into a single file: your data, and the ~JavaScript, CSS and HTML comprising TiddlyWiki itself. This lack of dependencies is usually very convenient: it means that it is impossible for the parts of a TiddlyWiki to become separated, and enormously improves the chances of it still functioning in the future. +~TiddlyWiki in the single file configuration ordinarily packs everything into a single file: your data, and the ~JavaScript, CSS and HTML comprising ~TiddlyWiki itself. This lack of dependencies is usually very convenient: it means that it is impossible for the parts of a ~TiddlyWiki to become separated, and enormously improves the chances of it still functioning in the future. However, there is some inefficiency in this arrangement because the core code is repeatedly loaded and saved every time the content of the wiki is saved. This inefficiency is partially ameliorated when working in the client server configuration because once the wiki is loaded by the browser the synchronisation process only transmits individual tiddlers back and forth to the server. -The remaining inefficiency when working in the client server configuration is that the single page wiki that is initially loaded will contain a copy of the entire core code of TiddlyWiki, making it impossible for the browser to cache it. +The remaining inefficiency when working in the client server configuration is that the single page wiki that is initially loaded will contain a copy of the entire core code of ~TiddlyWiki, making it impossible for the browser to cache it. -! Using the external JavaScript template with the client-server configuration +! Using the external ~JavaScript template with the client-server configuration -The mechanism is activated by setting the [[root-tiddler|WebServer Parameter: root-tiddler]] parameter to `$:/core/save/all-external-js`. This template externalises TiddlyWiki's core JavaScript into a separate file. For example, the following command will start your server with caching enabled. It will transfer the wiki with two GET requests, and the core can be cached by the browser. +The mechanism is activated by setting the [[root-tiddler|WebServer Parameter: root-tiddler]] parameter to `$:/core/save/all-external-js`. This template externalises ~TiddlyWiki's core ~JavaScript into a separate file. For example, the following command will start your server with caching enabled. It will transfer the wiki with two GET requests, and the core can be cached by the browser. ``` tiddlywiki YOUR_WIKI_FOLDER --listen 'root-tiddler=$:/core/save/all-external-js' use-browser-cache=yes @@ -38,11 +38,11 @@ tiddlywiki ./myNewWiki --build listen The above commands perform the following: * Create a new wiki with external JavaScript customization included. -* Start the server with external JavaScript enabled. The server listens on port 8080. Visit http://localhost:8080 in your browser. +* Start the server with external ~JavaScript enabled. The server listens on port 8080. Visit http://localhost:8080 in your browser. To customize your `--build listen` command, see [[tiddlywiki.info Files]] and [[ListenCommand]]. -! Using the external JavaScript template with the single file configuration +! Using the external ~JavaScript template with the single file configuration You can use the "external-js" template with your single file wiki, but this requires that you have ~TiddlyWiki's core ~JavaScript saved alongside your HTML file. You may prefer this configuration, for example, if you have several wikis on a ~WebDav server. (See: [[Saving via WebDAV]]) @@ -64,7 +64,7 @@ The files `index.html` and `tiddlywikicore-5.x.x.js` will be saved in your wiki !! Obtaining the ~TiddlyWiki core in the browser -To download a copy of the TiddlyWiki core JavaScript file from any existing TiddlyWiki, visit the system tiddler $:/core/ui/ExportTiddlyWikiCore and click the download button. (You can search for ''~ExportTiddlyWikiCore'' in the ''Shadows'' tab of $:/AdvancedSearch). +{{$:/core/ui/ExportTiddlyWikiCore}} !! Obtaining the ~TiddlyWiki core with Node.js @@ -87,7 +87,7 @@ tiddlywiki YOUR_WIKI_FOLDER --build tiddlywikicore <<.warning "This procedure is experimental, please take care to backup your data">> -Before you proceed, backup your wiki first! Follow the steps below to upgrade a single-file wiki with the external JavaScript template: +Before you proceed, backup your wiki first! Follow the steps below to upgrade a single-file wiki with the external ~JavaScript template: # Proceed with the [[Upgrade Process for Standalone TiddlyWikis|Upgrading]]. Your wiki will be converted to a full standalone HTML. From 3c81558d7487d66fe7c502cbf0c8c5be3182414d Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 10 Dec 2022 14:23:28 +0000 Subject: [PATCH 152/937] Add introduction message to "Saving" tiddler Fixes #7095 --- editions/tw5.com/tiddlers/saving/Saving.tid | 13 ++++++++++--- editions/tw5.com/tiddlers/system/tw5.com-styles.tid | 9 +++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/saving/Saving.tid b/editions/tw5.com/tiddlers/saving/Saving.tid index 9b55b1d1d..85c5d47ae 100644 --- a/editions/tw5.com/tiddlers/saving/Saving.tid +++ b/editions/tw5.com/tiddlers/saving/Saving.tid @@ -32,9 +32,16 @@ type: text/vnd.tiddlywiki \define checkactions(item:"Linux") <$action-listops $tiddler=<<stateTiddler>> $subfilter="[[$item$]]"/> \end -<$vars stateTiddler=<<qualify "$:/state/gettingstarted">> > -Available methods for saving changes with ~TiddlyWiki: +\define introduction-message() +<div class="tc-saving-introduction"> +<div> +Use the checkboxes to explore the methods of saving that work with your platform(s) +</div> +</div> +\end + +<$vars stateTiddler=<<qualify "$:/state/gettingstarted">> > <div class="tc-wrapper-flex"> <div class="tc-saving-sidebar"> @@ -56,7 +63,7 @@ Available methods for saving changes with ~TiddlyWiki: <!-- Page content --> <div class="tc-cards"> <$wikify text=<<alltagsfilter>> name="alltagsfilterwikified"> -<$list filter=<<alltagsfilterwikified>>> +<$list filter=<<alltagsfilterwikified>> emptyMessage=<<introduction-message>>> {{||$:/_tw5.com-card-template}} </$list> </$wikify> diff --git a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid index b446b363b..9818d3c30 100644 --- a/editions/tw5.com/tiddlers/system/tw5.com-styles.tid +++ b/editions/tw5.com/tiddlers/system/tw5.com-styles.tid @@ -122,6 +122,15 @@ type: text/vnd.tiddlywiki margin-left: 10px; } +.tc-saving-introduction { + display: flex; + justify-content: center; + text-align: center; + align-items: center; + padding: 4em; + font-style: italic; +} + .tc-cards { display: flex; flex-wrap: wrap; From 6e6efcafc9676332f8eed62984a197951b5c28f3 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 12 Dec 2022 08:45:38 +0000 Subject: [PATCH 153/937] Reword Grok TiddlyWiki card --- .../hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid index f076ced60..1fd773caa 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid @@ -5,4 +5,4 @@ image: Grok TiddlyWiki Banner caption: Grok ~TiddlyWiki link: "Grok TiddlyWiki" by Soren Bjornstad -A guided tutorial through ~TiddlyWiki \ No newline at end of file +Everything you need to know to get the best out of ~TiddlyWiki \ No newline at end of file From ed9cc84fb282123b9cfe09772dfe12bd57236520 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 13 Dec 2022 09:36:10 +0000 Subject: [PATCH 154/937] Remove erroneous references to en-GB language plugin en-GB is built into the core, and so does not have a separate language plugin --- editions/de-AT-server/tiddlywiki.info | 1 - editions/de-AT/tiddlywiki.info | 1 - editions/de-DE/tiddlywiki.info | 1 - editions/full/tiddlywiki.info | 1 - editions/introduction/tiddlywiki.info | 1 - editions/translators/tiddlywiki.info | 1 - 6 files changed, 6 deletions(-) diff --git a/editions/de-AT-server/tiddlywiki.info b/editions/de-AT-server/tiddlywiki.info index c09be1db8..ae2f709a1 100644 --- a/editions/de-AT-server/tiddlywiki.info +++ b/editions/de-AT-server/tiddlywiki.info @@ -11,7 +11,6 @@ "tiddlywiki/snowwhite" ], "languages": [ - "en-GB", "de-AT", "de-DE" ], diff --git a/editions/de-AT/tiddlywiki.info b/editions/de-AT/tiddlywiki.info index 7dc946416..55c72204f 100755 --- a/editions/de-AT/tiddlywiki.info +++ b/editions/de-AT/tiddlywiki.info @@ -13,7 +13,6 @@ "tiddlywiki/internals" ], "languages": [ - "en-GB", "de-AT", "de-DE" ], diff --git a/editions/de-DE/tiddlywiki.info b/editions/de-DE/tiddlywiki.info index 0cabd3f28..e1806f4a8 100755 --- a/editions/de-DE/tiddlywiki.info +++ b/editions/de-DE/tiddlywiki.info @@ -13,7 +13,6 @@ "tiddlywiki/internals" ], "languages": [ - "en-GB", "de-AT", "de-DE" ], diff --git a/editions/full/tiddlywiki.info b/editions/full/tiddlywiki.info index 0a716f60e..e5dc0b0f9 100644 --- a/editions/full/tiddlywiki.info +++ b/editions/full/tiddlywiki.info @@ -37,7 +37,6 @@ "de-AT", "de-DE", "el-GR", - "en-GB", "en-US", "es-ES", "fa-IR", diff --git a/editions/introduction/tiddlywiki.info b/editions/introduction/tiddlywiki.info index a638ec142..14c629414 100644 --- a/editions/introduction/tiddlywiki.info +++ b/editions/introduction/tiddlywiki.info @@ -24,7 +24,6 @@ "de-CH", "de-DE", "el-GR", - "en-GB", "en-US", "es-ES", "fa-IR", diff --git a/editions/translators/tiddlywiki.info b/editions/translators/tiddlywiki.info index b08c5ceda..b2cc4f7ba 100644 --- a/editions/translators/tiddlywiki.info +++ b/editions/translators/tiddlywiki.info @@ -12,7 +12,6 @@ "de-CH", "de-DE", "el-GR", - "en-GB", "en-US", "es-ES", "fa-IR", From 34c9e83bec575586f3c8afc09cd62683e87c17e1 Mon Sep 17 00:00:00 2001 From: Simon Baird <simon.baird@gmail.com> Date: Tue, 13 Dec 2022 07:26:14 -0500 Subject: [PATCH 155/937] Remove "Saving" tag from "Saving on TiddlySpot" (#7115) The content is still there since there are links to it from various places, but let's not have its card appear in the list of savers shown in the "Saving" tiddler any more. Removing just the "Saving" tag would have been sufficient, but I think it makes sense to remove the other tags as well. --- editions/tw5.com/tiddlers/saving/Saving on TiddlyHost.tid | 2 +- editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/saving/Saving on TiddlyHost.tid b/editions/tw5.com/tiddlers/saving/Saving on TiddlyHost.tid index 7cb9a1ec7..8931c71be 100644 --- a/editions/tw5.com/tiddlers/saving/Saving on TiddlyHost.tid +++ b/editions/tw5.com/tiddlers/saving/Saving on TiddlyHost.tid @@ -3,7 +3,7 @@ color: #29B6F6 community-author: Simon Baird created: 20210422191232572 delivery: Service -description: Online service for creating and hosting TiddlyWikis +description: Online service for creating and hosting ~TiddlyWikis method: save modified: 20210423003921468 tags: Android Chrome Firefox [[Internet Explorer]] Linux Mac Opera PHP Safari Saving Windows iOS Edge diff --git a/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid b/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid index e65d171ae..c66587102 100644 --- a/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid +++ b/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid @@ -6,7 +6,6 @@ delivery: Service description: Online TiddlyWiki hosting. (Deprecated in favour of TiddlyHost) method: save modified: 20210423004027196 -tags: Android Chrome Firefox [[Internet Explorer]] Linux Mac Opera PHP Safari Saving Windows iOS Edge title: Saving on TiddlySpot type: text/vnd.tiddlywiki From 638553463892015489ad86750d6c1c4b55071908 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 13 Dec 2022 16:26:09 +0000 Subject: [PATCH 156/937] Release note tweaks --- editions/prerelease/tiddlers/Release 5.2.4.tid | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/prerelease/tiddlers/Release 5.2.4.tid index f11531985..51dea8daf 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/prerelease/tiddlers/Release 5.2.4.tid @@ -19,9 +19,9 @@ New [ext[Twitter Archivist|./editions/twitter-archivist]] plugin to import the t <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6961">> new GenesisWidget that allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance -<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]], [[jsonextract Operator]] and [[format Operator]] +<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> (and <<.link-badge-here "https://github.com/Jermolene/TiddlyWiki5/pull/7105">>) new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]], [[jsonextract Operator]] and [[format Operator]] -! Translation improvement +! Translation Improvements Improvements to the following translations: @@ -32,7 +32,7 @@ Improvements to the following translations: * Spanish * Japanese -Improvements to the translation features of TiddlyWiki: +Improvements to the translation features of TiddlyWiki itself: * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6882">> the [[Translators Edition|Translate TiddlyWiki into your language]] to add an option to display the original English text underneath the text area * <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6933">> "delete" button text in $:/AdvancedSearch so that it is translatable @@ -76,7 +76,7 @@ Improvements to the translation features of TiddlyWiki: * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7043">> support for Unix epoch timestamps in [[date format strings|DateFormat]] * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7064">> the "big green download button" to use the defined palette colour * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7063">> new hidden setting [[to use horizontal tabs for the "more" sidebar tab|Hidden Setting: More Tabs Horizontal]] -* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/bef11fe6a25fb849dee40c4aa4337d6a30daf0b4">> the [[external JavaScript templates|]] to allow the URL of the external script file to be configured +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/bef11fe6a25fb849dee40c4aa4337d6a30daf0b4">> the [[external JavaScript templates|Using the external JavaScript template]] to allow the URL of the external script file to be configured ! Bug Fixes @@ -130,6 +130,7 @@ pmario rmunn roma0104 saqimtiaz +simonbaird talha131 Telumire tw-FRed From 6235f29749bab79a4d381cf3a01e8711c04b9d9f Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 13 Dec 2022 16:34:14 +0000 Subject: [PATCH 157/937] Preparing for release of v5.2.4 --- .../prerelease/tiddlers/Release 5.2.5.tid | 50 +++++++++++++++++++ .../tiddlers/hellothere/HelloThere.tid | 2 +- .../tiddlers/releasenotes}/Release 5.2.4.tid | 7 +-- readme.md | 2 +- 4 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 editions/prerelease/tiddlers/Release 5.2.5.tid rename editions/{prerelease/tiddlers => tw5.com/tiddlers/releasenotes}/Release 5.2.4.tid (98%) diff --git a/editions/prerelease/tiddlers/Release 5.2.5.tid b/editions/prerelease/tiddlers/Release 5.2.5.tid new file mode 100644 index 000000000..f4daa5ca5 --- /dev/null +++ b/editions/prerelease/tiddlers/Release 5.2.5.tid @@ -0,0 +1,50 @@ +caption: 5.2.5 +created: 20221127133944178 +modified: 20221127133944178 +tags: ReleaseNotes +title: Release 5.2.5 +type: text/vnd.tiddlywiki + +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.4...master]]// + +! Translation Improvements + +Improvements to the following translations: + +* + +! Usability Improvements + +* + +! Widget Improvements + +* + +! Filter improvements + +* + +! Hackability Improvements + +* + +! Bug Fixes + +* + +! Node.js Improvements + +* + +! Performance Improvements + +* + +! Acknowledgements + +[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: + +<<.contributors """ +XXXXX +""">> diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index dec5d87b4..044c9cfb5 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -1,6 +1,6 @@ created: 20130822170200000 list: [[A Gentle Guide to TiddlyWiki]] [[Discover TiddlyWiki]] [[Some of the things you can do with TiddlyWiki]] [[Ten reasons to switch to TiddlyWiki]] Examples [[What happened to the original TiddlyWiki?]] -modified: 20221204165636777 +modified: 20221213163110439 tags: TableOfContents title: HelloThere type: text/vnd.tiddlywiki diff --git a/editions/prerelease/tiddlers/Release 5.2.4.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid similarity index 98% rename from editions/prerelease/tiddlers/Release 5.2.4.tid rename to editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid index 51dea8daf..11c8e510c 100644 --- a/editions/prerelease/tiddlers/Release 5.2.4.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid @@ -1,11 +1,12 @@ caption: 5.2.4 -created: 20221127133944178 -modified: 20221127133944178 +created: 20221213163110439 +modified: 20221213163110439 +released: 20221213163110439 tags: ReleaseNotes title: Release 5.2.4 type: text/vnd.tiddlywiki -//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.3...master]]// +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.3...v5.2.4]]// <<.banner-credits credit:"""Congratulations to [[dmikh|https://talk.tiddlywiki.org/u/dmikh]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/new-release-banner-competition-for-v5-2-4/4982]] and the [[voting thread|https://talk.tiddlywiki.org/t/vote-for-the-v5-2-4-new-release-banner/5140/2]]). diff --git a/readme.md b/readme.md index 120173bca..548018899 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,7 @@ <p>Welcome to <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a>, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation.</p><p><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> is a complete interactive wiki in <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/JavaScript.html">JavaScript</a>. It can be used as a single HTML file in the browser or as a powerful Node.js application. It is highly customisable: the entire user interface is itself implemented in hackable <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/WikiText.html">WikiText</a>.</p><p>Learn more and see it in action at <a class="tc-tiddlylink-external" href="https://tiddlywiki.com/" rel="noopener noreferrer" target="_blank">https://tiddlywiki.com/</a></p><p>Developer documentation is in progress at <a class="tc-tiddlylink-external" href="https://tiddlywiki.com/dev/" rel="noopener noreferrer" target="_blank">https://tiddlywiki.com/dev/</a></p><h1 class="">Join the Community</h1><p> <h2 class="">Official Forums</h2><p>The new official forum for talking about TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email.</p><p><a class="tc-tiddlylink-external" href="https://talk.tiddlywiki.org/" rel="noopener noreferrer" target="_blank">https://talk.tiddlywiki.org/</a></p><p>Note that talk.tiddlywiki.org is a community run service that we host and maintain ourselves. The modest running costs are covered by community contributions.</p><p>For the convenience of existing users, we also continue to operate the original TiddlyWiki group (hosted on Google Groups since 2005):</p><p><a class="tc-tiddlylink-external" href="https://groups.google.com/group/TiddlyWiki" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/TiddlyWiki</a></p><h2 class="">Developer Forums</h2><p>There are several resources for developers to learn more about <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> and to discuss and contribute to its development.</p><ul><li><a class="tc-tiddlylink-external" href="https://tiddlywiki.com/dev" rel="noopener noreferrer" target="_blank">tiddlywiki.com/dev</a> is the official developer documentation</li><li>Get involved in the <a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5" rel="noopener noreferrer" target="_blank">development on GitHub</a><ul><li><a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/discussions" rel="noopener noreferrer" target="_blank">Discussions</a> are for Q&A and open-ended discussion</li><li><a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/issues" rel="noopener noreferrer" target="_blank">Issues</a> are for raising bug reports and proposing specific, actionable new ideas</li></ul></li><li>The older TiddlyWikiDev Google Group is now closed in favour of <a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/discussions" rel="noopener noreferrer" target="_blank">GitHub Discussions</a> but remains a useful archive: <a class="tc-tiddlylink-external" href="https://groups.google.com/group/TiddlyWikiDev" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/TiddlyWikiDev</a><ul><li>An enhanced group search facility is available on <a class="tc-tiddlylink-external" href="https://www.mail-archive.com/tiddlywikidev@googlegroups.com/" rel="noopener noreferrer" target="_blank">mail-archive.com</a></li></ul></li><li>Follow <a class="tc-tiddlylink-external" href="http://twitter.com/#!/TiddlyWiki" rel="noopener noreferrer" target="_blank">@TiddlyWiki on Twitter</a> for the latest news</li><li>Chat at <a class="tc-tiddlylink-external" href="https://gitter.im/TiddlyWiki/public" rel="noopener noreferrer" target="_blank">https://gitter.im/TiddlyWiki/public</a> (development room coming soon)</li></ul><h2 class="">Other Forums</h2><ul><li><a class="tc-tiddlylink-external" href="https://www.reddit.com/r/TiddlyWiki5/" rel="noopener noreferrer" target="_blank">TiddlyWiki Subreddit</a></li><li>Chat with Gitter at <a class="tc-tiddlylink-external" href="https://gitter.im/TiddlyWiki/public" rel="noopener noreferrer" target="_blank">https://gitter.im/TiddlyWiki/public</a> !</li><li>Chat on Discord at <a class="tc-tiddlylink-external" href="https://discord.gg/HFFZVQ8" rel="noopener noreferrer" target="_blank">https://discord.gg/HFFZVQ8</a></li></ul><h3 class="">Documentation</h3><p>There is also a discussion group specifically for discussing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> documentation improvement initiatives: <a class="tc-tiddlylink-external" href="https://groups.google.com/group/tiddlywikidocs" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/tiddlywikidocs</a> </p> -</p><h1 class="">Installing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><ol><li>Install <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Node.js.html">Node.js</a><ul><li>Linux: <blockquote><div><em>Debian/Ubuntu</em>:<br><code>apt install nodejs</code><br>May need to be followed up by:<br><code>apt install npm</code></div><div><em>Arch Linux</em><br><code>pacman -S tiddlywiki</code> <br>(installs node and tiddlywiki)</div></blockquote></li><li>Mac<blockquote><div><code>brew install node</code></div></blockquote></li><li>Android<blockquote><div><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Serving%2520TW5%2520from%2520Android.html">Termux for Android</a></div></blockquote></li><li>Other <blockquote><div>See <a class="tc-tiddlylink-external" href="http://nodejs.org" rel="noopener noreferrer" target="_blank">http://nodejs.org</a></div></blockquote></li></ul></li><li>Open a command line terminal and type:<blockquote><div><code>npm install -g tiddlywiki</code></div><div>If it fails with an error you may need to re-run the command as an administrator:</div><div><code>sudo npm install -g tiddlywiki</code> (Mac/Linux)</div></blockquote></li><li>Ensure TiddlyWiki is installed by typing:<blockquote><div><code>tiddlywiki --version</code></div></blockquote><ul><li>In response, you should see <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> report its current version (eg "5.2.3". You may also see other debugging information reported.)</li></ul></li><li>Try it out:<ol><li><code>tiddlywiki mynewwiki --init server</code> to create a folder for a new wiki that includes server-related components</li><li><code>tiddlywiki mynewwiki --listen</code> to start <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a></li><li>Visit <a class="tc-tiddlylink-external" href="http://127.0.0.1:8080/" rel="noopener noreferrer" target="_blank">http://127.0.0.1:8080/</a> in your browser</li><li>Try editing and creating tiddlers</li></ol></li><li>Optionally, make an offline copy:<ul><li>click the <span class="doc-icon"><svg class="tc-image-save-button tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z" fill-rule="evenodd"></path></svg></span> <strong>save changes</strong> button in the sidebar, <strong>OR</strong></li><li><code>tiddlywiki mynewwiki --build index</code></li></ul></li></ol><p>The <code>-g</code> flag causes <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> to be installed globally. Without it, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> will only be available in the directory where you installed it.</p><p><div class="doc-icon-block"><div class="doc-block-icon"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg></div> If you are using Debian or Debian-based Linux and you are receiving a <code>node: command not found</code> error though node.js package is installed, you may need to create a symbolic link between <code>nodejs</code> and <code>node</code>. Consult your distro's manual and <code>whereis</code> to correctly create a link. See github <a class="tc-tiddlylink-external" href="http://github.com/Jermolene/TiddlyWiki5/issues/1434" rel="noopener noreferrer" target="_blank">issue 1434</a>. <br><br>Example Debian v8.0: <code>sudo ln -s /usr/bin/nodejs /usr/bin/node</code></div></p><p><br> +</p><h1 class="">Installing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><ol><li>Install <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Node.js.html">Node.js</a><ul><li>Linux: <blockquote><div><em>Debian/Ubuntu</em>:<br><code>apt install nodejs</code><br>May need to be followed up by:<br><code>apt install npm</code></div><div><em>Arch Linux</em><br><code>yay -S tiddlywiki</code> <br>(installs node and tiddlywiki)</div></blockquote></li><li>Mac<blockquote><div><code>brew install node</code></div></blockquote></li><li>Android<blockquote><div><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Serving%2520TW5%2520from%2520Android.html">Termux for Android</a></div></blockquote></li><li>Other <blockquote><div>See <a class="tc-tiddlylink-external" href="http://nodejs.org" rel="noopener noreferrer" target="_blank">http://nodejs.org</a></div></blockquote></li></ul></li><li>Open a command line terminal and type:<blockquote><div><code>npm install -g tiddlywiki</code></div><div>If it fails with an error you may need to re-run the command as an administrator:</div><div><code>sudo npm install -g tiddlywiki</code> (Mac/Linux)</div></blockquote></li><li>Ensure TiddlyWiki is installed by typing:<blockquote><div><code>tiddlywiki --version</code></div></blockquote><ul><li>In response, you should see <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> report its current version (eg "5.2.4". You may also see other debugging information reported.)</li></ul></li><li>Try it out:<ol><li><code>tiddlywiki mynewwiki --init server</code> to create a folder for a new wiki that includes server-related components</li><li><code>tiddlywiki mynewwiki --listen</code> to start <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a></li><li>Visit <a class="tc-tiddlylink-external" href="http://127.0.0.1:8080/" rel="noopener noreferrer" target="_blank">http://127.0.0.1:8080/</a> in your browser</li><li>Try editing and creating tiddlers</li></ol></li><li>Optionally, make an offline copy:<ul><li>click the <span class="doc-icon"><svg class="tc-image-save-button tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z" fill-rule="evenodd"></path></svg></span> <strong>save changes</strong> button in the sidebar, <strong>OR</strong></li><li><code>tiddlywiki mynewwiki --build index</code></li></ul></li></ol><p>The <code>-g</code> flag causes <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> to be installed globally. Without it, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> will only be available in the directory where you installed it.</p><p><div class="doc-icon-block"><div class="doc-block-icon"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg></div> If you are using Debian or Debian-based Linux and you are receiving a <code>node: command not found</code> error though node.js package is installed, you may need to create a symbolic link between <code>nodejs</code> and <code>node</code>. Consult your distro's manual and <code>whereis</code> to correctly create a link. See github <a class="tc-tiddlylink-external" href="http://github.com/Jermolene/TiddlyWiki5/issues/1434" rel="noopener noreferrer" target="_blank">issue 1434</a>. <br><br>Example Debian v8.0: <code>sudo ln -s /usr/bin/nodejs /usr/bin/node</code></div></p><p><br> <div class="doc-icon-block"><div class="doc-block-icon"><svg class="tc-image-tip tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z" fill-rule="evenodd"></path></svg></div> You can also install prior versions like this: <br><code> npm install -g tiddlywiki@5.1.13</code></div> </p><h1 class="">Using <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><p>TiddlyWiki5 includes a set of commands for use on the command line to perform an extensive set of operations based on <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolders</a>, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlerFiles.html">TiddlerFiles</a>.</p><p>For example, the following command loads the tiddlers from a TiddlyWiki HTML file and then saves one of them in static HTML:</p><pre><code>tiddlywiki --verbose --load mywiki.html --rendertiddler ReadMe ./readme.html</code></pre><p>Running <code>tiddlywiki</code> from the command line boots the TiddlyWiki kernel, loads the core plugins and establishes an empty wiki store. It then sequentially processes the command line arguments from left to right. The arguments are separated with spaces.</p><p><a class="tc-tiddlylink tc-tiddlylink-resolves doc-from-version" href="https://tiddlywiki.com/static/Release%25205.1.20.html"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg> New in: 5.1.20</a> First, there can be zero or more plugin references identified by the prefix <code>+</code> for plugin names or <code>++</code> for a path to a plugin folder. These plugins are loaded in addition to any specified in the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolder</a>.</p><p>The next argument is the optional path to the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolder</a> to be loaded. If not present, then the current directory is used.</p><p>The commands and their individual arguments follow, each command being identified by the prefix <code>--</code>.</p><pre><code>tiddlywiki [+<pluginname> | ++<pluginpath>] [<wikipath>] [--<command> [<arg>[,<arg>]]]</code></pre><p>For example:</p><pre><code>tiddlywiki --version tiddlywiki +plugins/tiddlywiki/filesystem +plugins/tiddlywiki/tiddlyweb mywiki --listen From 6cd2fc029d90d812d98226bbe7ca5d05b9954e15 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 13 Dec 2022 16:35:26 +0000 Subject: [PATCH 158/937] Version number update for 5.2.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 68e44ff3c..4642bca92 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tiddlywiki", "preferGlobal": "true", - "version": "5.2.4-prerelease", + "version": "5.2.4", "author": "Jeremy Ruston <jeremy@jermolene.com>", "description": "a non-linear personal web notebook", "contributors": [ From 8d48964aca3f184723e27edbf2e9ecfa01c64620 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 13 Dec 2022 16:42:40 +0000 Subject: [PATCH 159/937] Preparing for v5.2.5 --- bin/build-site.sh | 2 +- core/wiki/config/OfficialPluginLibrary.tid | 2 +- .../PrereleaseOfficialPluginLibrary.tid | 2 +- .../tiddlers/images/New Release Banner.png | Bin 18032 -> 108817 bytes package.json | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/build-site.sh b/bin/build-site.sh index fd1430199..f8270cec6 100755 --- a/bin/build-site.sh +++ b/bin/build-site.sh @@ -5,7 +5,7 @@ # Default to the current version number for building the plugin library if [ -z "$TW5_BUILD_VERSION" ]; then - TW5_BUILD_VERSION=v5.2.4 + TW5_BUILD_VERSION=v5.2.5 fi echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]" diff --git a/core/wiki/config/OfficialPluginLibrary.tid b/core/wiki/config/OfficialPluginLibrary.tid index e6b392589..bcf051d3f 100644 --- a/core/wiki/config/OfficialPluginLibrary.tid +++ b/core/wiki/config/OfficialPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/OfficialPluginLibrary tags: $:/tags/PluginLibrary -url: https://tiddlywiki.com/library/v5.2.4/index.html +url: https://tiddlywiki.com/library/v5.2.5/index.html caption: {{$:/language/OfficialPluginLibrary}} {{$:/language/OfficialPluginLibrary/Hint}} diff --git a/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid b/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid index 88a007d50..a119d4095 100644 --- a/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +++ b/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/OfficialPluginLibrary tags: $:/tags/PluginLibrary -url: https://tiddlywiki.com/prerelease/library/v5.2.4/index.html +url: https://tiddlywiki.com/prerelease/library/v5.2.5/index.html caption: {{$:/language/OfficialPluginLibrary}} (Prerelease) The prerelease version of the official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team. diff --git a/editions/tw5.com/tiddlers/images/New Release Banner.png b/editions/tw5.com/tiddlers/images/New Release Banner.png index 5fd68f349d89b300d9885e4eba09c416623b6e90..253f51f45993e8e9ab14e086f48891bb073c3009 100644 GIT binary patch literal 108817 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 b%=rHSXMa^dcM~Tq00000NkvXXu0mjf)vrRs literal 18032 zcmX_IWmuNM(tc@>?nVUZdXa8Ky1To(ySuv^q(eZuyIWdXx<Mo*<a^+p^ZntvlxKHm zcPH+dxt9oeSux~y1n)o~5VC~0up$Tq2?l{6c;I1y|LNaoX9j^pIV6NXE4#0p<+x=l zsjLjkOn=OfzUaJ@ydXXzhQ-2yNGNbt)*gf{qt5rog0LV9S4aCSEH8+bQcc~~RCRId z)7(1f=9b4Xjc=O%kwZ!8yz}q#<+DGhlarI9)AU{LRWe}(j&GaYX`dWCu>9y@t6BNM z&x7)^eqyYw*--1P(ISrEAIKbQq+mQ}EDXb<q5*hIl>}MxP}SMK)@SqnV+3dS7b0#? z`>svSzqdNh`-iL=PX9VbuSXv-jVBjShi01J$0f4~@CYRPUP%aOTs_kH9NOu*rm*?F zRAA1?X?mm(l7d10g3PA>V2(dM;YUi@NNMH-AeG3^n%^|e&Z4nL#h!lU{&dKeoMBl& zV^nBymx=W7Hv^+)lO6)}2NDtr^qZ&9)K7enxHO^H+)3Z2;X7-vs1ww(4fi`{E1C~O zf=NTdb0=AKhfH}XJE5o`XyAA=#TK5Tl$TF*KV_a3aj17tG9n|y%;bMf>_GE0w<Xiz zRrb#k0HNW5K;}e2B^?q5GhDI`4F5t!hD>J^rHgXUb4cX6+vP(eKp=P|5J-H^X5RAy zBS8$i{-5p0<sxh?nK|3ouX!I#Vc&i~U%c*5QN)sNLe5x?heYs!MJ0&r@VJ&t8VMw* z4+8bd9vD=Lm!{Qp%!|}4g=1&<uAg528}~>j1^M@YK!FLmJ56Jrd&ONndQ#!3b#u}U zHX_{5SHmgk^#A!Fz!&q*gN=_{UY(e%Uqd>|bYSkqTRTz$>UDL&Dx{2C6#Pj86o?<x zy86ekPoH#FSInnZq#qt}vC{?LrkGdGXJjRdX^<%^sbu9u&N4C?LWwB4yWO3A@rhxe z1Oayh+QTW=vX9uFTS=0&Q>+4Hty~B{qtMN;P%-@aXiE9xtIhItshq+M?%S%&yUNj5 znhD(X5?_u+MJ=^Vi%E!uEaYpz$IHyg+|9KL4z}<V0|dg~tFnVdOWOnbgeoil4T&C= zOKA~KcJsx$ev>YBf_r!PSozZx5(HdxJT^s+si%mpkPY{-{HOyZ{>@Ov({{h2=l)l$ z<M|azW6`NfR`yEO@EF-rbUz#}XzTl!t?Qm|&?{YJIkMe}VlVd?j!>`H|4VJGeex!< zV?gxeC_+SHduX5%`y{n!HlBZr^}ColL;qvQ+<aDn#pZ+b!@~0MxBMD8tSIcvbn4E& zrhMD76vEhY{GTk+@RJ8(QHKJXhK_IY{YFnK&p#8csp{b6<oTR@T|+=5kx@=Ld%}8S zy<|?!JVja;7<)d3&QagL>O{@a|Lw3PQ$FlRux8Eh!f%}U4KtRbtfay8?{D{^nQg;* zKrT6UeBPLj8|%bX#}cN95iRp?Jsix3e2y*J-K|b(*@(3tT*fH>({d(q+tWsp!TFBZ z!C7Cb$-O&$0N5voF-VXcpZ5kFB3k5GB_e2<nBePM65K>Dhg*p{$tP=D5;4`SLHd!B zXT50qwDefn76oVjK2HIP%=|>@=sN2PjQ|t?0Rl;Qs@hNnjfxUfO<7_7DPo>!<S4rA zCnv^qy5dp2dN=jehU<C?k&CQ^5^uIu#D<_URhkkR+c@iJ%Ok@1QXYbm^KF`vf?=T= z4pV8VPqTJR+In2~cN{5X^<@;p#t~dMlKe66acJ6=t^D*qshaT@e<ZM2*fxF`H!G8Z zdi4*a#@B20$(fteR+o$}TR*XvvS!B~leE0GQTF%ze`O;n{XmGeVxpRI+>Wk(@eM;j zeYLC4eLs%GXz01ePw1GWm4kDq-rH{+|5`}zBdS;9mP9=vl)aOV!wvY}OV2E1Os`4c zYQ*{M-vsxnZ1AD(xP{B-^<ARbl-hTu&VQ>QYeuBjPm7+j>ap@P&lotPjxN2Dz?TrO z7S_oZ^KMn{a<oE9C-fGfrW2hZH;44N&Ha&WB}L2P@>{T{)fhD9B{QtF_v_^HJE=3w zk<m=I5*<-=9IlN^8{sX(2~4^{I|91P@gl7m>LKM3$bAEFuU4lr1NfE%va?DCa<!FI zEh{_W4#n-tB?B%^R;XGq5nTPvsPliP9Zj8iib`Jc<UK<Ar&BB*%MqTxE}%zK+F)Eb ztxLtYBAB*8i?kA5gqEawt?6klOGe4}dNXA~AKW@*wwPN{JP;7XMV7NdMQ3*_%rD*a zx^QsE+r2b-@vo2dLbg&UH@J5^!Stb0I3FX=*VBIkIyREad^I%}-Y)AAoY%rEn?Dy% zHLBm>*;rw#v{e#qTEBQuqm*n_G98PhnDwdh_)}Eh=|UaG`F*_+9U((HfmjV++MY5g z8sIVFVfrt4B|3*}iWhy}=YOl4!OBq=ZTgM%DI_>a)$C)8DBZtgq0*XvFAH*(o(UFx z4ydM9tjpvqM8mYDMW^S<D%^>YJhFw0KIf&jg^M%(5;akQrg(mPEZfz0#CZ;=-O$Hl z5xdY(F(hc82R%OU>s?;99a>aECALbjsV!Gg*M+B4-bg7O4Q%i}^izzy13WLjEW3^v zzf{PXU1?b`#w;O2Y^iGD7j7Y9%=il<oC+AKhFgi8mj<yCB}rX9%LOa+n=TKk0nyLS z#I36Hu3J{rcsrk4dUQl1C0Jt`?hW=zDS}rj)Kn!Ag$~ax92)$TQq7ekA`n6F(Y!p* z8xH9!H(tStj*s%;451C&UtF$uV`P2hLOhjh79-i{6_T?qz`vOZ*snPGrSK!a*Q`KL zHx{zkwf@G5&Yp_mk#_1~xC>gjk%m=O1zgAoZtf`$l4s!TJGjJU3>sBl_Y{$G%%BZ( zY`MD*Nu>>+E^3juX|C_ic-JlJB8ZDBxWz@BSBpPRC2Fs4A`GQvfylHwVsh*?PC|R` z4i~~r=@BcjC7~C?VUo(MTO1)_A+j!NgLXlj*X^fv<$hXwOs1!<SwMbWV0C?`MhB*W z00kuAz6R!;u<D|QK!}A}IuwJgs;|FV6|4rlnnEcQme8&2W$wRvIXes=k%^A!i5v;e z4N}l-h))Y-#KJ}a0vN068LjXrFJF<MyH{d=Zf0jrfP0L|Y94M;e$HP--R8c8$O)?= zt7m&x$ykStn{)WL!AJ%6`H?Uj5eVM+HwiQs{BfrW8HOhVn<+BbNeBfC5eQ8(n}aR3 z9m3raHS)@a_yZzC_5{~W*hgr%K$QCw$(H_rV}gZRm5S4ez;QBEJ;X`5njPs-@W@<U zxUcIKCNe}YOt>(A2k}RGGuJ~3iINx?_D8>`XsKF;gmQqOLC`RIA1pa?DviyDBY%<Q znqMtVUcXc~CW_$D+gKV+U&t^%2R;IU0ubo4MX>TVY9GqgD*KUFtW5S|8eL2{zeH6c zIlcQ0>~E{Ba=nC?R<+9A3&Ub&tk-sKX87@n`E4u`U@3*^Mek}Y{r5ays($=7p6u<O ziLGTiVh!?Cwkc7lpN3v&<S-x0O4j8()U@Ot5Q(^C3ip8kLGHM<#c0Z**Zy6C{Foqt z_2XT|5-sLc9*!3z#lbC(mK@)ZH3nb7yz{z)wS3xEB@Jb(qP3Fcca@@v6p<=X=l-E! zAc_vzCBZG(ZdD-#QM1B1C<M;i=MdZ4YW%omKjw7jT6aIuCEz<S8XQ!0AeXV78ohv9 z%B|b#k}AF3Gw6Gj!N?)QFJT2$oi_J;LGuF#^$+t9_eg$4&7AmvvS7m*lXjJh$Fkw{ z17U_tz{9{iWfHPnbo|VnsOr#ghQVDm4YyN3mbiqKW(U;7n=2w4Fnr&S59l<lxaj8A zm}BynTvpW)u?)N+hDw@BrbqC!C){BxsM?e(@2~N@qhO^s<oZoJRtrwc(CcNRcD|Q6 z6SOH_M{K9#RO2hJe#eB^I*!_!wK(j`KuEU+%;~=5)Kerbge*nP&cDU~SjcOklH;oo z{rv?Sz8Tv~oXC=OL<KH6hkS=BuDH15By&s?sTBqKT5tPBM|{vIfC8i49x+o~au_J7 zm6>2b_mDxKzxZ`2#=ibadK{nY1PYyW^pb%aP~4t0$igN40^pG5K5-5<eSc0q21z78 z!h!As(CTq8kwIwb`)S(KR%~5ujx+->pkLFZy59hp7+{gw(vT~^UJ6fB4)O=teDLvW zgiLz<JQUw?cy&SM{0AK@2u<G_hv9kG8G(`z(A%54NC~>bxTzl?kVdgWo=+j@bpW1Q zi?X+&Du+TT)HWn29&^i;n0P%U>P^=5sUNE}jEy!f0nE;!u%HoVnEe|Wjkhz>E~zG8 zly{dtZ>(rFcZ36=bHWz)tmX6Oh{N!hGjLPTl|A-BgD62HxX+d?j*PZLApa5!^petC z;xFZXZtZ2$+i^<`tIiE(Hk5#Lfin7{ll<hF8xB+ktm@F91}v-aRM+aU{K0z65%b^A z?-+-Bh`i95!64|E9;6&!>3RFDiq=CVXpp&i3OU!;OA1WU+qnD}-=)a0C~rSI=B$S6 z6Q^Q8RQdLv>+UlZ$;k^U#jh^h%9Ai4R%s0b_?T1Njl;Y=R!YgWrxi7IA79(@2vKQP zP??%Oqte|BAz%r0+=b$m{WAEVALj3zCK_(aofVq8zveNFA$;A;Wy0j>UW?ur_?Qt* zaJ;@OYXm2zc)-p+Cd<)kBXM~=J{uyDZVr;q>WR*L{?K^r^Iqc=!5F*}uK<Yb+WN1# z=|Fy1wFx%J9ra=aouljJZ%Z=S>0~8g%1(Sr%=m1Xl$KVfh71vP^cguw`6D>URzSEl zWk=XLs@HrF84vWsFmw}7mZ^FQ?Q@&ri(X-CfawN?me-D#jge}-n(k}P!maa+s@*}r zVq(ooi4RI<0;iP^r^{faEu!#6f<PNgcxFp80E}m~GW_<lt^DzY9;F;#fH(2q#fjuY zfAR5I;iKsg$B9c@Gpdd9Ek@KllR)1wA}A6&9o;RbATrl2X^_N^0hwS`7zEmkPqQeg z9F8=9DWOL%<1rBaIN8OJ`ijHt`154ed4d(aqdz}AFDfX=@blMf+Ycp`+I-XWs3pCH z0S&&BzQ}5Njj9PU!K~&W|Lze<mYKkE2Qtb~D6i6(xUZ39QF9dt!(++V?gw4TcxL&@ z!i7roNTtp%CzX=YU=X#4zUTxugR0iITj5#4szW(wkUX-5glMLp7m*AxE<>Oj7tEvU z@FrDEglom|cqNmV>%P7tgy1=(QsXa-8-nI4*G7@Bg;f6@xio}YSV=i%h0jeHv{4M( zuv%O9^&LORas{~-lJjI+8DU=N&5VC1at@*ThqhiVs+STTpz5j3USBfH{xM{=G?$+S zOVfi!RP=`?x=D|ljImJBeIk(5Z7z8nW;|&}5x)k+X6+STVIKXgUK52w`nNOwE<xyF znMb6-O^0$a3quS*h*1<bMeasH%h(`j^5?eYqmWV-b09nM)K`UcDQjrs1KF?oZ|YF@ z4?y~NK!?_c=N2Zf@spJdnm2vXgp4;)P}Tn$;x;hTe1W^<>#uFLJz@3tdc{ejVf&wP zCJRlhsa#~S*gnN9<{jl+tjZBtcmhn=c<GWG^V6ck)p{MT4!n$Qs0MwQ(J6$vc3d$B zyP1(9gdihi|0LFU+Z1Iz+rx?^V(t{w%t5hEYs$vD&N|w;U7p&H6){B-Z21kGZPLC_ z;h;Hjk5y`xg^x{1o^B|`tw}qFRY1o07&R*w{qnCwv15O-pG>6u_E4OU9~D&eZZV_5 zdG3d}G&N{MM1SSRPuUvX!NYH@2=a?<NrtX&8V!HhE4anSG^D0lm)5Lu6HYWTOWZ+5 z`CR+MpTxir=HRMOBoTM4)DCx+fxJLCI)(z8js*mM(%Jo1*zKztfB@q!h=>HY@AyTe zNB}N%u~@aXxc~iZ0<I%9)A(sxzLu`V*3x#Mj<&;f;q%`DkotN`2C#L7&1%;%ab{1M z5|F$$BGfPxXes6IpH4DqO3=t>eE@F>=|V~?*up<wQ0<YKh9Ei&iXK6=g$yoB<!G%6 zuN=<kaFL;<Gvx~SXv&V`QbgI%#Lo1Z!3CPGj(jUN9KO5eI6!Ye^rwdoZH^&j3ZP&c z71twX!U_2vdX12_?uvYI=R}W;3zY?64;_AOYR1<rJyHc<S9bUSUYYp2)y!-RP(FB8 zu_lBdMGU~_zk<%BgH4yuip|x{CbNysS^bHXFiV7Af-6_>T8790#956P3^g(#m}7wj z6^|k=`Td=4PUi*1$Mo1Ub5~9IXDNfW-sNSR3{(=jNF~w1=rU~g>;P%v;d~db=k1Jg zZ6}uH;4OwcKYL|r>Us=`7-&RN|3TIrT}uptl4gUn$%wnLsk}glQSE_Y5*1yplFm2z zH2xEvNC-JLAvMqWURce{4m?N$LE2i9Zr&XMtZf%k=~GdQ!3g)EnX&Q55B{x!!Oz-A zst^8kzrrF7eEOL!K%`UwN9+%+M(REY^!PNC1oL#!6Q(yyYFiC+Pv4Fqy*rMBr{7Z- z=YLddA1Z?IkA|lF(0ItfoufKHBOH7*LQ;XLw>V<od3e_Aci?x>?F1rxA$rLgEkjS2 zArKj|8aWz`9iGE6b|BOC%psKe!#40K$O>X!8`r1(r%9U6@PU#NKL|vM8KBYPeiXKu zO^<`EK21!G=G`HXx8d=j6vtM->2BGwi9bb_Fs&G2kvCf?ZZqlQuU}1GCBspvS8GuR zO*1nEjwe4qBp4p0&~-ZgeY8CjDz|A((M(Zxlb9L>E4XG#6zw~<KK?ZCq%IjE8{|OV zaNB3Baj~N`O-hw6u?*Pm;hx$sXx-jK$JoEW`2NEZ0THp2(csDLgF);Iipx`OJXonQ z7>4%zBm0V=0(vhoVP9VRS*D;72C8jaQ)2`n=BC@d7hRZ8gm+##3l|P1EXWZv9s8u2 zL~Rzq$)Q<5m$7D#s#Gc*Cc4$J=(}oPORqtUKk;&g5}p1;>Yha-#*oE08^%yhjz(Y0 z7Z$0XRfPrSec|FC41&DE6kg63FcynrWW?1?YDJtKOcBQ0C=DD?K5V6<rh;*b2@qHg z*<>pjh5Cp%hE9Z37}T`Us#Ssf5Q9>6@OVUH^5Q4`%8CjYhq+izm%c*06UFu(s5j^w zc#6|3sUATRcdY)jy#Rp(-c5|%Ouru%yvJpn)KlwgX?KnZcA!)Qe$YC`1QTy;(Hl(j zx$5+_gek-X^YJ!o_U&`$;$3t!YW5AGR;GeY_2a;`1ghjlNCG!?@eALgYtxz65;FJb zsX8^M@N(tVXVcTI3Wk2qcJC2*_v6m)e-^DMmeQhgh#tJWqBmPuwb1-vA$`yGwKAc( zt<uUcWYYI})5^Env^{CdXyM7vHzsqbQloY!Z*S*v`tt90?c<w;m%L3q&pHKV(fvzv zEmQ2zBfO>^lgz(X)NhXz85(WIzBTR)361ac4I9!_a@qaEOx(vO*=*ayt`=YaI!o}K zf#Tm&1+3VwE*KyO_dmvgc7cigyRbZ~8BsYN5(LvIq}C5t!)@mvY2&i^yKfG^u|O?N zCayF>G~>z3d*Zd6HMO>OGKza~2UH=sYdPX{wR1iMC$-}`)e59i>dGK87k(}&6Fx&T zUb@_w-vg>Wgr{xim3=M(&-u`sS|H=L5NAjz2toZ{k=3}U*gsfMOXTBFz8cc~z!?a6 zabK8HN?A2QOnPd==&xzqi(u6*1z<W*=I+&^B%+?ylJ8aTO;_XX;@R^U+&RnPGF+Wb zb71bU8Tj*OJ}%Kg29ne)K%>zB5gHbR4_n#YMH7{{6H_Neb4x))H80<pvZ+grS*t@d zw;SV5wlQQxvu)&%Q_xO16nQ449rm`;WUy77y<iiCxS_E-%>Ff<M+^ZWimx7+O%~c| zwK_%Qx3jkFaCN!fAn_a*yw^lNe4CkO$ImXFTf=Jg=RP(#|3K*dqZpt7yo&-ycy%01 zpd~Xul+F1uW*mpr%$qaTd=F}r^=Zgn;V6Tp$Gw9y>YI}lAwvhbEVReV1JUePh}XjH z)4L^J$&}AJSb11cEEXaL<9`3}CNUsh>&nW*?-^4RbW=4{8jXdB{>)bV6!Pl|WFP_w zVnXj{$Ygy0APju9T0gR&i)IXMQ%qY!<IJ7fj2Td+4}cK7u}?*UE2ibscRT$B|FER? zlN}PoDyE;i>Wl#e;r|KBD<#u#G9@gHQM&H{9>`umXwhqaYC?jNryRJlX8XP>F)}Hz zAW$4+y(cDc#>IUxpPg7H3lNGib}1+oncAdx>Y-kb5#F%{zZm1)x`S2l`))W72#~vk z{-SkgPs<;H_i2%`Ly9`loum6yv#)_bfnE39s82;wU?Wei#&)9O?AqI0i{0naHsKJ5 z=-bjexcsh0zAzNqNgSP0C>IhIyNCoAF{|q2b^z_4GXZt<=$c=nBbzeUEuM$n-3fWn z-i|Hu$(BrG$mMQPfkt3Yx2CyJlk(3hvClvuKWf{GZ6`iaA4>=~+{wTr(Mc5}FAGDM z7?e*Mpz*jibjOUgBoWC0y$d@{9KQDn)@+j+t<x~GUB>?6+MT(z@>#Rh#yNTQ@nUI` z<onf@;zP&m2eE)HUy+t>z^jA#1KZbNk71`fH6fq>wMIVzRgt2Frl;rc@FW`vg)3Ge zJd{$Mb|{L-yRJBHN~tE5phC)gEo%@6``tu+7Kfnz@jw?eFdoy8bn~%hD)qJal~yln zD{oSTinHEgZlUlCYfCVfa5!Vc0h@BZq%f!QlYJfpaOU%5U?Qzgc9QyPdcLkD!F6*o z{9bWRl!Fz=-1sw0Ydc=Z4L$bR5(crna}_K~(${%*4!}5fDg7oveFBVh01XLOR51PO zVh`}1209d?e>L_!sYq;zMn1OzU}J9l<kQja25&82gON#Fd`-6K$aIhshO$G9wI^@Y z#vQ(SfI)0`GTr#LEBi24l~!V;7c$Tn+F=UNs3TQKxk$@fgu6qz;@rZ!Cdl+uYWS&Z zd8q!rBU3I%bM;uq!qenSYQgZy>RlA!gnUv^512mNGe<NP<LZiqqGb~V(qsgmu-6EL z1i;Gzw<KOM96`y|D}Jy^Z(fJS$ICIZa|>fuVE+`3F&x><-`0p|V;`6r)ni{T#<dt? zP;RMaAR@^IhyxX1LDJ!ZZJVYm^9%1CNz^`x*Afdp2}=g0nh2d^2T40sxdLW`Hgsq! zP`lJH`FWbq+^otMALxYw$~S?m_eF%J#DfVnQY_lAaxT*4?QFijms`u)b<jF)R~lOp zYH=)zpP;PThTaD-touajJJvN3LK_$mV7KtnNxv$(BOGA!N}Ze(ILepqXL8064)<0# zi~oLz$xYw;2u5nIh~H7g;Bd88G3-^v0OkLMtT#B}hL?^<Kr$;A@03I7yV*anr-RH9 zCZ#F0rZf50k`h=-z@cG5xr~U!@^Z^ryZvGKpLqLHz5vF5Hv18EQX<(qkLhpza&BoV zwB(4e$IBkC1cVW%&r`|Qgh({J>K|J1Hn;b>kO+1Tmw&hZL4nL4aAvQjbB6?>(|VAO zFd6Z)wxdL&E8j~d5Y0Vj?dB*xFHO^aR8z-G4e0h$_=*=`;Op2XoH|LuRpr?~%ev<G zpY8Tz9kdQR+h>O{>7ML7|4lS%v#jl?m#2)4Oq7Lk4JYZQ`iD<}faK(?R!!fW*y1;j zs%L}^3;H1(u-xLp08KdpEn2a|Zg+FP-Pj@%FrUtt%djc9vBY8Gk!^i)>#CU96Mo7v z+%jGz$u!(IQclPNA{~L=@8oMOI6xj&dwS3=-`wbV;mTcOXOt@Bv5P4Nif5YhRut;c zp;7a#UBj!QVt;oV|9KZ{J4&~TMi32`bcx0g(^ioMNsU7GYY1c$FaB(>_e(&tLfbT1 zONIdXVyB<c&E{0p{DJ;G9w+(i$U<_AG0p7j{t>zaqKHzLk^dlS>ES`Rb~nB5aLmD) zm(6llC5ma2&eEP}j}bhf$4^%Z<eK6psdKc^HPxR%{*o~Jt!E5z0SU*(yguI1({lfQ zG+B>kZQ)+veAYh>@FH}vu&R`S%jMykGP~iFJ)KM<n!AzOTbjRU9p>e*T>DPns6bW* z9Z)Xekfy~eUGb&jM->6kqY8+KnQdQ>ZgEeodEB@@Bwf$i?_av=qy?|_Q?V?}lM)fF zmQ2tRe00oY5Kw3;`q*9bck=J21e=}lrC;i}<;;8jid-=wJ~0Gb{Nj?olj*@odU=kP zY-pAXvt2i3h=7U|^;oYo?L+BVOMtbjH`J(nZ(|_i@R48c>-s7o=jtL0Ipmj`*gdz7 zqVv~wnCR@M-M2kI`aLvgvmdDI6%LibcZwmXwDo|S<Dya*B&A(55f*?L@eeay$_`u7 zm2^J^@qBnY3iCZ5Sm+Pz$a;JyG1N|DmQz~<iuEW;X4FZ{<T6Q+!Jc#O4V&e+nwC5Q z=+L<|x+n%?@CZ2x;1v-oF5p4=B9QeDP<BLRYE(y5KO5uR1r`I+9$QJml!IC}8}(Ns z?e;|l)<!(GuWlA)^0$QSw13MSKRY?_v}PX+et{toxC({rTOb9qF)KWM|B$AV-XYDR zY5;l_v!BQDqn#*_Jk;3bOmt9){%JhV#9Q4qnodXCNy~CJh|TbQ_#8pYM4Ri)YeN?r za%^1hqpVjbTAgw=Jihn&19;*{?av5VQb`;U;??aG(ONzP=mv3O|7-&tucTmv%;U?- z<F`A=tAF<8(sgLK!z%V;wo-A^F8uBx{^MtN=hk)@KsE-n0_hcn2%QRLCBU<4!%-@3 z3J#}9rFRpnY>r%VwvN;;u^q%?LL1pXnTp>@PpW2WN3NyZmwjRdoCEpjlnQ<#N8w^I zPEF4DQqf?b<TPdpv;C9>Lq<Zyx2%2<lUbj(n_WJy%(?z^&Wm9TIYDNp>w$pH@$=9= zYz>`;{(T!UkU9w&%kRd%hiu`bw4DX{djjBxWrG{f4!f8_Lhk3Vp5@=k@cJlT6$w7K ze8E(xiB&ARb2%I>s$AQ}4#&b!q+&G=Q;%fGSh+UGB6*yH(S-oM2ossYA$=^oP^0>L z9->1sw~lv<CG(M4te_qN$o_BMq#A!hS-+d9N5ys8MqJPF!J&=&<kyhUCDPv?#3eiV z^}w9)rj(kMdzb`yx5;gC*KLW$^wNTn)QD31RWWM%eoNxp&I8TK01w|s7F}#S*{uB) zd__6sysq^pD*Nh%gq_bI0?ZmxIA6co38U=z(Xy}ayGtkB@v4srY?nN|6F08iGp(l@ z0e=xUWvBVBOA{v4<E-_Y|5DhNRhSx;Lm@2aUPM0~sCY?j!~+h`@|L+(sI*jHfC6wf zan$9ekrNE$g;;J7&ri}3@S?Y=Soev*!8Xy>hO>IYPq>(_;}HH%!Sj7C`4$NQ3KZ9G zI`>{Vf$XO^E^fj^@<e_<mA+C8YrW5yM~;OGOJP3*YU2_(|8^Ln^}Nfn{dIK}#-=}c zWqY5u(1@xYj5Cn%4j#0yTL$+i4>ve~x|sb%&N*?!5VQtBpcHtdeu}YTTX8qJC_7c} zkoj77iXFHR*ltzi#OjYv0H(%v_(ycOQkyclGth5wn4QR&c2!lQKt8O>c93p~i?_dY zAW6fm$V9XDFAyfF(q|_W8Dzg9w9<O~MGpqj@jdBMR>Jz?wUBA{3XO}=j=uo~oTOwY z)%hs-os$_e{vyZPPH=x`Ugm1t81DR1S#4aHXbf8Vi8iM?+7EZU9MvySp21tdoWJ9G zz`2yIR2Nnq?%tQx4e$<{pGx~_J$@Hg^!!=O(zYyiufTR(JuLII>SR^!UCaX}OMr^Y zYA?o@hU`C8&p-#JJGb3T{0IX1(>BMeK1l2HujF0SN_!bm9Z47!H5YKo|I9iV!^F3v zu=b%{xATd_nT$tq-A}e^)dhFJ99kr9G4QoEimAIcABe_yEjE1<at0$Hv7GIv`&SLv z)BX$h-D<Ib0zHv~rArrQ9WYkaia0D^bZGI?m0~+JI#cV3j&U+~TtRDfJxf8;Mx<=) zb~b5dn)mf_p4D~Z<yU#{Q_|cW)`Ckx%CR$BDFvxuOTpmXirD#STA#-6lx596Au8T4 zkRO=6nSRmpueCscg!G#p)%AH7)~TngIG_J+9L>r-5|N%xI_+}8>(%@g??pcGuKn~2 z(Y0nYer>E$V<Szgm$}+sd;6<`QT}UT6t0Grha!EDpMMA~K3^Ays*CE^5OCH}J>QG$ z5B5r`S)cam9Y?p#y?3r}lla{xZbkNfh5kb6QQWBmP~bPlL^rnsPw(SYt(0|wR3^#P zl#Y2c!eZQ|rbIh}G*nzzYr2Re&@L7!3JAWar{nuJxn4KCnqf*C{>|wj*G}jooWwH< z9IV&lQ_D+?vH^=;9O4~HqG#OGg=6M7-WvzQjI}4>OnRo%f9w6mG+?AO82N`7qs<5U zI#@wNYgJ+!t%TStjyJb3{uiNk7F%8*v8-;iQAZK8xU&6EMM(2>+?;PQWQ-3VW3DI9 zs0q(LK$I|S@0m0HGtwcvtoxJ5o>t7m;AqD|rGL`sJh{c+m~zh~)8Psh^u34oCP6@V zM2UUmXK#Y7!1#hov2T-3t6kfirzGP3!-p=Sq^vLz$*yV+sN^ifwDkjh(_-aim)EMt zaY~I~t-fWpr7cMZ-vnI&5!BuVWn7ng{3}lXxV7z~sD)1S<?;r>OyT$Z?|7&{9|v2j z_X)ZP8dvs_a#6h!Y@NF)6@q$LM1=|()(X-o>kp8!d48XA0Ms-}m5i(T5h}CTH<gb5 zy&sL53kO>D$OOdSf7Tp5XE3mLLIwa70{dd%)$a0g$^Hp-UK;qhlD9QAo0}TbN}a(p zbuyM9G`eJ*@MpoQt3kDmYwvz50iu)C{js`6ST$9<@)R~vzY<DGuN4Z%&KK`90Gxa5 zAnT3NUZ6vHaHaUl9Yp&t7?qcFwuWpJIp|TKZ}(a+m5Sz1x>~sVsS@LJY!kgZpR*uw zd&adOF-56M#~7hS`RyUTOnu+3d-*3>-epFhSOKKD_m?mpA)k*!uMeMu72KsOx`eeG zdJp8D*VH7AJ2=ztn{hj|=4~%egK^ZTZ()E;#xomyzqYGtf(uE`<W9#qQGKN+=~5>9 z5&oAZG^sd@=|T10`$rxIHA%($qZp|Wsr9l{M(IC)JsciE<>^=@Qd(I{1BMs%86;8u ze4U&W`nW<q6nA^-uk*=mc=NB?Wk`sZ!-62MYP<Cs^f<f<?G(LPo}LFkb!RU<6z59q zp`KxGY?DZ6|DIHW`2Ixi)T64$c`}})JX-s@$Bo~2t9qAUU<%T3nEenC{6sCT6QNH~ zCdZ(kMJdtu)#9qjoz`UR;1&~UHrVqISHIVU;}Ux~9+P6|ZEq{<i^)Q`_?D?>gIf)M zht(W3A4X`@q`9T&Ou1_|a*9B!h=rb%yOfK}|F9^-hJmI8d;ir<Fh*r5QicLyF@cem zoGlLbjqRns{flkC9}Fut<f-iX)w`TzNQjNwk4azZE2Z*Kg=n|Qdb?Ki?#V%)HA-A* zlMWaCn_X+(-1wfnmGK(dQA_!#$_yG_h9VoakhfogBH#>idQMTIdrmLoMYVCK!Vv~q z9o#H^>nbnS+!qSG9_2l^H$Hx#Su47jYeqcE!F3c)I|8_Ne5&tVbAk!m6MIBnc!|T* zj50BPxZkKJ45#O1UTsI#Zj_X-8t1Ms%-b8Ap+Jj<db?E&*uk8~0}DbAU93W`<urE@ z&H*S4f)MXq4fA{_`du|>?Ps7pJr^>JSgv^=dvd8N@;`AuorPfiy@<ksW4?`?<{=?{ z<9B|p|I|Ya0$Sm8Dj?wb1C|>fBkBV@9jcvAj!Fgs`~yg`<xp@HW!pwiIJ9FKw)ll) zBDQ|5Fy|VYTXKFcc32h9)x^86e=l!jGOlE*nXh(43P$d);(Tg+7sR*#*zeOAz*3;* zR`etcg7Vn|3j)npS%4_WL5&&{qL!2SxN#g+ymhr>@;F39#W0HZJ68~O(n6bj1n%JD zyjS*KR3enCjX3u6&Ivw8>WO`P>musl8L)3bw09Fx?e7H$M=;}QkB5BRciH8Mc4kYX zI+r=rQIPg?IT<`8*J?kl?_7GQ6xR-K{mcP+5T&*p``WFw6lNq6#6gHe4|IdNk;CT> zH92#IU#M;AT{s^_1BPcIHYln3gP8$-(vCojgT94txRR!^ky0cS1l%!WCOXrUMrGAY z=oluGUBIbs(ud3qkDVKhK<!oL-&Rj&S3~df=BoRj)tMJkHge9$8arway!IQtC1ve( z*?@M&3{W=wSZb9faB*da^J{2ZX!TR&k}CLBcgnES*CBB5Le(gAy%?o<Q=Ga#79(xE z_$o3Q|JrlOXmHTT^k<3RSjqhY^eJvN$i-z#_iI<4gf;7_98h-GZ=^-fJRT8Avi749 z^~mk4r*MWj8yK|MDR#LkBkO;-)3=s?u%$i!eSmGb@IY1E=EgZh^v0TWFHMz`4D{Qs z<}_EAKm{@_9QcV`zVRsoQV^&sIEu_Mze-^C`r@@F@XFNutvd8|GBDW^<j(=KPXW-f zdhXWPm{X%gUy79NeBRN#-Z}`>gLq&6UB?!-O&KcRGr$7@65x+w^6`WME3do`ex+Rf z8cep#>Q=0nDJB3lB2FY;;Q>W7;NPuI+<?n_UCh5gy^eH-=?n(Aa{n<H(+l0#_57aB zh43?EUcJxjQtyn+H|@J!%5y!HSU>)U2--ko`|~(Xe<M>peb+tckUFjwPEZB%iW(@w z{c@X4jP^YXoO0keA(0vU3H3_N^53t2_=;8cP~Its{N(9GIc)d@As^J!(Q!9}_$Jif zxzat~%83(N=BzyNelyT3y%Cf-40O^Y4#M<x)i4Z^@%%u^jNnIIUua;j@bK@?rth@C zHCDV6)AGAOL<i`rtZ5U<Nt-Z~Yt@CQdSXD$A`&NE?TvMZxNj1`)kcTA^G2J^r}X`+ zKy#*%B_X$wCQbKVyaY(4MTk@Ud{mBZmL7KY905go(9xGYQ}S&-e(~1oL~eFcfo0H3 zmY(L%l)UK976Tf67)#9XkO9kgU_eyT`+Z~Pn=?z?<<HuooBBWEX96Y*iowH0)6XF- z<5vK`vg4r*paY$&1t1_U%w#Mjw})J>BAOITD>)bCp2pr`SS}>!mZIkob~l&V^Hu3( z(q@`%x52(%QH6(>S!_DIOWQ+zAg5LM-ab&4>bzY6GOi~ehmML+OH01zvhk*uv2JCX z2O6MG$}jMF-!fmDW*#n^LAcClAZU*FPVDlS+wv2pER$_s=v6B%gLJ~8gAaW1929(M z=U&JDo2_PlKWBDctJlvEO3REj9WPE%Hf7r9K)vz;RqPADFrL)Rw8;7s09|Nfa7ZFR zQGU{hk+my0jijy6bdMO?c#cpD52yRx-ec|}O2Bpyy|fY3{rx8<QQpFh%BL7nud^!z ziYis6R*ZV%&t%mu`TPMMXA5D#^*}RU*~VeY9lKERb$$pIBA+Yo&mS(E4%V5!OXUlM zNV=Ol^f2q>rx`AFyKe6}jKQ%Ku+P|rE_o?Zqp7k7iBMv34b;R(^2n6Reo>Qeo*|^J zv`*fsXOU8U-{swcw#4&V!=CTGU`lNrjZ!Tw9l0kXsQ(qXNx663_t_U0kCL)D1(@!` z%Eo>E7eo4~ymHkq<PTvxnQ+G#=}UTpI2fSbF{pZsk?q+y@dNk3_q=D{^{CeSZk4i| zM4nn>SPd6x79^yV4Ksd1I>&@<UAt@Fz0o7Rk<qKe6x|YyBE&~ecJ2_Gbza2QRFR*W zV;YoQAp2J(h-!8-JsPbIFsgm>NdlH%j<=-%YY2=3_`<@-32jM4a-KS(-!316S5Hc8 z$l%$~R>d7G&XlRZDu|4cDXdF(D?lb{_5RgJ$M$DnA_~NFv`nYg;ySo9980FZXIv~~ zH4dzDKCJ|x;Z0TiF%?bG4wtf_(|Fmx&{O{P07r|SzC`j`Ru68VaoMb^UBT>R4{#;E zp%)q0*V9{PUZL(Z2P5Y=NdGzbV$BSJj<+GYeM&o;f)w`CnV=~#v93L$79no3uprj$ z$H?;g5nX*wo(QFHI$G33eh7T|uST4&PuAybo8)1rs&--AckMM|^XJ<KzGh+>ufvZr zzQ2%U)SbI--8gS4!H`BSlBFbW(<W^@y-E$gBfcolRJZS5{4A_9|2g4i!T`?JJR^WJ zLY|p*iYwlFfICJ@=g<uSgtvaWsejjeMn0vvWu2cYn+;Xk@uA6t7oi{Mp4%Q=P1kVG zPMN)<o-errbdzWzTU&NBhfvn<=^O6z<0^aOK}w!UHI-{g)y}hSYE{n~r$ddFHaad{ zHV+rdCcyrK08u9)!XXMfi7u(ft9Ifxx^GWVlWaR{+k%!W2FM<WW!}Fhx11KwnFAs* z!Rf^g9nNHU8gFTkR(<)GVwLQdV0487HRbiq6MoYmYZ%kR=)wZhuP0t-bIY+8Ao-}C zH9vfy1!eDGuGOUVuCdp+IQC0wGrhjsxtMKli`9Dxn`@64e7q0b`j0L!z=MG2!>M4= zoXs(~#2nu=y6v%7LWY1CLDeI>0YF9Xf_hUu%Ev`B#dN86jWbv)+t@HDYc4540I|aA z+T%6L*D}%fb1u<+mX|D?isP~8d9G%YTyy|y=JcLDo0eq$CVq<zpO%}*)~g;HW~@td zcXI7!f;ARhn&z16XEXUV7&GyiJn!zM^iSD|0Y|!gcoh|CpBlL3mXlo7BX08nV8jEn z09OQ6^9AU?urD%56r<Gxe5EcAu_(%kZ*>W>!>6;0i@Q#b7j9MNll?SgQjvRool;G1 zTU8B8kADb!d^=#2?(QBp>a?05cQQi;ghP)m|0|fmXM5!IJ%*xG*`e~k&)KnDK>ekD z`ZBDB?g$`pk-4juF5ClzuJOA_0v}ysEiS3g)3sX0bl{SB`_a27;Lsy_p5P&&1mkP} zMzA*9WLgF+&lMoBaFwRbF;~KhxbJy$C5@^<&dpPX0i+e4XW!<TlRY|cDm=hXd-aEW z9WC5ncq6>D^f~ED&zbE=aE?;0Vj`|}eDFGD$rW1&y%;+xb~_;JH54HGjUs>rLwY*? zJ`~7-0bh*U!A71EGOrjgN=v+j88AA|`lzg*>Bv|OIcN5S7>SX7j|Y7T`MS(kqUDSo zRk$HS$fVU{(>!?TgGKhu!Jgn_&5z(`%C2wJ0TQy{Z64742Qb{-+cC?YPhLgzU^Qgz zVg_XJ(JY#&cw+8kHjy#shdJrfH_OT=_81rCqaeL{M69t^C>Vb9^gfj4M`8Vce>7Tu zKKvGubot!WDseE|td%@>ftqpKQ~*uMLktO}Oa^}Q)x>%48U9EhNjsDt@uTDI|Jf4C zQ$E@wk&)qw)79C|MqFO^5K@4gQ#N?h!+7M)99jn}=|kiInls0=Y3R`9I^M|>70+Q* zyA>|ilk~&u$HM(=h2);(-9lUp`Ei_C!YKYhK@gg@{qzUD`2c|UI(?MRfgE%F&^n!g zb;1@=tI-J1)vilmu$tvus$J@T6%;_1_=I5p&s6pD=v-D~FGG8jZ`+2C(#an}yq?!u z7kX?83p>b|iSX8v$y}w|*^id8R4iTUZ1<@tz&>q10nMUa7V_MA#Xp~ifSzXSozS1a zo`&;B|2gJIH`J?TuNFJgKx66Xg-g4cga^^V@m*t9zWl~-^gEu&_=O@4kSrB`(Eqc( z?1df8+)YBrIolqLgHMlVLO!`DQzGXr_3TSd1`Zls)EWP7R4C3oDZhwEmrhXp%ej$K z%zDcF`*%rAUmY!(5}Z_70Eh(GPyZ`<9-0uSWd|a8ULZ;je;Ch+U2d8XxWoZaYKhz? zW09X9@XFx=7X?RN=vx3iW2Fo|TSTm%*^I@pm5FhQ&P5>>K`Cc|2AJ)C?hG^cuyKX3 zgAuF~DzM``5lJT1vq^Wy)#m2e@l$hq-a)rK0)8%{;dGyfiIKnS_8EA0K`W`RzDAOh z7yf2E9S(QcNYJ3(Fec~{u>~jDVfv{gxiQA5iB%pa;rC@P&qW=}!x541s(k#mn7JY` z@HW`B8#!T?1YY$nIf|(%-gC2~|0ta(ub{~xDvo)vs~ZT)B0yuw*2a?;c}YM%tf#~0 z7s=~oggfKRp5w@*KRwE-=sC@+vBuCXFTz5GQPD}hIUn7mfRq13zz`}HwSXg+xm)0C z9kFT!pP7b=&o0G+U!d&#l$as=nFRsRK6HZ$sIr|QB7(pEM{c1D)>eEX$T^>hAyc{3 z!h@XRfp505!`Ym)k}f*{??w8+(0$RI_J~&r9kL&pchlno+<!MgG;Uyzna)VA%3)Qo zn?eY@u}H0JxAQ4E9*UuZXtql_{G-dp>No{ghl#f|9b8|t;m3vgwl5+Nr(UzSDBtk0 zu)YVcYTn`ZA5)p+kh9X3QK?FdsPxkXc3W*b(NZ_v&bk#$;vIVpSIGX9Kpi#xsV)Wo z|7~{sa4Bc)Iuy-v^<~S{?7c))Pnkoz;qg7|!TD5<*=)E*sc~ya(OlM=p?)<H&A<)n zYeulw$EJBKYs<Ubc-&dGoMf`lCzY(iK6{i7Jo8dmZ!s~Y;AzD8b;qzos#~?_Q4GY) zLV#qk^A>E~P=o+aF6tgNTrOFuDrU02-(=o*%5Ir6$IR1IS8lsTMpjreoIJ2M&K;v! zIMcQe@E6GYTmC`3q5y4xIn@eNfa8|A(Z>z;%8u1YuI%Cle|7cBk?d%#OG#tCnnt9l zdi1bA0~jUr{Wqw9Qxij-40{D9*XO4s^@=}i7001X`=Tmp1_<$8d|-wscXY*x(hBEz z;4BG|2_9Atu>ZFh@OZ@yGrePRM~l_smY{jz$i4XQu~tBYTt}`Dv0+p~RS#0G>rV#6 zh)2Cv*Hc)*RxNQm#(N?l3jcPv`Yz59Fj`$^Ia9RkGXYz=)5zFZX1k_1H+MWgRXeJx z{~+h7lAWgnaQA}#3%yJq?(u*z^!OVE67}Q1&9Y;cs&vX8>f-BIay~Wh(t^nv*RhUq zp#J-P<bLkar7dKVE@zoYlIfd4bCjv29}h8bFb&iE)~JT;uQULDxaixTLEQ}W5M{#! zK#;;~w1FiCgy(a9DgJqAGM}~P(2tnA972gzUT?w1+T-dJo4QRX>~SXP8nb!b*wzZ% zTY{(2$QdFn8Z!r-mb_jFtas9N$3q;qV?EDqTWk^{d!Z1^7cVT6J3}b!SJ`%uiD%Z+ zh&oRW9!B~6dfPy|l3Xg>>1+MKw`zt=Ryt2c<<6eu6duHh-|ezviuw=HegV;@)*s%U z519akZCUn8;OmCKf56vL?Nf@~J<3>|ox=t!n<>RTNa-DVpAZo&<^|axug-g0)n0Rx z_tSj)U64siT-AVd3Ss3Hxap3#0r;Pu!|7p6cTZ8pE1ejP&5%FS{RfL>0|d`RS+!E! zMA0uI#HEeqvlDhsmB%n81!S9CbC$=SmrcnWzVelt#;Ou`ws1oMMi<f3!A1y#d$dpa zV(C}6fxXf;w%Thzz%MPJg@+#ELbT}FT>{`iN5TFIszl5n%&W?xeSCV3dRM2B-5kfM zyFH|J2Wa~QHGYX_K>0Ukob;~dQvfX56Gd;JZ98`Xgh7DG8F2w2-__IMhNmSCxNOuZ zS<*_N>#wq00fVc>YEXi6jR+Yq>f#x<_96jXuW?!&Wlry@^Ayn|tEV9JYtCnkvx)Eu zI7fW<_GbP@*!H#qPe=hKW`ld3^wiOw^P0mKWoj@s*VGw?XiZvUkNwxq;0Z=sI%c*i z7|Q7IJ~t?8WgsbkhJl3yxm?xM&|2tEgFj_8*lLLp#H3E7iW9gVT;j;3YL70_d?}S{ zIUcIZCtWz=yDeLxw+b)_o#K=<wZgJ!B;bg!Pzg-Ody^$OZP7Fm32SLIDsRkYYgBi< z$RQ>`!H8w}bi%y!ZUkm$m!2u;f|Gt%q;P?!rj5%u)WmhFNZnh^{}asqy#e6EEyF6$ z|F{MKtob!5(Mx$CT^yxLG64{T>@d@a>gJq}cJ!4hQjP71itfD=a@3ULxbQZ^Kt(Tl zgPjlM^KZ6yt8eO6^7L1d3%Q#)J6aSOcoo~Mf)}fEITU=f5|f$t=j9>8Gf>#ir+VJw zG+K4|v5Q_S;OLVfGCtA4q2|On(4xK91??eDjP}>R22_OCfC`ZC?Z*Xy_fYe`zv^)0 z()&%j4mfk2vS9@FDovhr-MRaV-IO^r?A}utJ3Hz+%vqSv`@?(VzNIzN?DR6l@|E=i z>Zb_08LT_AD?G#;{6m6DL!wFx`S70hvVrQziesG5ckQaqhIS-pKI}>jy5cg<jFT70 zM_0sY5_aEP*qprG+!+508f;Y)t>l^HT%k&d%r6I)olbF@RnptmJ}GipwAb54-Q4p7 zsj*08T{cUcwo+*fEV7Ruwu_#>B=r8kR(sa~fSJ6n&yC%x2do+t!+Pc1P5wBaMJT6z z%eG!=@L{v@GJxr9IdE9H`$OLFvH*8Dl7)D5*!%aocLx7@tCr_5>5l40%G}P;YCSnj zcL!_u>oezGz3xLvzsEYd=bcK~No@@a2HzJ{HP5*kMpU%nm!}CC=YRLc+?TiXo=z`5 z4F|<0Sh!3KVA1-VhxOaYZ_RP{Pr&=<(kqna6Tp+bBHHDNEQ|wH)RKl1`WhR(WZ)f1 zpmt6ZxS+oLA{f`_lfkCvCRgTDPljfP!^Bj-Y9a&g-UFV6OLFr1BpsbfSILshDpA26 zJs6;}Yd;FgXo&+ZE-(S8Vvgp!Z5)r<@yt{v9hPyKl^wJkl&_Y#upZuWm<Sws`M!TY z3#7xd=`grhPE$Zm?Wz?Z5gqg&G{43BV%(;sqFaqns5}Z{tQ70d!$Iag@$ITr@B~)j z0~+7xfbeMPmWg#<`hV0A)`zW03&-C{8*@U#z7@#K))SSRk2@rm*O~uT2J3RzxJ3nQ zv04IyMIfCH;@-R*&}gO%>g9r^WP1^n{zv=ug28J|Rlfy;rP}8$$IPTa#E_`$gkT2K zngH%--4OU4(-Nrf4X?1g>g<QR&5U2Fn;+W?-X(QQ;(a=^nIS7UKN!~v?e3Hh{Vy&s zX%bFZ?pVYG1A+kA7}okwP6gbm^XpqU?H55}NT&y4U@yHR$ra`t0W`;8?ANLI?u=$F zZ)`tz<PkCc4=H@I6)$q4(5;FcYnvS0t-+|k(Z*Ux(a}Q4=8*?LNSUa9SKq77AsrE) z6a6aZP&nbgGy0>3P7vdisv(>nD|<E$MDaJ!G2346#3F`rZ!KVtPwC5s5UqO91o;1R z?Kg?8dS6esSA1A?il!;san<CWCH-C{Sk(-`S6^1^9G>4ar&Sq;r}U@eOg)K87V~8# ze9p!x&cGwU{crgf0GL3|(W@rJ7p$SBVW-O<vl!q~`eJ|O&|IG_bE_Hc`L7^}DVB~} z0b75r((f07dW%y)92aX%WW;YFf+**f4HnY>7di73C_sS=NEMqUI|x&Yw;$f(sN+_$ zCVcc5%n-)bHGWn!f#-fN)_)Fk|B(1~Z8TqkupWS<ba+Fc*+q^2Uzj-R*KH-jT?Gq? zX$;xFKK#mLbOV)r(dXw5W%vjRjJc>$jh_LY(6I*?kYpzT==u#IkJ?S8B~U<XiT6^2 zfk*H=uPrnX$mGxDsG$NTG$f`sB#WCPQ5O_&pI4Xd;Q%`L+2Y+2-*<|Zu8)<D-#qZ^ zzatzUQg~-@;oe3R(-Le#<R>x|xt00`1%OCfIO|w|-xNWz7zktiFL8luGXA0;sH`uF z9Nq&6YJvz9mIc3G9uLvaWZ=C`lP`w%zmL80CO`7j#Rn?t101)(w|z~K<Us=BjQj-N zZ_btlDeG&dY5spX0eHV|t%_BLC>lUBh1?5#FRZ`O{;c(yNelw)%Mr_f9_Ydz<Kq7> zKxlNcrqCaX5+_3@0k{MhAfjIa7##ekMgBxdQ_NTT8|5eMxc{BnahT$WvEzm4x>+Bi z^b>8LIf@e|o^0MQFi=Q;iue^vS_AyRm~YkVWs|PQE_3X_S3-6TZ3xoRSgQJOeqCNy zn;}PZz0i{7Re=Eb3{A;4^P2U9^<)e1AMv~i`%mUP#T^+X;E3B1nbLQ`K7&;=C#z@I zB=dg-3J*KEYAvRZKsj^e)(;O8Ffry6tfOmDtU9P;>~zFeeTmKUl^0@9;|4!9=q|dj zQ~ITV?Z+TKi4XLw@zP`bFPnYwUX6?vjal7I)!>E%O!biK+yg!R4EXy7OFxY6K5p@V zfNX~9)jN<Mjh?R}CR~Q3KdA@-AP@NC2Cfg@XJ5HJJ#;9m{oZ^`T5S-yL}6<$Mf_6e zs2;^{%goAr$H(xRSX=<&1I56k=4a?v5PUhiB7G@*jx}P{@WX%f@dJpqhafea0Q^>3 zdhgewyuT>xe-fJPmIntR&-ulS$Yqs(dx0JLH>3)}ga}~GpQVOX*_&-XN|_U>Fmynp z%Y#LTFYM_I&6<x6e=S=7w?4`*=C-F;w%|fIDhU8GBy@RdAOh26@aJHep)H%WoWErb z@BY+J*d`I<HlFZ$V+RWcXo+prwiYcM<?v6V)$6kU9=JhKrU0kO$_4}1JCN;5F<n(_ zBqLa}Ou(R63E&muCSgV3A#wqRRQc*5GFm983I34x$zqK0{g<N<C>ok}p26bA!taOH z=ywGR$2x|3tOY(j0)E;NC&aJ5{n&77SG`VLJeo?~7FLE2Is+cWm0~n_|9><8ws}+3 zmy)j$g6oQbL)klPK3$uiq`<(D_v7WBZ0qR7s>f3J7T$ihXa2M`_n80m+)K!~l78gi zO_}>874CfN3PI7aVmffb!4ueE=zgm*H%xi&r$yI0k}?*vyIlaCRnh5iVc(%wVij+> zzVGbnH@pCx*OD*>X=7mrZhv3Wxp=Y5wXTZ`6ekBd8&0e;EYzDf*J1v?*p5Oj1$&Dl zg}+agNZl~*F$(foB$3z==^YhUxbfu*;I0fayJ>E~#t+kDR#2G&1e=6r_}>HO4G;j% ztN_7-?8co>L48yp0EGb%)My&apVxE%%!VtP333h)09(sIa9}%Aan+ymz{(B?K*bmk z{0K@|2Q>kr^uxvjHD$ljfJp=hpbpq4HX}Yk0VDu552`ul`G3a188c2v*MDgNNqV~a KxvX<aXaWHF!>bAa diff --git a/package.json b/package.json index 4642bca92..24023f900 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tiddlywiki", "preferGlobal": "true", - "version": "5.2.4", + "version": "5.2.5-prerelease", "author": "Jeremy Ruston <jeremy@jermolene.com>", "description": "a non-linear personal web notebook", "contributors": [ From 0b1a4f3a4d80a58729ce5b399cf0d38b5f29a279 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 13 Dec 2022 17:30:52 +0000 Subject: [PATCH 160/937] Fix release note typo --- editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid index 11c8e510c..822ef8651 100644 --- a/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid @@ -95,7 +95,7 @@ Improvements to the translation features of TiddlyWiki itself: * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7073">> new CommandsCommand to enable command tokens to be dynamically generated from a filter * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6947">> console logging to avoid spaces and `<empty string>` message -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7014">> problem with lazy loading deleting tiddler bodies under certian circumstances +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7014">> problem with lazy loading deleting tiddler bodies under certain circumstances * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/344110e2890caf711ab8f3c4f4deaa7d86771231">> handling of ".mp4" file extension so that it defaults to video not audio * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6588">> test server to the plugin library edition * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7049">> [[Hidden Setting: Sync Logging]] to control logging of sync-related messages From 9160d81cc69199e81b2940970d0bb1269a3b5b7c Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 16 Dec 2022 17:41:05 +0000 Subject: [PATCH 161/937] BibTex plugin: Fix obsolete comments --- plugins/tiddlywiki/bibtex/deserializer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/tiddlywiki/bibtex/deserializer.js b/plugins/tiddlywiki/bibtex/deserializer.js index eb021f3a6..9a87e82fb 100644 --- a/plugins/tiddlywiki/bibtex/deserializer.js +++ b/plugins/tiddlywiki/bibtex/deserializer.js @@ -3,7 +3,7 @@ title: $:/plugins/tiddlywiki/bibtex/deserializer.js type: application/javascript module-type: tiddlerdeserializer -XLSX file deserializer +BibTeX file deserializer \*/ (function(){ @@ -15,7 +15,7 @@ XLSX file deserializer var bibtexParse = require("$:/plugins/tiddlywiki/bibtex/bibtexParse.js"); /* -Parse an XLSX file into tiddlers +Parse an BibTeX file into tiddlers */ exports["application/x-bibtex"] = function(text,fields) { var data, From 25b8f26073504dace56a5537f29c8bff0ead2acd Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 16 Dec 2022 17:41:59 +0000 Subject: [PATCH 162/937] Banner for v5.2.5 Daria has kindly reworked their v5.2.4 artwork for v5.2.5. --- .../tiddlers/images/New Release Banner.png | Bin 108817 -> 18183 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 253f51f45993e8e9ab14e086f48891bb073c3009..5bc4a005d8b1dc9b48767c506a2d8188e6fd2d04 100644 GIT binary patch literal 18183 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 E01{T5DF6Tf literal 108817 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 b%=rHSXMa^dcM~Tq00000NkvXXu0mjf)vrRs From 1bd7924e1bf78e494a07baaeae7ea793e7fe0477 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Sat, 17 Dec 2022 09:22:27 +0100 Subject: [PATCH 163/937] Docs: "Saving with the HTML5 saver" improvements (#7109) * "Saving with the HTML5 saver" improvements * fix typos add platform tags * reset modified date and fix minor typos --- .../tiddlers/GettingStarted_-_Chrome.tid | 2 +- .../Saving_with_the_HTML5_fallback_saver.tid | 28 +-------------- .../tiddlers/Saving_with_the_HTML5_saver.tid | 35 +++++++++++++++++++ .../tiddlers/GettingStarted - Chrome.tid | 2 +- .../tiddlers/Saving with the HTML5 saver.tid | 23 ++++++++++++ .../Saving with the HTML5 fallback saver.tid | 23 +----------- ...e-backups_ Extension Firefox by pmario.tid | 2 +- ...nsion for Chrome and Firefox by buggyj.tid | 2 +- .../GettingStarted - Chrome.tid | 4 +-- .../Saving with the HTML5 fallback saver.tid | 26 ++------------ .../saving/Saving with the HTML5 saver.tid | 27 ++++++++++++++ 11 files changed, 96 insertions(+), 78 deletions(-) create mode 100644 editions/es-ES/tiddlers/Saving_with_the_HTML5_saver.tid create mode 100644 editions/fr-FR/tiddlers/Saving with the HTML5 saver.tid create mode 100644 editions/tw5.com/tiddlers/saving/Saving with the HTML5 saver.tid diff --git a/editions/es-ES/tiddlers/GettingStarted_-_Chrome.tid b/editions/es-ES/tiddlers/GettingStarted_-_Chrome.tid index 7b7bef150..c23d2fbbc 100644 --- a/editions/es-ES/tiddlers/GettingStarted_-_Chrome.tid +++ b/editions/es-ES/tiddlers/GettingStarted_-_Chrome.tid @@ -7,4 +7,4 @@ type: text/vnd.tiddlywiki En Google Chrome, TiddlyWiki sólo puede guardar cambios usando el módulo alternativo de guardado compatible con HTML5 -{{Saving with the HTML5 fallback saver}} +{{Saving with the HTML5 saver}} diff --git a/editions/es-ES/tiddlers/Saving_with_the_HTML5_fallback_saver.tid b/editions/es-ES/tiddlers/Saving_with_the_HTML5_fallback_saver.tid index ac599a14c..b1a703972 100644 --- a/editions/es-ES/tiddlers/Saving_with_the_HTML5_fallback_saver.tid +++ b/editions/es-ES/tiddlers/Saving_with_the_HTML5_fallback_saver.tid @@ -6,30 +6,4 @@ tags: Saving title: Saving with the HTML5 fallback saver type: text/vnd.tiddlywiki -Este método para guardar cambios es un poco rudimentario porque requiere intervención manual para cada acción de guardado. Tiene, sin embargo, la ventaja de que funciona en casi todos los navegadores de escritorio y en muchos navegadores móviles. - -# Descarga un TiddlyWiki en blanco pulsando este botón - -#> {{$:/editions/es-ES/snippets/download-empty-button}} - -#>Si el botón no funciona, guarda este enlace: https://tiddlywiki.com/languages/es-ES/empty.html - -#> Seguramente el navegador te pida que confirmes la descarga - -#Localiza el archivo que acabas de descargar - -#*Puedes cambiarle el nombre, siempre que mantengas la extensión `.html` o `.htm` - -#Abre el archivo en el navegador - -# Crea un nuevo tiddler usando el botón ''Nuevo tiddler'' {{$:/core/images/new-button}} de la barra lateral. Escribe algo en él y haz clic en el botón ''OK'' {{$:/core/images/done-button}} - -# Guarda los cambios con el botón ''Guardar cambios'' {{$:/core/images/save-button}} de la barra lateral - -# El navegador descargará una copia del wiki que incluye tus cambios. - -# Localiza el archivo nuevo y ábrelo en el navegador - -# Comprueba que los cambios se han guardado correctamente - -''Consejo'': la mayoría de navegadores permiten la opción de especificar la localización de cada descarga, en lugar de descargar a la carpeta por defecto. Esta opción te permite "planchar" tu archivo con la nueva versión. +[[Saving with the HTML5 saver]] \ No newline at end of file diff --git a/editions/es-ES/tiddlers/Saving_with_the_HTML5_saver.tid b/editions/es-ES/tiddlers/Saving_with_the_HTML5_saver.tid new file mode 100644 index 000000000..a68a50828 --- /dev/null +++ b/editions/es-ES/tiddlers/Saving_with_the_HTML5_saver.tid @@ -0,0 +1,35 @@ +caption: Guardar con módulo HTML5 +created: 20131129092604900 +es-title: Guardar con el módulo alternativo de guardado +modified: 20160603131518256 +tags: Saving +title: Saving with the HTML5 saver +type: text/vnd.tiddlywiki + +Este método para guardar cambios es un poco rudimentario porque requiere intervención manual para cada acción de guardado. Tiene, sin embargo, la ventaja de que funciona en casi todos los navegadores de escritorio y en muchos navegadores móviles. + +# Descarga un TiddlyWiki en blanco pulsando este botón + +#> {{$:/editions/es-ES/snippets/download-empty-button}} + +#>Si el botón no funciona, guarda este enlace: https://tiddlywiki.com/languages/es-ES/empty.html + +#> Seguramente el navegador te pida que confirmes la descarga + +#Localiza el archivo que acabas de descargar + +#*Puedes cambiarle el nombre, siempre que mantengas la extensión `.html` o `.htm` + +#Abre el archivo en el navegador + +# Crea un nuevo tiddler usando el botón ''Nuevo tiddler'' {{$:/core/images/new-button}} de la barra lateral. Escribe algo en él y haz clic en el botón ''OK'' {{$:/core/images/done-button}} + +# Guarda los cambios con el botón ''Guardar cambios'' {{$:/core/images/save-button}} de la barra lateral + +# El navegador descargará una copia del wiki que incluye tus cambios. + +# Localiza el archivo nuevo y ábrelo en el navegador + +# Comprueba que los cambios se han guardado correctamente + +''Consejo'': la mayoría de navegadores permiten la opción de especificar la localización de cada descarga, en lugar de descargar a la carpeta por defecto. Esta opción te permite "planchar" tu archivo con la nueva versión. diff --git a/editions/fr-FR/tiddlers/GettingStarted - Chrome.tid b/editions/fr-FR/tiddlers/GettingStarted - Chrome.tid index aa7ae96a2..e8e752bf0 100644 --- a/editions/fr-FR/tiddlers/GettingStarted - Chrome.tid +++ b/editions/fr-FR/tiddlers/GettingStarted - Chrome.tid @@ -7,4 +7,4 @@ type: text/vnd.tiddlywiki Sous Google Chrome, <<tw>> ne parvient à sauvegarder les modifications qu'à l'aide de la solution de repli standard : le module de sauvegarde compatible HTML5. -{{Saving with the HTML5 fallback saver}} +{{Saving with the HTML5 saver}} diff --git a/editions/fr-FR/tiddlers/Saving with the HTML5 saver.tid b/editions/fr-FR/tiddlers/Saving with the HTML5 saver.tid new file mode 100644 index 000000000..34fe138ff --- /dev/null +++ b/editions/fr-FR/tiddlers/Saving with the HTML5 saver.tid @@ -0,0 +1,23 @@ +created: 20131129092604900 +fr-title: Sauvegarder avec l'enregistreur HTML 5 par défaut +modified: 20160526130128327 +tags: Saving +title: Saving with the HTML5 saver +type: text/vnd.tiddlywiki + +Cette manière d'enregistrer les modifications est assez pénible, car elle requiert une intervention manuelle à chaque enregistrement. Elle a l'avantage de fonctionner avec pratiquement tous les navigateurs tournant sur les ordinateurs de bureaux, et de nombreux navigateurs tournant sur appareils mobiles. + +# [[Téléchargez|Download]] un TiddlyWiki en cliquant sur ce bouton<<dp>> +#> {{$:/editions/fr-FR/snippets/download-empty-button}} +#> Si le bouton ne fonctionne pas, enregistrez ce lien<<dp>> https://tiddlywiki.com/languages/fr-FR/empty.html +#> Votre navigateur vous demandera peut-être d'accepter explicitement l'enregistrement avant qu'il démarre +# Localisez le fichier que vous venez de télécharger +#* Vous pouvez le renommer, mais assurez-vous de conserver l'extension `.html` ou `.htm` +# Ouvrez le fichier dans votre navigateur +# Essayez de créer un nouveau tiddler à l'aide du bouton ''nouveau tiddler'' {{$:/core/images/new-button}} de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton ''terminé'' {{$:/core/images/done-button}} +# Enregistrez vos modifications en cliquant sur le bouton ''enregistrer les modifications'' {{$:/core/images/save-button}} de la barre latérale +# Votre navigateur téléchargera alors un nouvel exemplaire du wiki, avec vos modifications à l'intérieur +# Localisez ce nouveau fichier et ouvrez-le dans votre navigateur +# Vérifiez que vos modifications ont correctement été enregistrées + +''Truc'': la plupart des navigateurs peuvent être configurés pour proposer un chemin d'enregistrement à chaque téléchargement. Cela vous permet de sélectionner la version précédente du fichier et ainsi de la remplacer. diff --git a/editions/fr-FR/tiddlers/saving/Saving with the HTML5 fallback saver.tid b/editions/fr-FR/tiddlers/saving/Saving with the HTML5 fallback saver.tid index 24c9c7f4c..0e01be1f9 100644 --- a/editions/fr-FR/tiddlers/saving/Saving with the HTML5 fallback saver.tid +++ b/editions/fr-FR/tiddlers/saving/Saving with the HTML5 fallback saver.tid @@ -1,28 +1,7 @@ -caption: Enregistreur HTML5 -color: #7986cb created: 20131129092604900 -delivery: Saver -description: Technique un peu gênante mais universelle qui marche sur tous les navigateurs ou presque fr-title: Enregistreur HTML5 par défaut -method: save modified: 20220402105820520 -tags: Saving Chrome Firefox [[Internet Explorer]] Opera Safari Edge title: Saving with the HTML5 fallback saver type: text/vnd.tiddlywiki -Cette manière d'enregistrer les modifications est assez pénible, car elle requiert une intervention manuelle à chaque enregistrement. Elle a l'avantage de fonctionner avec pratiquement tous les navigateurs tournant sur les ordinateurs de bureaux, et de nombreux navigateurs tournant sur appareils mobiles. - -# [[Téléchargez|Download]] un TiddlyWiki en cliquant sur ce bouton<<dp>> -#> {{$:/editions/fr-FR/snippets/download-empty-button}} -#> Si le bouton ne fonctionne pas, enregistrez ce lien<<dp>> https://tiddlywiki.com/languages/fr-FR/empty.html -#> Votre navigateur vous demandera peut-être d'accepter explicitement l'enregistrement avant qu'il démarre -# Localisez le fichier que vous venez de télécharger -#* Vous pouvez le renommer, mais assurez-vous de conserver l'extension `.html` ou `.htm` -# Ouvrez le fichier dans votre navigateur -# Essayez de créer un nouveau tiddler à l'aide du bouton <<.icon $:/core/images/new-button>> ''nouveau tiddler'' de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton <<.icon $:/core/images/done-button>> ''terminé'' -# Enregistrez vos modifications en cliquant sur le bouton <<.icon $:/core/images/save-button>> ''enregistrer les modifications'' de la barre latérale -# Votre navigateur téléchargera alors un nouvel exemplaire du wiki, avec vos modifications à l'intérieur -# Localisez ce nouveau fichier et ouvrez-le dans votre navigateur -# Vérifiez que vos modifications ont correctement été enregistrées - -''Astuce''<<:>> la plupart des navigateurs peuvent être configurés pour proposer un chemin d'enregistrement à chaque téléchargement. Cela vous permet de sélectionner la version précédente du fichier et ainsi de la remplacer. +[[Saving with the HTML5 saver]] \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/community/resources/_file-backups_ Extension Firefox by pmario.tid b/editions/tw5.com/tiddlers/community/resources/_file-backups_ Extension Firefox by pmario.tid index e023a34d9..aa111108e 100644 --- a/editions/tw5.com/tiddlers/community/resources/_file-backups_ Extension Firefox by pmario.tid +++ b/editions/tw5.com/tiddlers/community/resources/_file-backups_ Extension Firefox by pmario.tid @@ -11,7 +11,7 @@ title: "file-backups" Extension for Firefox by pmario type: text/vnd.tiddlywiki url: https://github.com/pmario/file-backups -An extension for Mozilla Firefox that smoothes out some of the friction from ~TiddlyWiki's built-in [[HTML5 fallback saver|Saving with the HTML5 fallback saver]], making it almost as easy to use as ~TiddlyFox. The workflow is intended to work out of the box, without configuration. +An extension for Mozilla Firefox that smoothes out some of the friction from ~TiddlyWiki's built-in [[HTML5 saver|Saving with the HTML5 saver]], making it almost as easy to use as ~TiddlyFox. The workflow is intended to work out of the box, without configuration. https://github.com/pmario/file-backups which contains links to the documentation and introduction video(s). diff --git a/editions/tw5.com/tiddlers/community/resources/_savetiddlers_ Extension for Chrome and Firefox by buggyj.tid b/editions/tw5.com/tiddlers/community/resources/_savetiddlers_ Extension for Chrome and Firefox by buggyj.tid index 1eaa83302..f000b92c9 100644 --- a/editions/tw5.com/tiddlers/community/resources/_savetiddlers_ Extension for Chrome and Firefox by buggyj.tid +++ b/editions/tw5.com/tiddlers/community/resources/_savetiddlers_ Extension for Chrome and Firefox by buggyj.tid @@ -11,6 +11,6 @@ title: "savetiddlers" Extension for Chrome and Firefox by buggyj type: text/vnd.tiddlywiki url: https://github.com/buggyj/savetiddlers -An extension for Google Chrome and Mozilla Firefox that smoothes out some of the friction from TiddlyWiki's built-in [[HTML5 fallback saver|Saving with the HTML5 fallback saver]], making it almost as easy to use as TiddlyFox once it is set up correctly. +An extension for Google Chrome and Mozilla Firefox that smoothes out some of the friction from TiddlyWiki's built-in [[HTML5 saver|Saving with the HTML5 saver]], making it almost as easy to use as TiddlyFox once it is set up correctly. https://github.com/buggyj/savetiddlers diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid index 3d38fe8e8..34da6089f 100644 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid +++ b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid @@ -5,6 +5,6 @@ tags: GettingStarted title: GettingStarted - Chrome type: text/vnd.tiddlywiki -TiddlyWiki on Google Chrome can only save changes using the HTML5-compatible fallback saver module. +TiddlyWiki on Google Chrome can only save changes using the HTML5-compatible saver module. -{{Saving with the HTML5 fallback saver}} +{{Saving with the HTML5 saver}} diff --git a/editions/tw5.com/tiddlers/saving/Saving with the HTML5 fallback saver.tid b/editions/tw5.com/tiddlers/saving/Saving with the HTML5 fallback saver.tid index d1d9a67a8..069740162 100644 --- a/editions/tw5.com/tiddlers/saving/Saving with the HTML5 fallback saver.tid +++ b/editions/tw5.com/tiddlers/saving/Saving with the HTML5 fallback saver.tid @@ -1,27 +1,7 @@ -caption: Download Saver -color: #7986CB created: 20131129092604900 -delivery: Saver -description: Slightly awkward but universal technique that works on almost every browser -method: save modified: 20200507202835577 -tags: Chrome Firefox [[Internet Explorer]] Opera Safari Saving Edge -title: Saving with the HTML5 fallback saver +tags: +title: Saving with the HTML5 saver type: text/vnd.tiddlywiki -This method of saving changes is clunky because it requires manual intervention for each save. It has the advantage of working on almost all desktop browsers, and many mobile browsers. - -# [[Download]] an empty TiddlyWiki by clicking this button: -#> {{$:/editions/tw5.com/snippets/download-empty-button}} -#> If the button doesn't work save this link: https://tiddlywiki.com/empty.html -#> Your browser may ask you to accept the download before it begins -# Locate the file you just downloaded -#* You may rename it, but be sure to keep the `.html` or `.htm` extension -# Open the file in your browser -# Try creating a new tiddler using the ''new tiddler'' <<.icon $:/core/images/new-button>> button in the sidebar. Type some content for the tiddler, and click the <<.icon $:/core/images/done-button>> ''ok'' button -# Save your changes by clicking the <<.icon $:/core/images/save-button>> ''save changes'' button in the sidebar -# Your browser will download a new copy of the wiki incorporating your changes -# Locate the newly downloaded file and open it in your browser -# Verify that your changes have been saved correctly - -''Tip'': most browsers have an option to prompt each time for the download location. This allows you to select the existing version of the file and replace it. +See [[Saving with the HTML5 saver]] \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/saving/Saving with the HTML5 saver.tid b/editions/tw5.com/tiddlers/saving/Saving with the HTML5 saver.tid new file mode 100644 index 000000000..5b38d3635 --- /dev/null +++ b/editions/tw5.com/tiddlers/saving/Saving with the HTML5 saver.tid @@ -0,0 +1,27 @@ +caption: Download Saver +color: #7986CB +created: 20221210215207986 +delivery: Saver +description: Universal technique that works on almost every browser +method: save +modified: 20221210215716269 +tags: Chrome Firefox [[Internet Explorer]] Opera Safari Saving Edge Windows Mac Linux Android iOS +title: Saving with the HTML5 saver +type: text/vnd.tiddlywiki + +This is the default method of saving if no other method is installed. It uses your browser's built-in "download a file" handler, and has the advantage of working on almost all desktop browsers, and many mobile browsers. + +# [[Download]] an empty TiddlyWiki by clicking this button: +#> {{$:/editions/tw5.com/snippets/download-empty-button}} +#> If the button doesn't work save this link: https://tiddlywiki.com/empty.html +#> Your browser may ask you to accept the download before it begins +# Locate the file you just downloaded +#* You may rename it, but be sure to keep the `.html` or `.htm` extension +# Open the file in your browser +# Try creating a new tiddler using the ''new tiddler'' <<.icon $:/core/images/new-button>> button in the sidebar. Type some content for the tiddler, and click the <<.icon $:/core/images/done-button>> ''ok'' button +# Save your changes by clicking the <<.icon $:/core/images/save-button>> ''save changes'' button in the sidebar +# Your browser will download a new copy of the wiki incorporating your changes +# Locate the newly downloaded file and open it in your browser +# Verify that your changes have been saved correctly + +''Tip'': most browsers have an option to prompt each time for the download location. This allows you to select the existing version of the file and replace it. From caf01f10d6fd29541bd0b5b2dfd47ab3cc62df92 Mon Sep 17 00:00:00 2001 From: Joe Bordes <joe@tsolucio.com> Date: Sat, 17 Dec 2022 15:00:57 +0100 Subject: [PATCH 164/937] i18n(ES) update with latest changes in master (#7127) --- languages/es-ES/Buttons.multids | 2 ++ languages/es-ES/ControlPanel.multids | 4 ++-- languages/es-ES/Fields.multids | 4 ++-- languages/es-ES/Help/commands.tid | 18 ++++++++++++++++++ 4 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 languages/es-ES/Help/commands.tid diff --git a/languages/es-ES/Buttons.multids b/languages/es-ES/Buttons.multids index fd9968ef1..1e36bc00e 100644 --- a/languages/es-ES/Buttons.multids +++ b/languages/es-ES/Buttons.multids @@ -59,6 +59,8 @@ Home/Caption: Inicio Home/Hint: Cierra todos los tiddlers abiertos y abre los que se muestran por defecto al inicio Language/Caption: Idioma Language/Hint: Selecciona idioma de la interfaz de usuario +LayoutSwitcher/Hint: Abrir cambiador de disposición +LayoutSwitcher/Caption: disposición Manager/Caption: Administrador tiddler Manager/Hint: Abre el administrador del tiddler More/Caption: Más diff --git a/languages/es-ES/ControlPanel.multids b/languages/es-ES/ControlPanel.multids index 38d7696fc..455318e87 100644 --- a/languages/es-ES/ControlPanel.multids +++ b/languages/es-ES/ControlPanel.multids @@ -7,7 +7,7 @@ Appearance/Hint: Personaliza la apariencia de TiddlyWiki Basics/AnimDuration/Prompt: Duración de la animación Basics/AutoFocus/Prompt: Campo de enfoque predeterminado para nuevos tiddlers Basics/Caption: Básico -Basics/DefaultTiddlers/BottomHint: Usa [[corchetes dobles]] para títulos con espacios. También puedes mostrarlos ordenados {{de más reciente a más antiguo||$:/snippets/retain-story-ordering-button}} +Basics/DefaultTiddlers/BottomHint: Usa [[corchetes dobles]] para títulos con espacios. También puedes {{mantener el orden actual||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Tiddlers por defecto Basics/DefaultTiddlers/TopHint: Escoge qué tiddlers se muestran al inicio Basics/Language/Prompt: ¡Hola! Selecciona idioma actual @@ -91,7 +91,7 @@ Plugins/Languages/Hint: Extensiones de idioma Plugins/NoInfoFound/Hint: No se ha encontrado ''"<$text text=<<currentTab>>/>"'' Plugins/NotInstalled/Hint: Este complemento no está instalado actualmente Plugins/OpenPluginLibrary: Abrir biblioteca de complementos y extensiones -Plugins/ClosePluginLibrary: cerrar biblioteca de complementos y extensiones +Plugins/ClosePluginLibrary: Cerrar biblioteca de complementos y extensiones Plugins/PluginWillRequireReload: (requiere recarga) Plugins/Plugins/Caption: Complementos Plugins/Plugins/Hint: Complementos y extensiones diff --git a/languages/es-ES/Fields.multids b/languages/es-ES/Fields.multids index c3445828a..fe0b54dd9 100644 --- a/languages/es-ES/Fields.multids +++ b/languages/es-ES/Fields.multids @@ -13,7 +13,7 @@ dependents: En un complemento o extensión, lista de sus dependencias description: Descripción de un complemento, extensión, o diálogo modal draft.of: Título del tiddler del que el actual es borrador draft.title: Nuevo título propuesto para el presente borrador -footer: Texto al pie que figurará en un asistente +footer: Texto al pie en ventanas modales hide-body: La plantilla de vista ocultará los cuerpos de los tiddlers si se establece en ''yes'' icon: Nombre del tiddler que contiene el icono que se quiere asociar al presente tiddler library: Si su valor es ''yes'', indica que el tiddler debe guardarse como librería de JavaScript @@ -28,7 +28,7 @@ plugin-type: Tipo de complemento o extensión revision: Revisión del tiddler existente en el servidor released: Fecha de la edición de TiddlyWiki source: Dirección de la fuente asociada a un tiddler -subtitle: Subtítulo que figurará en un asistente +subtitle: Subtítulo en ventanas modales tags: Lista de etiquetas asignadas al tiddler text: Texto principal de un tiddler throttle.refresh: Si está presente, regula las actualizaciones de este tiddler diff --git a/languages/es-ES/Help/commands.tid b/languages/es-ES/Help/commands.tid new file mode 100644 index 000000000..8a1fc4589 --- /dev/null +++ b/languages/es-ES/Help/commands.tid @@ -0,0 +1,18 @@ +title: $:/language/Help/commands +description: Ejecuta instrucciones devueltas por un filtro + +Ejecuta secuencialmente las instrucciones devueltas por un filtro + +``` +--commands <filter> +``` + +Ejemplos + +``` +--commands "[enlist{$:/build-commands-as-text}]" +``` + +``` +--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]" +``` From 6ea61ac94f5cd31c4d68da458502c43adeed5ce1 Mon Sep 17 00:00:00 2001 From: Wincent Balin <wincent.balin@gmail.com> Date: Mon, 19 Dec 2022 09:18:02 +0100 Subject: [PATCH 165/937] Signing the CLA (#7134) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index b1af82fcc..74bd4bed1 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -501,3 +501,5 @@ Nathaniel Knight, @nathanielknight, 2022/07/26 HuanCheng Bai, @bestony, 2022/09/17 Carlo Colombo, @carlo-colombo, 2022/11/30 + +Wincent Balin, @wincentbalin, 2022/12/18 From e51dd406b17584e5189aafaf4a60524c1ff17834 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 19 Dec 2022 08:46:26 +0000 Subject: [PATCH 166/937] Revert global CSS changes from v5.2.4 Changes to style definitions for unclassed elements are being reverted because of backwards compatibility issues in the field. See #7126. --- themes/tiddlywiki/vanilla/base.tid | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 7dccf1894..bcb6954ec 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -88,9 +88,7 @@ html button { color: <<colour button-foreground>>; fill: <<colour button-foreground>>; background: <<colour button-background>>; - border: 1px solid <<colour button-border>>; - border-radius: 3px; - padding: 2px 5px; + border-color: <<colour button-border>>; } button:disabled svg { @@ -226,27 +224,13 @@ dl dt { margin-top: 6px; } -/* -** Definition for text input elements so they look consistent for all browsers -*/ - -textarea, input, select { - border: 2px solid <<colour tiddler-editor-border>>; - background-color: <<colour tiddler-editor-background>>; -} - -/* Input elements accessibility -- overwrite the reset */ -:focus-visible { - outline: 2px solid <<colour primary>>; - outline-offset: -2px; /* same as in reset.css [type='search'] but for more elements */ -} - textarea, input[type=text], input[type=search], input[type=""], input:not([type]) { color: <<colour foreground>>; + background: <<colour background>>; } input[type="checkbox"] { @@ -330,7 +314,7 @@ table { } table th, table td { - padding: 4px 6px 4px 6px; + padding: 0 7px 0 7px; border-top: 1px solid <<colour table-border>>; border-left: 1px solid <<colour table-border>>; } From ceb6999dd6237f080c9078789e0d6aad286adb78 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 19 Dec 2022 08:56:18 +0000 Subject: [PATCH 167/937] Update release note --- .../prerelease/tiddlers/Release 5.2.5.tid | 46 ++++--------------- 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.5.tid b/editions/prerelease/tiddlers/Release 5.2.5.tid index f4daa5ca5..040649ef9 100644 --- a/editions/prerelease/tiddlers/Release 5.2.5.tid +++ b/editions/prerelease/tiddlers/Release 5.2.5.tid @@ -7,44 +7,18 @@ type: text/vnd.tiddlywiki //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.4...master]]// -! Translation Improvements +<<.banner-credits + credit:"""Congratulations to [[dmikh|https://talk.tiddlywiki.org/u/dmikh]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/new-release-banner-competition-for-v5-2-4/4982]] and the [[voting thread|https://talk.tiddlywiki.org/t/vote-for-the-v5-2-4-new-release-banner/5140/2]]). +""" + url:"https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/25b8f26073504dace56a5537f29c8bff0ead2acd/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png" +>> -Improvements to the following translations: +This is a bug fix release intended to resolve backwards compatibility issues discovered in v5.2.4. See [[this GitHub ticket|https://github.com/Jermolene/TiddlyWiki5/issues/7126]] for the background. -* +The issues are entirely cosmetic stylesheet changes, and do not affect the functionality of TiddlyWiki. However, we encourage all users to upgrade to this new version for consistency. -! Usability Improvements +Since v5.2.5 replaces v5.2.4 that was only released for a week, here is the [[release note for v5.2.4|Release 5.2.4]]. -* +! Release Note for v5.2.4 -! Widget Improvements - -* - -! Filter improvements - -* - -! Hackability Improvements - -* - -! Bug Fixes - -* - -! Node.js Improvements - -* - -! Performance Improvements - -* - -! Acknowledgements - -[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: - -<<.contributors """ -XXXXX -""">> +{{Release 5.2.4}} From ecaa288fc5fb4237239e27da98323e1681097e4e Mon Sep 17 00:00:00 2001 From: Wincent Balin <wincent.balin@gmail.com> Date: Mon, 19 Dec 2022 16:49:05 +0100 Subject: [PATCH 168/937] Docs typo (#7137) --- .../community/resources/RegExp in Tiddlywiki by Mohammad.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/community/resources/RegExp in Tiddlywiki by Mohammad.tid b/editions/tw5.com/tiddlers/community/resources/RegExp in Tiddlywiki by Mohammad.tid index 0ade3cbe5..df4df2559 100644 --- a/editions/tw5.com/tiddlers/community/resources/RegExp in Tiddlywiki by Mohammad.tid +++ b/editions/tw5.com/tiddlers/community/resources/RegExp in Tiddlywiki by Mohammad.tid @@ -5,7 +5,7 @@ title: RegExp in Tiddlywiki by Mohammad type: text/vnd.tiddlywiki url: http://tw-regexp.tiddlyspot.com/ -~RegExp in Tiddlywiki contains practical use cases of reular expression in Tiddlywiki. +~RegExp in Tiddlywiki contains practical use cases of regular expression in Tiddlywiki. {{!!url}} From ccf444c834192984303225b91a727be9b7570abb Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 19 Dec 2022 17:25:52 +0000 Subject: [PATCH 169/937] Release note updates --- editions/prerelease/tiddlers/Release 5.2.5.tid | 4 ++-- editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.5.tid b/editions/prerelease/tiddlers/Release 5.2.5.tid index 040649ef9..ad2346512 100644 --- a/editions/prerelease/tiddlers/Release 5.2.5.tid +++ b/editions/prerelease/tiddlers/Release 5.2.5.tid @@ -1,6 +1,6 @@ caption: 5.2.5 -created: 20221127133944178 -modified: 20221127133944178 +created: 20221219172444961 +modified: 20221219172444961 tags: ReleaseNotes title: Release 5.2.5 type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid index 822ef8651..46a2ea4df 100644 --- a/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid @@ -14,6 +14,10 @@ type: text/vnd.tiddlywiki url:"https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/0dc30086e933cf2272cddb076a9fcbedad252735/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png" >> +! Important Update + +After the release of v5.2.5, we found some backwards compatibility issues with the stylesheet changes in [[#7039|https://github.com/Jermolene/TiddlyWiki5/pull/7039]] and [[#6910|https://github.com/Jermolene/TiddlyWiki5/pull/6910]]. We have therefore decided to make a rapid bug fix [[Release 5.2.5]] to resolve these issues, and all users should upgrade to the new version. + ! Major Improvements New [ext[Twitter Archivist|./editions/twitter-archivist]] plugin to import the tweets and associated media from a Twitter Archive as individual tiddlers. From 44de7918ab92da3917434adcbdcad6d85fca7a63 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 19 Dec 2022 18:46:10 +0000 Subject: [PATCH 170/937] Preparing for release of v5.2.5 --- .../prerelease/tiddlers/Release 5.2.6.tid | 107 ++++++++++++++++++ .../tiddlers/hellothere/HelloThere.tid | 2 +- .../tiddlers/releasenotes}/Release 5.2.5.tid | 7 +- 3 files changed, 112 insertions(+), 4 deletions(-) create mode 100644 editions/prerelease/tiddlers/Release 5.2.6.tid rename editions/{prerelease/tiddlers => tw5.com/tiddlers/releasenotes}/Release 5.2.5.tid (89%) diff --git a/editions/prerelease/tiddlers/Release 5.2.6.tid b/editions/prerelease/tiddlers/Release 5.2.6.tid new file mode 100644 index 000000000..c7331e608 --- /dev/null +++ b/editions/prerelease/tiddlers/Release 5.2.6.tid @@ -0,0 +1,107 @@ +caption: 5.2.6 +created: 20221219172444961 +modified: 20221219172444961 +tags: ReleaseNotes +title: Release 5.2.6 +type: text/vnd.tiddlywiki + +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.5...master]]// +! Major Improvements + +New [ext[Twitter Archivist|./editions/twitter-archivist]] plugin to import the tweets and associated media from a Twitter Archive as individual tiddlers. + +<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6961">> new GenesisWidget that allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance + +<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> (and <<.link-badge-here "https://github.com/Jermolene/TiddlyWiki5/pull/7105">>) new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]], [[jsonextract Operator]] and [[format Operator]] + +! Translation Improvements + +Improvements to the following translations: + +* Chinese +* French +* German +* Polish +* Spanish +* Japanese + +Improvements to the translation features of TiddlyWiki itself: + +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6882">> the [[Translators Edition|Translate TiddlyWiki into your language]] to add an option to display the original English text underneath the text area +* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6933">> "delete" button text in $:/AdvancedSearch so that it is translatable + +! Usability Improvements + +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d62a16ee464fb9984b766b48504829a1a3eb143b">> problem with long presses on tiddler links triggering a preview on iOS/iPadOS +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6910">> consistency of button and input elements across browsers +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d825f1c875f5e46158c9c41c8c66471138c162d1">> edit preview to use the [[View Template Body Cascade]] +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/36896c3db8c9678c0385a561996248a6f00a45ff">> opening a tiddler in a new window to use the [[View Template Body Cascade]] +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6970">> detection of infinite recursion errors in widgets and filters +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6877">> default styles for [[styled runs|Styles and Classes in WikiText]] +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6881">> upgrade wizard to make the version number more prominent +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7042">> parsing of tiddlers containing CSV data for greater compatibility +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7076">> new page control button to summon the layout switcher +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7084">> folded tiddlers to ensure that the unfold button is always visible +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7072">> handling of [[Modals]] to optionally allow them to be dismissed by clicking on the background + +! Widget Improvements + +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/127f660c91020dcbb43897d954066b31af729e74">> EditTextWidget to remove the default text "Type the text for the tiddler 'foo'" +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7081">> ''focus'' attribute to SelectWidget +* <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/commit/1df4c29d73073788ba3859668112e8bb46171a6c">> restriction of the LetWidget being unable to create variables whose names begin with a dollar sign + +! Filter improvements + +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6303">> issue with availability of variables within filter runs +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7065">> issue with removing multiple items from a linked list during filter processing + +! Hackability Improvements + +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7004">> support for nested [[macro definitions|Macro Definitions in WikiText]] +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6976">> support for [[SystemTag: $:/tags/ClassFilters/TiddlerTemplate]] and [[SystemTag: $:/tags/ClassFilters/PageTemplate]] to assign dynamic CSS classes to both tiddler frames and the page template +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/c5d3d4c26e8fe27f272dda004aec27d6b66c4f60">> safe mode to disable wiki store indexers +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/166a1565843878083fb1eba47c73b8e67b78400d">> safe mode to prevent globally disabling parser rules +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6735">> keyboard shortcut handling to allow to global shortcuts to override all other shortcuts +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/965bd090a905f5756e79124b698c894f7f72ad5b">> [[list-links Macro]] to allow the rendered field to be overriden +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6913">> [[Table-of-Contents Macros]] to allow the default icons to be overridden +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6939">> ''data-tags-*'' and ''data-tiddler-title'' attributes to the edit preview area +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/5947">> [[timeline Macro]] to override the link template +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7043">> support for Unix epoch timestamps in [[date format strings|DateFormat]] +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7064">> the "big green download button" to use the defined palette colour +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7063">> new hidden setting [[to use horizontal tabs for the "more" sidebar tab|Hidden Setting: More Tabs Horizontal]] +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/bef11fe6a25fb849dee40c4aa4337d6a30daf0b4">> the [[external JavaScript templates|Using the external JavaScript template]] to allow the URL of the external script file to be configured + +! Bug Fixes + +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7099">> truncated search results on small screens +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7010">> table contents overflow on small screens +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/fb34df84ed41882c1c2a6ff54f0e908b43ef95a3">> "new image" keyboard shortcut not to assign journal tags +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6987">> SelectWidget class to update if it uses a filter +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7017">> issue with wikification within the advanced search filter dropdown +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7057">> the table in $:/Import to avoid creating hidden empty rows +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7008">> advanced search keyboard shortcut not navigating correctly +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7083">> erroneous display of drafts within the advanced search filter dropdown +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7092">> backwards compatibility of new field editor cascade introduced in v5.2.3 + +! Node.js Improvements + +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7073">> new CommandsCommand to enable command tokens to be dynamically generated from a filter +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6947">> console logging to avoid spaces and `<empty string>` message +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7014">> problem with lazy loading deleting tiddler bodies under certain circumstances +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/344110e2890caf711ab8f3c4f4deaa7d86771231">> handling of ".mp4" file extension so that it defaults to video not audio +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6588">> test server to the plugin library edition +* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7049">> [[Hidden Setting: Sync Logging]] to control logging of sync-related messages +* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6944">> Jasmine plugin to require the explicit use of the `--test` command in order to cause the tests to be run + +! Performance Improvements + +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/53d229592df76c6dd607e40be5bea4d5e063c48e">> performance of `wiki.getTiddler()` +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/81ac9874846b3ead275f67010fcfdb49f3d2f43c">> performance of variable prototype chain handling +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6056">> performance of list handling during filter processing + +! Acknowledgements + +[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: + +<<.contributors """ +""">> diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index 044c9cfb5..bcb85c071 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -1,6 +1,6 @@ created: 20130822170200000 list: [[A Gentle Guide to TiddlyWiki]] [[Discover TiddlyWiki]] [[Some of the things you can do with TiddlyWiki]] [[Ten reasons to switch to TiddlyWiki]] Examples [[What happened to the original TiddlyWiki?]] -modified: 20221213163110439 +modified: 20221219184500440 tags: TableOfContents title: HelloThere type: text/vnd.tiddlywiki diff --git a/editions/prerelease/tiddlers/Release 5.2.5.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.2.5.tid similarity index 89% rename from editions/prerelease/tiddlers/Release 5.2.5.tid rename to editions/tw5.com/tiddlers/releasenotes/Release 5.2.5.tid index ad2346512..4ada9efa4 100644 --- a/editions/prerelease/tiddlers/Release 5.2.5.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.2.5.tid @@ -1,11 +1,12 @@ caption: 5.2.5 -created: 20221219172444961 -modified: 20221219172444961 +created: 20221219184500440 +modified: 20221219184500440 +released: 20221219184500440 tags: ReleaseNotes title: Release 5.2.5 type: text/vnd.tiddlywiki -//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.4...master]]// +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.4...v5.2.5]]// <<.banner-credits credit:"""Congratulations to [[dmikh|https://talk.tiddlywiki.org/u/dmikh]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/new-release-banner-competition-for-v5-2-4/4982]] and the [[voting thread|https://talk.tiddlywiki.org/t/vote-for-the-v5-2-4-new-release-banner/5140/2]]). From 7e8380a8df4693a4d4a2c551bf3b7ee31e673bcf Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 19 Dec 2022 18:47:05 +0000 Subject: [PATCH 171/937] Update readme.tid for github --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 548018899..fb82c6b4e 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,7 @@ <p>Welcome to <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a>, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation.</p><p><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> is a complete interactive wiki in <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/JavaScript.html">JavaScript</a>. It can be used as a single HTML file in the browser or as a powerful Node.js application. It is highly customisable: the entire user interface is itself implemented in hackable <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/WikiText.html">WikiText</a>.</p><p>Learn more and see it in action at <a class="tc-tiddlylink-external" href="https://tiddlywiki.com/" rel="noopener noreferrer" target="_blank">https://tiddlywiki.com/</a></p><p>Developer documentation is in progress at <a class="tc-tiddlylink-external" href="https://tiddlywiki.com/dev/" rel="noopener noreferrer" target="_blank">https://tiddlywiki.com/dev/</a></p><h1 class="">Join the Community</h1><p> <h2 class="">Official Forums</h2><p>The new official forum for talking about TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email.</p><p><a class="tc-tiddlylink-external" href="https://talk.tiddlywiki.org/" rel="noopener noreferrer" target="_blank">https://talk.tiddlywiki.org/</a></p><p>Note that talk.tiddlywiki.org is a community run service that we host and maintain ourselves. The modest running costs are covered by community contributions.</p><p>For the convenience of existing users, we also continue to operate the original TiddlyWiki group (hosted on Google Groups since 2005):</p><p><a class="tc-tiddlylink-external" href="https://groups.google.com/group/TiddlyWiki" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/TiddlyWiki</a></p><h2 class="">Developer Forums</h2><p>There are several resources for developers to learn more about <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> and to discuss and contribute to its development.</p><ul><li><a class="tc-tiddlylink-external" href="https://tiddlywiki.com/dev" rel="noopener noreferrer" target="_blank">tiddlywiki.com/dev</a> is the official developer documentation</li><li>Get involved in the <a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5" rel="noopener noreferrer" target="_blank">development on GitHub</a><ul><li><a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/discussions" rel="noopener noreferrer" target="_blank">Discussions</a> are for Q&A and open-ended discussion</li><li><a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/issues" rel="noopener noreferrer" target="_blank">Issues</a> are for raising bug reports and proposing specific, actionable new ideas</li></ul></li><li>The older TiddlyWikiDev Google Group is now closed in favour of <a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/discussions" rel="noopener noreferrer" target="_blank">GitHub Discussions</a> but remains a useful archive: <a class="tc-tiddlylink-external" href="https://groups.google.com/group/TiddlyWikiDev" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/TiddlyWikiDev</a><ul><li>An enhanced group search facility is available on <a class="tc-tiddlylink-external" href="https://www.mail-archive.com/tiddlywikidev@googlegroups.com/" rel="noopener noreferrer" target="_blank">mail-archive.com</a></li></ul></li><li>Follow <a class="tc-tiddlylink-external" href="http://twitter.com/#!/TiddlyWiki" rel="noopener noreferrer" target="_blank">@TiddlyWiki on Twitter</a> for the latest news</li><li>Chat at <a class="tc-tiddlylink-external" href="https://gitter.im/TiddlyWiki/public" rel="noopener noreferrer" target="_blank">https://gitter.im/TiddlyWiki/public</a> (development room coming soon)</li></ul><h2 class="">Other Forums</h2><ul><li><a class="tc-tiddlylink-external" href="https://www.reddit.com/r/TiddlyWiki5/" rel="noopener noreferrer" target="_blank">TiddlyWiki Subreddit</a></li><li>Chat with Gitter at <a class="tc-tiddlylink-external" href="https://gitter.im/TiddlyWiki/public" rel="noopener noreferrer" target="_blank">https://gitter.im/TiddlyWiki/public</a> !</li><li>Chat on Discord at <a class="tc-tiddlylink-external" href="https://discord.gg/HFFZVQ8" rel="noopener noreferrer" target="_blank">https://discord.gg/HFFZVQ8</a></li></ul><h3 class="">Documentation</h3><p>There is also a discussion group specifically for discussing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> documentation improvement initiatives: <a class="tc-tiddlylink-external" href="https://groups.google.com/group/tiddlywikidocs" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/tiddlywikidocs</a> </p> -</p><h1 class="">Installing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><ol><li>Install <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Node.js.html">Node.js</a><ul><li>Linux: <blockquote><div><em>Debian/Ubuntu</em>:<br><code>apt install nodejs</code><br>May need to be followed up by:<br><code>apt install npm</code></div><div><em>Arch Linux</em><br><code>yay -S tiddlywiki</code> <br>(installs node and tiddlywiki)</div></blockquote></li><li>Mac<blockquote><div><code>brew install node</code></div></blockquote></li><li>Android<blockquote><div><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Serving%2520TW5%2520from%2520Android.html">Termux for Android</a></div></blockquote></li><li>Other <blockquote><div>See <a class="tc-tiddlylink-external" href="http://nodejs.org" rel="noopener noreferrer" target="_blank">http://nodejs.org</a></div></blockquote></li></ul></li><li>Open a command line terminal and type:<blockquote><div><code>npm install -g tiddlywiki</code></div><div>If it fails with an error you may need to re-run the command as an administrator:</div><div><code>sudo npm install -g tiddlywiki</code> (Mac/Linux)</div></blockquote></li><li>Ensure TiddlyWiki is installed by typing:<blockquote><div><code>tiddlywiki --version</code></div></blockquote><ul><li>In response, you should see <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> report its current version (eg "5.2.4". You may also see other debugging information reported.)</li></ul></li><li>Try it out:<ol><li><code>tiddlywiki mynewwiki --init server</code> to create a folder for a new wiki that includes server-related components</li><li><code>tiddlywiki mynewwiki --listen</code> to start <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a></li><li>Visit <a class="tc-tiddlylink-external" href="http://127.0.0.1:8080/" rel="noopener noreferrer" target="_blank">http://127.0.0.1:8080/</a> in your browser</li><li>Try editing and creating tiddlers</li></ol></li><li>Optionally, make an offline copy:<ul><li>click the <span class="doc-icon"><svg class="tc-image-save-button tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z" fill-rule="evenodd"></path></svg></span> <strong>save changes</strong> button in the sidebar, <strong>OR</strong></li><li><code>tiddlywiki mynewwiki --build index</code></li></ul></li></ol><p>The <code>-g</code> flag causes <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> to be installed globally. Without it, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> will only be available in the directory where you installed it.</p><p><div class="doc-icon-block"><div class="doc-block-icon"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg></div> If you are using Debian or Debian-based Linux and you are receiving a <code>node: command not found</code> error though node.js package is installed, you may need to create a symbolic link between <code>nodejs</code> and <code>node</code>. Consult your distro's manual and <code>whereis</code> to correctly create a link. See github <a class="tc-tiddlylink-external" href="http://github.com/Jermolene/TiddlyWiki5/issues/1434" rel="noopener noreferrer" target="_blank">issue 1434</a>. <br><br>Example Debian v8.0: <code>sudo ln -s /usr/bin/nodejs /usr/bin/node</code></div></p><p><br> +</p><h1 class="">Installing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><ol><li>Install <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Node.js.html">Node.js</a><ul><li>Linux: <blockquote><div><em>Debian/Ubuntu</em>:<br><code>apt install nodejs</code><br>May need to be followed up by:<br><code>apt install npm</code></div><div><em>Arch Linux</em><br><code>yay -S tiddlywiki</code> <br>(installs node and tiddlywiki)</div></blockquote></li><li>Mac<blockquote><div><code>brew install node</code></div></blockquote></li><li>Android<blockquote><div><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Serving%2520TW5%2520from%2520Android.html">Termux for Android</a></div></blockquote></li><li>Other <blockquote><div>See <a class="tc-tiddlylink-external" href="http://nodejs.org" rel="noopener noreferrer" target="_blank">http://nodejs.org</a></div></blockquote></li></ul></li><li>Open a command line terminal and type:<blockquote><div><code>npm install -g tiddlywiki</code></div><div>If it fails with an error you may need to re-run the command as an administrator:</div><div><code>sudo npm install -g tiddlywiki</code> (Mac/Linux)</div></blockquote></li><li>Ensure TiddlyWiki is installed by typing:<blockquote><div><code>tiddlywiki --version</code></div></blockquote><ul><li>In response, you should see <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> report its current version (eg "5.2.5". You may also see other debugging information reported.)</li></ul></li><li>Try it out:<ol><li><code>tiddlywiki mynewwiki --init server</code> to create a folder for a new wiki that includes server-related components</li><li><code>tiddlywiki mynewwiki --listen</code> to start <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a></li><li>Visit <a class="tc-tiddlylink-external" href="http://127.0.0.1:8080/" rel="noopener noreferrer" target="_blank">http://127.0.0.1:8080/</a> in your browser</li><li>Try editing and creating tiddlers</li></ol></li><li>Optionally, make an offline copy:<ul><li>click the <span class="doc-icon"><svg class="tc-image-save-button tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z" fill-rule="evenodd"></path></svg></span> <strong>save changes</strong> button in the sidebar, <strong>OR</strong></li><li><code>tiddlywiki mynewwiki --build index</code></li></ul></li></ol><p>The <code>-g</code> flag causes <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> to be installed globally. Without it, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> will only be available in the directory where you installed it.</p><p><div class="doc-icon-block"><div class="doc-block-icon"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg></div> If you are using Debian or Debian-based Linux and you are receiving a <code>node: command not found</code> error though node.js package is installed, you may need to create a symbolic link between <code>nodejs</code> and <code>node</code>. Consult your distro's manual and <code>whereis</code> to correctly create a link. See github <a class="tc-tiddlylink-external" href="http://github.com/Jermolene/TiddlyWiki5/issues/1434" rel="noopener noreferrer" target="_blank">issue 1434</a>. <br><br>Example Debian v8.0: <code>sudo ln -s /usr/bin/nodejs /usr/bin/node</code></div></p><p><br> <div class="doc-icon-block"><div class="doc-block-icon"><svg class="tc-image-tip tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z" fill-rule="evenodd"></path></svg></div> You can also install prior versions like this: <br><code> npm install -g tiddlywiki@5.1.13</code></div> </p><h1 class="">Using <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><p>TiddlyWiki5 includes a set of commands for use on the command line to perform an extensive set of operations based on <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolders</a>, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlerFiles.html">TiddlerFiles</a>.</p><p>For example, the following command loads the tiddlers from a TiddlyWiki HTML file and then saves one of them in static HTML:</p><pre><code>tiddlywiki --verbose --load mywiki.html --rendertiddler ReadMe ./readme.html</code></pre><p>Running <code>tiddlywiki</code> from the command line boots the TiddlyWiki kernel, loads the core plugins and establishes an empty wiki store. It then sequentially processes the command line arguments from left to right. The arguments are separated with spaces.</p><p><a class="tc-tiddlylink tc-tiddlylink-resolves doc-from-version" href="https://tiddlywiki.com/static/Release%25205.1.20.html"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg> New in: 5.1.20</a> First, there can be zero or more plugin references identified by the prefix <code>+</code> for plugin names or <code>++</code> for a path to a plugin folder. These plugins are loaded in addition to any specified in the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolder</a>.</p><p>The next argument is the optional path to the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolder</a> to be loaded. If not present, then the current directory is used.</p><p>The commands and their individual arguments follow, each command being identified by the prefix <code>--</code>.</p><pre><code>tiddlywiki [+<pluginname> | ++<pluginpath>] [<wikipath>] [--<command> [<arg>[,<arg>]]]</code></pre><p>For example:</p><pre><code>tiddlywiki --version tiddlywiki +plugins/tiddlywiki/filesystem +plugins/tiddlywiki/tiddlyweb mywiki --listen From 3bab996acd6c37ee95aaa6185b6d75a67cdc8fde Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 19 Dec 2022 18:47:55 +0000 Subject: [PATCH 172/937] Version number update for 5.2.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 24023f900..e228882d1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tiddlywiki", "preferGlobal": "true", - "version": "5.2.5-prerelease", + "version": "5.2.5", "author": "Jeremy Ruston <jeremy@jermolene.com>", "description": "a non-linear personal web notebook", "contributors": [ From 55d9a5e16d5ff610b9d3f2af3eb77892e828f73f Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 19 Dec 2022 18:52:03 +0000 Subject: [PATCH 173/937] Preparing for v5.2.6 --- bin/build-site.sh | 2 +- core/wiki/config/OfficialPluginLibrary.tid | 2 +- .../PrereleaseOfficialPluginLibrary.tid | 2 +- .../tiddlers/images/New Release Banner.png | Bin 18183 -> 69195 bytes package.json | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/build-site.sh b/bin/build-site.sh index f8270cec6..cd5267389 100755 --- a/bin/build-site.sh +++ b/bin/build-site.sh @@ -5,7 +5,7 @@ # Default to the current version number for building the plugin library if [ -z "$TW5_BUILD_VERSION" ]; then - TW5_BUILD_VERSION=v5.2.5 + TW5_BUILD_VERSION=v5.2.6 fi echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]" diff --git a/core/wiki/config/OfficialPluginLibrary.tid b/core/wiki/config/OfficialPluginLibrary.tid index bcf051d3f..cddb5e1fc 100644 --- a/core/wiki/config/OfficialPluginLibrary.tid +++ b/core/wiki/config/OfficialPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/OfficialPluginLibrary tags: $:/tags/PluginLibrary -url: https://tiddlywiki.com/library/v5.2.5/index.html +url: https://tiddlywiki.com/library/v5.2.6/index.html caption: {{$:/language/OfficialPluginLibrary}} {{$:/language/OfficialPluginLibrary/Hint}} diff --git a/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid b/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid index a119d4095..b9ffb0fce 100644 --- a/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +++ b/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/OfficialPluginLibrary tags: $:/tags/PluginLibrary -url: https://tiddlywiki.com/prerelease/library/v5.2.5/index.html +url: https://tiddlywiki.com/prerelease/library/v5.2.6/index.html caption: {{$:/language/OfficialPluginLibrary}} (Prerelease) The prerelease version of the official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team. diff --git a/editions/tw5.com/tiddlers/images/New Release Banner.png b/editions/tw5.com/tiddlers/images/New Release Banner.png index 5bc4a005d8b1dc9b48767c506a2d8188e6fd2d04..6cacb3e3dd58df0e074250a57768443b69aadc33 100644 GIT binary patch literal 69195 zcmagE1z23m(l&}a1cx9226uONcbCE4-2;Ij0|a*qI=BS);2PYW;0{3(Ai$mMea_k6 zchCL*JI~DX%vx1l^>)`=)xEk`l$wexItmdA6ciM?yquH<6ch{_6cn@|5)9;yQYVu& z6cjw1otB=bp0bjFg^Lr5nWc-l6^pNvD?|<jB_!(WYG&bJ<w<UCWn<?o47lv*29VoX z3IlYxmD!YCC9Q1j<ow;OH2qbyEc_iT_$>jVA}B(>0uTdER-R_$zD|zL9s<6?fWPbt zK>q)^%?cp@OU2Vc7@()DMlR{%Zbi<`!p*`45J4dqa<{Y=(2$b(S7XSPFu>N+(^Y_# z)yKz&#fOu{#odOLou8kdm5qaygM%5O!R+DZ>}lr9?Ce4L$Hd<@q^vwF-0fUF?OdG6 z|JXD$ck%KR1^^&(@_!?9a{Z5SXODmN9x@KBzGkkh>?~}o|5Mr3*2UAs!`9{h(Bwbj z|7vLEYxhqd{+F9SlK)cow6p#{sQ;1tmpWvum6iYRy>N2+UmfxAl=g-U#J>jhe*yY; zzdf}4T&-9&tUO%2+%2r6y{()*DgPP^h&KUAcPlebD=ElN7{I{>i2ys~%df@GE5OMi zz{bzW2KoF)S=q(X&f4$)Q<+zQjnCj8MF=x2%{<Nie^mc7%mRND|Aqn~<o^}NKW!vk z99`TYkRZr8|ML8gNM2G>&E3V?&JiN>(2$iNmzS30Vdv-JVdh|A|4a8zv;@@be61Yy zr0krmoIN1S5(aSd{N34qr279u%E`|CPust|YeG^A;^J?Ue<CU%?__3UrE6#DY5R}0 ze*{Wa&NhD}|F-m(<WFQAz5Y;J+u05hOOC&s{3X)+M<xv5<zW3Ej`aUa^e0)!h5n+D zfSjF&r;EGaU$_3wAWbW`zpwtjbhP^`b;!y8B9MTY#UKB|09SVxOD_v6%fBE%%>6C( zaIyCEF>|*Pw}Eg+7ywB|I~!*!cXB&5GfQ#~7B-f@A^%6;$JPpB>;DzTzZt^%FG#F^ zviRSagjoLzwa{M*|0C@o?f$+8DJPJ+#QLAY1iAQ6X|r;M(8nE8xR!14vLVGW#12A) z{~`bs6kVcM;x|PJaokAJCbluUGU*t6?ESGqv|=7{1wC>s>x2av7ZDh;^nlcaW^uy; za{D<4^<Z(QkBj1JxZ;hU7NwmSoDVDVr9N+uKOFFSU~t;>5UDV}?Xn}}Sn0$^`IQrs zNL~62j|lYK=_Ati^m2D*k&}Gt95x?X6K~Mj^>{T{vp3T1nFR<Hlo=TN8t}D#)>Yob zy3o;>(cb1XYoQ^){mOZ#7jB}gqVsFbl9}ZCW0U4`X4S49DI+~IB@=6@Xfg}k!czvT z+du>A4ffMOzzi~0Ph|4jk{`QPVQ!gSXgg+dI$R@UEQeD`$wt!FsQ@AeD*41=W_$69 zVQLzw_-}HWTu-kpwf^Swn&lTi#BUnRI^TSFPaLEWaph%6C^~E!5c<uLS=0x~f~+vz z-ryD5)3NVCTRG;uZxH`hs6w6DAkA@SQ3_^Lr9c=4$UEI`bgb`{myC$yGNKFY-xO)x z3mhI}<*l@t?$?(eh0H+6u5$VwP*A8ie}2$VSviDIP~=eZQsP>^IcHsd8ODQdtVUkO z6ShmX#PZ}}_yf+Ef`pEaXugVPzRKpXDk6ey`nmfwKWR*y19zF9?uAFw*Qr!?m{dA< zsg2nXEIv80@no}SkWz^eoj>u+c6z-YU7VO`=lO7XSi@y)SIbTvbspYoY#e$%w^vkF zJ}~ME$pcSjZKI+Fj6MB{<h~31u9{V5iWFR@3g|XZ(qbHTFtY|=&j=3W#LNpSG2y;y z^lH;-NM-CwVwLk*x-nZ}l`pT`l?qP()=ND7tVI+<muEnrzQ@K}ZCm?#EFk2~p=o&i zUWt;&%IQ^e<B9ZT!KYl&BLC#UI$sedljMi%RSK@ecL7i*Pa<w1`aU^rqJq>o10yE_ z8|D3%O(hAT7#$3?0ln}-EL1ncWv(!KFn2<KIWrzs@)rj-`EQ%*wlnzpjnTF#9LSt4 z(iveOfH4PsmUVOH7khcq!5_)kM0TnQ);+fkPp20hDH%)39PRU9c1?nWb}kr({kRX~ zI|3^MI%Q4gxj$+dP?k=~T{FvaxjsW-S1__AgW$d+D}=+5qtIun=O8@OgsA<BfzdI@ zxsqQXnEXwp_3<DfeWpr|Jb`cBH7S>K6G^KVj(j*#TRwrrfGGP-u2_z#p&O_gu%A+3 zpe$Ej@6s?p;b@>Mc{1Co@dttVj)V&G_^{%N7OH_Gnb~%VHqMt3>Rc#CH>@DOtOfJ( zD_TlT1Y9hb@M0JvxFC0#l%<O8g1*vl-M2S8Q)XOfM>xGNGkIf?m~LFKL>7i>lQ3wN z%~VOI^pt5@IjOX|t-C0-m0Tg9cHKmo=p~?`N_sn&!U>E<x{MeKzimx9_mh@>CpL8l z37&*P^b;C>>8);34G#7It-mDI21Q7>@z-4wT|0U`^#E7DQJ#t8@Kn6T*#gP3vKbzJ zF(&PSVm?HHWOF4JWerXo5%9$rI0`tZK{%A>Uwu*~V&C5s>@bK1JLj2Lu2@veLhe-# zn>t&ZGATESSuD}k$K>c7k;fj;9*tk26)u<1HgizY%%``yjZL%>wz0a^c@jZ@cches z>Q$qGM`!hnwSa`EK3$hofx~i^Bc-v=0sliji8M)Lim-{}w!+X`V)DwST#<hst0IIf zP$8j85lDpY1zoO4TBei57bWTS7#YoWI3i}MgW}WoDEkYnf+)`puy#geM;zuvaADU@ zHE%MK8&Yv3s|#@k!)0r#JVXv#BdS;iRPhL>>Cmyi^VtrSl%=`s-Gjw`4^LlRx6cH6 zv~=)UoL}`rrWvwC+OA=Sq!LmYsvJ-Nd)ufL_Ys_edp&~N1Yk__oV*|zmEvPbPVl#j zv}EdoL1lKH0c(9yfG_*4D2=~FQp%!sm5f^4i(0DcnwT#o5-O;syO<eW0cIeAJF-y9 zJt{~SSWFqhPmT~z*}fvIJc7hfM)R`^Lc6D9@*K08fjoy3ed+<JCI}O&X^>L$dNwZ8 zvr;Xs*nsrSuoArhSS1NV)NpB5KwcwdH4Zb4B+shetl}L4cH<@rcI3AdAcaxJN8`aZ z+DvY0_VUVtMeygHWxbQ><dm-=-ZKdXdlwq%aZ*6^az*%pHoIS=^*CJZA5^{MWTeL3 zR4c!4PPU%)0&>!h;61S3&Ww5k$JjNAup^gD?JsvJSp>oaBy$<XqqD7;`)ysUHdPW_ z9<aXim@{hL6TEq<A@M9h4iSG}hwfv0&efe%H#3RQej8c}AxsnqC1WPo5ni}N7Ft=y zV4+ZYm0v3Cvjx*QuJsjOOpOztAN>r&z7@b+J}L#gpHPKXt-k9>q?^C1TwB>bU}TgI z+DGw;SKw*2?U=**CR2WZn?u@Xa&VMFnC$klhQFm7SD}T960cEuR;=#jKM!W{f<6vc zX$q~K%ONctQd!j8n94|`rjwB}s{=Avhe}h@DAXa_SD96KHEH5yDV|(tdHE%hF~9*% zpqDK>^SWC2b%CgCNwYB%h4hMdDtU#Md<%Cn<?g9yf)(#&rKqNNz6|nprm!))>X+%k z%wP7}spp<$#x1aTmB+PzxRs!${iPso68**OLxlx1ze4sR{_p*rLUsDbZ~KTw+~rn1 zSNhGk4#&l2n1}oCs}lJXjiYH;S*xg_<LP;xrGE0LfVHKOEw^9@Cg`uQvuk-7vs-IE z=y^<L>!E+%Ng^Tj;F+uz8|iHer7R`VxU%jTnFohL{Ps~I)M-rCl1lNb@31K3U%Q6J zZ4BVTWV`G2vbmwyPw3?CxjPk&b%w0+pqEssnIw)l>DX$}M^kUAqr+gD;gYHFrLaeV z_=dxz$JI8Fq&q#rP6q;4_Ub*pe>Kf3J;OFu?x6sXdC{+3^}zw?K?VWD41=s@8JQ@B zzUl37^YFz4gay$b2r{6gvkABN4|iGG=?tNB;aV`y7Q-Z3tI`GJw3RqNk@r6c`g1NR zC_OXVQHz4iRR{=8i9Zfv;rDH(Ntd6XM4QKb&<(#W=h~m9vo9}!axrM?r&<cgE$;s6 zcF$Y%=DlfkbOC8tp~5iSWlMB`<Bc=hekYn7sLAwnjCXCYm_`2tW)?L{EspOhOjR-8 zeUYMT5i^fod3`IZr8P?$wO%l?vukpqDKRG#B-Z2iiJ~yy^+P*lJ6saEEb+MfYK3Tc zw2P4f7Wz&?y{<g9Ig-4JeIg??ldu!)Bp6ipU_ix5zfCK3=DnfugssRBfVUa0f=Xr7 zfbJSsXC%pL_4LlXVv^&#OZDACQ(=re5ath@2v_WLs1lsb)-&6uS#E4*9MU~HgoYU; z81dOUTq|rO)|RT!(Y_*-FoRMa{}tv;)mmb3x4j|bTggU`xxh1MrcMQP%<EHQkg=Zn zo>m~<7=xxVBNyw1yt_S)aYvh6mIsmz0h;`T`eA^_vaF>>kAFES%V%homxHubjN=++ zFM4$!i!;=SoMKD}n=rjW#*VucgHKmXWHiw%8@(ZdB!&bzk(v)l^B;+%OVbz;(|m#1 z;aXkffO{Sp6<O?UPZ1wE5y$ec=SH51MPpWVA?BlLV$CS#lsnY)GQDGw9iiqd8@~*+ zlyf^;c)*vE$%8qwmaOB*A$lTd<fQh+x45UwHi|%haSdI`tTU~#_jP?U!qUiKf8_p) zWIDvTGhj>W(6opj_13^01><{xiO^h>9qep}N%Waf!8XYgF;|>M7)A*=cLw<8!ZVp4 z^h>d2FuckStFUdZ9h)V{pUl*n5>muA0D!aOS>2Hg$4}sH*oC4v2S?;l`hj*+cB)Yx z!_Y`cbKO?l__6pembHqkgpkPWQRAXJFMdJ^(G*vh$wAdBHbWUA5l*37KC1B4d8aSF zJ784mCs4l~RCpG5cPv7bGD9yOrZK6l8M*3o^N}nIw;wP_#4EbXtw*FUbVKMjb;@{O zqSX_xY0`L}(!<2TdQ~f$T!<k)dS6^Zm0kZmFKUNg(*PMKGJyy$z^kE3h3uFeKR1OU z0uHDI8Js0cUcYi9EjsbO2dpw+oTgF(=K3eG-_&p@1+7tY9G&<(EUTn6XK~bl^YZkg z=b;<rL?o)z7Jdii-tg<`4At8n317G|2$&8;jCYlp)gI<k9txE;#3`#Bq*+RJeB2U9 zUQp<i_@Q#WW+_K5qATzoF|eAz*d26-4T9sJPGr0mw%>MWUu|~j*I%5T&!T>4Cz`b^ zc5kkPfjK;O7A@*IWJ`fF(vWihl1H^X*SkF^^%dXZNDdGYbA%wZ!T<)d@xe<STL&+m z;@9nI+(k{Dw(b<O*@b}gpey^7U2=*Ew^OK1EJKXNvgTzJyiT-`@%&3+Y7w>F;h{2a z&bM)KnHDDy*bv*d2fd_d6l6NTm&U31jL94~?qsb<=MxBdaTkxu?U#9Tlqvk!B{>`! zqa=^L#X0zvGr2m-A=Qw-?zR(gaxiH*S2oI8b<&b7A|-=#aH|r{E@x&%RZdAtQBcyg zxXLrG3aBttdRyWeSnLWGRW_tMab@y~rYUWY-9U>Ac!L}|8J2~Z=r>cuoom+^olhGj z2R2NBq18wxXabLYRy4G4{1=ty2fTAQ=>Tw{#4X?VQW$RaRmUk0jz+6b<@M5&aO=@# z<nkDZ;Rwvqa>W^er}v~j#g1-O4EwuQ6FS+gB3g`Qf)+9tbPNJGhFYjK8TB4saqQ4f zX01~KE|_aT4UoI_%>@i!;+`|p!wf$PM?^#NZ7#^kD=2n+9bZ_Ciug+Ip`3Biiyklj z<gr3AIs4BvkZ*8R@pEl-WOuQw;U^K6t(-=TBpqEmUAQ`-b~y{$t=NZ@N1Wnr6j?j4 zJx*Ua-BhI@c)kb&rmkM7m940$+Lgcx{|qxiaE!Q5*8JT{T7_$z=@!M;5T*H@^+-Z5 zKnn(nTYJ55)nY9gMgL<AeGRLOq{E}5k@1oR#>0=2>{`!bcrl<@mXTI8TGvp>28$FS z*vsw{oB?hEUYv%?!kAA*N0fv<D*HV(BQJkldQdblzBl#rEPF4~&m`f61*3RBXah%P z6khn3dLF6`aVv~e3Ejj~ly5e+c1F_@mKw|zT>B8%@C=)%iN+1R6wN<AoNM=pB|w20 z&V;_L*&+8eaO~@2_#7cR*7s3GNY_5sv~wLpmUPK6#m;5Bb7FK2YPYn5a(ubKVg-#& z++$r$0U1`W22=W^{S23OaEWOvLl`ABj!x1%zaM?GJFr=g1sk(9dOw9Q6$<dI_80>l zMgp=oT}h~$?WV8W6?cdm#-q_U$&U+VlzfwMQ%I7}fLnKtgw?<vgHmR?rhZ}4#{hfZ zOKLO)3+E(1&kKw${6aS7A+v5&pqQNAu7Zw}6Ork7QiMVkkg3$)Dt}+K+iFB5FlD91 zA+VBf&kZ#ms&q;uS)Qv$8L!pM6<yEgxQ>-Rv!sn#sN$E=?(wEy_R7~qj1orAOJ=eP z$CZWIyGarDe)b3F=VOfL?{wi-48SQ(uzVC3X*M6lGn>X2@@Ba+YwWL#C_(cBODbiO zE6kc3W_nN44<OB}oj!Q~ki{S%Fw1j(A%TXe&8~@(-pSnSQMOY}k#s<ML4j~uF6p*6 zFD|ppX_-Nbwg<$=r%4k4&9YR1I8P_3VM%36bHWuAGS*IWI<Zb6ZI_Wh*O*K3mPcWG zEF=fN@?HaalcC1%y}auZA#HM!<>J&B1xs|%@pEd|p#c8qh87dOn0m6+4KU-j5&Bo1 znD({3pSM5H!qp-eSp`C@FItr`p6wrpFmY4(wj%A^(S&vD+%U!H=j2Tbrf;hhKF4b& zjz=$jugDh+S+7|r1fRhJc49l;O6sgBaPNt?W=i^(!ZF8*elxzK%aCGN%VtrwQkj`J zqvxn2LZhffb<#~JZ2eeP<&brzl=4WWchl<o5qvxzDEc*1h1o&@>jxWKpul)vM*>}{ z%=h}rHbNL+)-TBN2U&%?;n!`8R2BZy6Q4XQrL{n;RCtvqCZ;7TlEtvq@D<TyOqK&L zn%C_zz73R8vKwxw0qK~hlU(Jr93l3RKw6gA=zT*Wf#j%p@`8e^5Cxkkd=)^bk{;TI zHs@na5m)SpUQKr97rPvkF;;+fbs}0*W)l?oG;G$u3-02w&wW6@#aW$Lr#@c1f_AxL za(Md(uHN#LY6U*|cndwb-ytyDzjfrjQ^^HSn5k4o01G=N_!mY~1=+6}jq`r*%f_u< zLPBD&kCG%z6R}XM;IAuGaN9pM9hO(xvMf+8@we(pG~3`ls0Fy%h~?+OTfgb9divOM zW@au`VubZ*K5r+tOi`2LX>wQG`2jaeyDqYD*-njMG5{%%B;tXpolE~u3MOieH=WOa zmSeDXHO^<dUn|7^pk0h@r1osN{vmB958EgVwZ(-@iujS;K})k1dE4kSvL{n15$?0v zTl!4>eHfk`9j%=(5%e~NU0Q0d$PtP#SvB4Rdpwxtcyo`QO+9bxQj0Vgg<}N6fns-m zEXoqjM8c00(2faCKx<Y`%5qnEg|?$5@H?Lo(F%p-0P|e8#y1@&GgRQ3^bIK*8dzk@ zVNN{k%*+{<Qks-}hVXR?>Ij6M6Z={(?D2B0L7~v&z(edfOkwc_CZ^;O!9gs5ImM&` z)@8{noW9XS53Pg$NTC99>HGsVxjWxE+}i{Iwe?amvNrXsikK{#1rFn?qMv*eFmJCp zY(>)F%4yVk{7bZ+bxM1?5m&;zj653WyX?wDv$tR69gw-Y_Fla0u+<3?XfPHqM7yGr zT5=wU>_C&K)+lHF(DRFfi{9y0nV8}|8Mvq<`@rK8qupvYrLMY@l(#l3=ac8mcU0;1 zIMYLdOy)kTu5Q35W3CVZUx(mUeDp2LP+g@T=;Wpisb_G50s*F@JpP<Aa&!)=<mzC9 zRd`s-Z4!Q)BF*{)1c@pKxyO~`LA(j}tw4f88V)aIZ=A4oxo@-l8(4xO-@v8_sQ@Md zb$m=IZrWQ<t$41?3qbUJPCK(m&Nn7t3-CM19A*(>4{0nd&>JaD^Ik97pEgBTvyovg z5iN=B0%hlxPGR;e72{YsCdqT|n66z1X1zVH9M;K}%qnjCnZX^YGj!Unf5f@E#W^}b zFuCAnfr9!B?Dd$Fjn<|reKt3b{4PAU-u8JT_Z@w+?h4J(tW*gLxiVZIvMKq`xwa52 zA?_rB8rn7FV1_DmPJM=<W&*wT2eMykSP^Jy_>$W$B8$D{GzG{fZ(<3Y+vN5+BstX& zb|||{GG)T{D~(th+S?+n;eXBCBkzBFmvkJ}1jLn`E~JYGmlnDo=6~Vt?9eUwRpP_Y zD(`jGP2aVDwrIN*p7v%{qw8~4cUbYe)Gkt%F%Kmpph1ywSUejkFO#-A^ir(C2&XY0 z(}19rVh7g@Bsqq83go<eDNQNt2>Lg1lY&m86H&+;ukx$Pp*eLqs5EL%L;XC8c}+F+ zWj1>&SoDa}=b|L)(LFW21V8E^T$8Lq;VJTMM2epceNvZ-9xD142}La;|M7~BDjh~J zHE&i<z-SC^M=`@jXoIw*P-#i$6#8c9O7%fr^oE9Z?M5pYUuzvD0_<k*`%As<u=KZe zV@E>f^hEVEY=PwgPy2_Z2bub3v}ymSJWam_MV#n%2RWQD5~6K#CZADHqGUcv)qcY= z!dbdotgy~^X@#JQ5$p7P<K?&49Ms}8(YNmSRp?75nAsna@@*76f(MB<2(vd>_}bFS zD{O(^kc?=R@Q@`L0^ktpuA1}dJZ^g1lc4l=N2As7R0MHz824bt4mupt$$vXWdWW2% zG?Q{s{q$<XD`7gy?Kd<cgLU4x1?!ZfEZHGPC!b`R<h`M_t);f|iQNZ)JLbSqkR^#g z1af%&@^&OL95x6KJ*g*Bf1g7Wn7Jn%NYf9CBhJKO*~FxS>go)XTB)+UuffMWSw6i* zy0C=RN;#t^?LQOI+F0Dj48#B87Vfckt&o`eViCjOi-qOr7-@;I?GxT*{e*~J$j-c} zIpA5l=@o~-sU6gq$4vwOV^Q6|@*AHxg#^N3O6+z#gAa*4xSbX1CvEC`Y!RVI8Ljks zMV#bznhuMM0pqff(-d;dceWE!c9DUujaFFlnrn{VHLkWn+ho05CQO}WwjbnqUnm)@ zpNA}nVXPx(r@KPWn>2AVK=KSRMhKi#6?`k(0PT(XBx6!8chyx?A=&l1fi&>7ofU73 zjv8MmN@=d4lo^;IeA3#{^Z+KHziUFpi2lt%5IV_rj71L40KJOAo&&7fn<DH~VM%`d z3$G>?dxfH(pz=^93hRuNk6=Zd5XhrJor3ehH}4N^egX&frEIp?HYw_9>^RAo*-33T zImIPIY!;EvNe^dvT=6QurML$dQmIp<DTR2Eh`}T$XT*ECErf&TIntR127~hmT_O2g zA$iN&Fh_(JlnJddX81g17c?l&xquH0b6MPcUNbf2&w?e)%QJ#5h#rtRXsg%B1EJ+7 z={m>L^g$*7?_->-RphQw!SBNBodin^3Un6ROmeSQ(h3P~g2(Q(6f&z;Wr2Pyz+$EX zygdnCjzwOJb_a8WWadlROlP`q{mJSpi6XM-ubx^`BVM1*Uzz!kIo%@LlcW!n<+0h$ zZzF^k%(pzvL@xFNkW38TPr>m>0(#P~kZfzsyP+--JGc7U{^ZIVr_oUcX+6wTR8nnw zj+rR7UdJ2Nr6#H5I~XHMSW$Z^-)s{r?9gSEvaBuyAHPRk3UnFTq4htk%Hwbfh(wc; zn*Ho<d%4pKjQNRPweJ7QZ}`>Y;CqBfKdhmMI^MgaPcrQH%`%!lK%pX;Nf<96b^^Ze zP#Z(){zL6hINY-J12n+4(k;nH?WyYg!Z&Nv0-6dNTt`P(-zpqlJtpP1oQ--WWmzr@ zu^_u-%V2EP*=P9l&6b_m;OF12Uh}r6KB8ZPry75+DOB!7S{Hewm06{rO{2B;%cz73 zW^@6og8AelSAe4-3YZM6vvVt@!gIk_!jN7B+#~y3Cq9d5urF+Hu1wue26->eb`a#g z+CAE>HoUAmiMCpv0&QHnPpRJ8@3%`NR?l-O{36vBL*L9Q7DZS^qDwGGJIKGZyrb$Q z9~H$r;n;FT2NK2h3M9)BB_(K2j(jEP+{HZN?<tVFF?ku$n+Aav-`}I}4vvRGialwi zmSDpv7keIDu>_o9DR%rqJ}gg5F{-_Si(fx;4tP_HM;ZCG$)JeRy5hU=He)4T(by+7 z?&s-i-mS*l{k$xmpQG)CvdRr{-8PF?KXZO55D6@|+=Vda{hlYj|Ltm5v+9MhLemms z@km!XN?I~xaHuDavQ6=E{^w_0UNeTC^G-`@r4{|pg1B@gqQV$gUqpu!^>jMVEiC9w zr{)fw9>y|v2Pgjx)t!bK7k;PDQ^rr70X|z^f-@jSA2?9`a~{PUQOh8}y69snt#<VY z9R&~h*wre>hAKtHs$%eMoObQ&aJfewk=^U32m?(Y7J<vh7Z1^fhYMcemzkEcfIxLe z78rh(k%G@uqzR)$)^~vkfvWkDGvQ$Zh6{8X$o{x=?QmDV)TGAa8Ywc<fcf~1O3^HV zxz2B7=Z4SKbtzx&lSTQ>D}Pc!wr)u)_e$#IrV5yM{3vXmq7t#}Q%DQ(u|gb~7noG; zd130L@qP0<nVvwO6b00Nlk&ElFo_`lrX*!w2!433+<KhiOkd|ssv$&W|5kV-x)FSF z$g}ydNc(c5{FL|k@=8Oxja?3KHqX`Tw-xnnQ%(id5&&xZE^@FsMZ8i5ilp*pEySWJ z*~##TtcN3zb(*gVT%#RIdVd+w!1Mn2?8@A_5OM}YL&UxyHcv%99j#^{O=o_A3C+B3 z)yjs@1&C>Pq4?p-!9_vC9=Xg@6~)hDBey#8mS1_TldoJYjM$4ZS;%9d=UDXSr-$m} zqu!%k<G{i;b$X!Z4E&PIulqH!r$b)SP5vU8SWUe#!$7{(D-c=_<0{JA_#gFa(&vu! zq@fA&2u-JqigGwTA`)L81?fa5k7vSl7?$7pWc{3#eNuTC(o@j;dEBDj(eX^9(Lx!= zE|JZ*nOMYE7Kg0Bu3B_tHs;+%PU0|Sq3k!I+{{~t!WX4Id+?4!78jekOSWk0m{JP^ z#uecV`ls!r+XueiXcX7Jz2G-SzXG~{krX9raPNPg{U#bXllKz;wh|F((I13jD&`Vb z(N7UMjdy|8W0ZoQt0nu2yG4+tt-1K4Ug^653k`JvrtrX<hXF35MxPwp!L{MycjsH4 zt38L4#H`jd(2&aD2X;rf97lC5O^`~)PfHrXj%^tleOo2*R`v?R8>ATzQ*P*yss;^n zVfR}={wdSke6}JA=A?DkWCK+0h(9Gc-nvuGn|pI%LcAIK#Gils{08_d#KhS30k-b& z)>8`cz9az5WspWzK&Qa(lsadIuisMf5iutcuYp~KU623#l7{1w7ysz@^*6JHkcT0z zpY_9spZ!lEgZXsqU|Yr*#_9F60|BXGgTRS4qv4U2l2XJ2=NTH&F~`0f&4aL#@=czD z{*D+GBrAWIi7mHRAIMx#e_6(mLwQ@6dgDGd{kHp>m9~5TXPbbK2#|{>i^J(D%jCIf zf9XASyIW+3d4Qe^Hr&fJ6iNmSuoAvD$Z2!Xp*B~HE=t(wqm~8Do7i?G@W|m9{W%K! zp+!OJ(kEr%)xfbH8x}%Foa7kD(rAk8*w!=H?eh`7wcWJ}#qAel0;ISTDiMvKF$uRe z=t+OMct(H^j9Grx!Y_a3VO;}<ca44l2N%Gb>|l16yCnhcM?Z?1)yl0~+6EQ9r|)^) z4Z?ik<tncpWba^k)C@>qoDkgTj^tSutI-WI6l^84G~~nkEcVv+p!Gby=2^(U+B2?G zGBnny&#o)xWdy7;qjTb5&8(i*CiX)To$bN4KDs4JOhwrJ=6$`&c$2wXlDeRDusW&| z`I2kRX)IO2`lIy3r;M0v?Z?uM8X`%j1z%5N_~2>*Zmatc)UBU_!$d^%%xy=zhp#hF zmB$~iS~%_9fQU)TMgH*&D)&%BpXRP;sTL<Jt-^XRn!;rzq{c~L%*!7zbd&6}HPgnW z>(ytY9Yj`yIA=nbD-mnDZJDT*ASau%?2=%PFoa6JL1JS$C0B{jNmtoC4d7fRy!YKO zmt#P@*hpHayp!M~E||(%ihigW&U<vP%H(-1Gp1X#1cQHUzUA7`=6P`oxzx8KMHmUN zpc>C*o=_~v-bVNumm*@E?-6R*Up3#QsX(8IDDR9RHIu5YZ6D|`!v9r=9s#$6g!&G6 zz1KPC;+(`evpQwO7}<W3_@^GihRxzkAWa4q)SK4VP!@!QpSHtTMzT4Odtke|FjACK z8XwvI`&|GAPty6I<(F|hJ#nU<sAT`6$RW2`*I8~8Bj1DI*mlIv9w#O@Z407L{7xy4 zu7{IS`>JciFFWk`scu7aP7PP(na0K6Pvx9tJ($@O1y;Zby#tuLlhuL@{nShp+(b%@ z!)5QB4BNKnfOlmPkbS?-qy}P7?12aRoEx48Ip`jeAp0aZ*%Mbm<&$JhzBJ9r@C_;= z>XaE+K7vruE44TE1P7h2G>I<+ucrHzuk~)cLc@(a+`;eH9lpx8cHvpI;F^@*^F)jz zm8p@C7&X|YFCp>2*sa0AxeQD!NH|hp2|F4q`>9{;?AXe(Z2FGQ(v@EpmLBB#Y4(px zNi|+HERC7^Jb(QIO(>C=(Ajy!E`LXXgO+l%m}($?T0uw*1OgTBENhPsnXF6<fc16@ z+A(MaYk7?=j|D!We~FH>=`qfKOY6*k1H9ZtA>fMh5_m4%TJo9HtOJ&>oyIrT&ZdtZ zi_sgsRoE(B;jHwzrL5%wW3p=_{b-h{@N+P;5aYYcLB_&BK>F(Zyn>JdK8T3GTMDW$ zQvm=3TAc<TRloW|7-tS)+>N*+A_Cr{+PfAra(Gm^Mor<CP7&R(FNww3RJoEn66yxv zqdn)I(fzC{IiixOj4n+Mdue~tc}*6n(k@$N!7m58!QD2GX)`Ua55*NWTUjQMHPmj4 zgX%VNx0@L~D4Ivk!$q$d@swSD^_x{6s+)pRzKQ)0c;($`m<3Yg@P-T9I2VRBY$us| zaH`3qt?gvE!(sQ)(9C{a<9)-@Xm5?bmMT!pe==%gL@C(8L^_p<=GZppRzV|;iKu^` zCjT+7z=AF7?Mhp7Ek?<GGgmo?uM+9XMjE^3946{08g-^3@Apm>_0PEGjbWI($)Njj zpI4{fSZ9S4vvBu$23^xXsWz1kb;#Qz2T8sBT<<j$t~9y(5;$AMDXsv*C>Mbz!`OMP zU%r6XB+7%-)i)At2f6d!+06=^RLJ&2X5r5s47#jH<K#x4(ARq?HpRGB=ti5q$YE|A zw$|9>$bdo4Z-DT!Our(bYQgdd1+Ew{ir&Qi{jSvLL}7sPGN0ZHtMu2?nWNOhh=W}B zo6v9X05G3MIr5OO!tGNtJPZ9qUQ?0M62~Wte^d9DpQqr5xO%p}mCQol>oek7GsuIF z50~D)XosEP58eoEaN%=rpPbi@k0^Cs5+c*O{30ghCEE|5N$v)3rQsk)?@trL*FQJW zlwL8f?v$Zf{%Qs;9S=dL{VYbLDwvv9r;JQ8RJ4#OjoX0&;7e3wwOq&+-8$Le4%)yv z?wQ1UYN--xwAuWA(H8l0>MXaZp~dCf{8weoLy<W_57WR?gXi7X`n!8krStT%PjK!! ztm0>-IVI*dQ6&V2x~XH>ROLcBNogkSunYx!EUN&#L$w;BOUX8g!EaaJoiP*{Yr2A@ zjs?_og#`eAreXkZ<0`rR;3jfk!Jz#%VfBLG^yIK{`_GkB@PveRh`OuD^)NWR7#95^ zQ$>nmTEaV*fi;PcL$qifRy&Dqa&Z9#xA}{fK21bXt9(6PTt=%?P*#L3P$h^RYo>8< zE&b~+N?GT_5xKAy;olY2Z;V>^F9^<o9eS4~F?z>m3#U)4tv=f;Tb~=w?%mvqGP=$t zsdcx6e=OWYjr4JRP%2+PC5Rb|K7bVxlTKcKq4M?dy}(*1kY1~zMDZA6B{N2HeD50x zRVF}@23|Q7X)v8gKgo;z)P6F9RlX)Th4*#_+2TXY6=qqgO_mvk+)Psy773Qq?|Zzd zz}sshcwCF=kqO3K<$HfaD-AnW0ve>zszvN2t|b^^pPGob=UhJR4k~I$9F0p@R)#qr z5}EBy=^YH{IM7p8G0XtLAC6C2j7*eQR4r(*Hm^S}i3UBZo&}xxilz_07aganf2!N{ z5%vC!Ll$uU35PfD`ab?P@9v?F^UI0yYv+~2VMYRvK}S%c72<%;#FYUpVrw`L6`XdI zn^Y^tV1anT_;c}yd}r8=R2UtZR!Gr!mu5Y+PYK?Vmu`HV03>*A)IT?Nn+zxCD45M@ z?kp+-25k3u0yKuPzSY5P5WrA={WJ@dNDQ~=7N1q_SF~;&5;&ZUyZI(+JeE$LZb{d1 zVNMCt%NjU@Oq`x0S|V8md%hMp^i1}6p8F<`P;bnf(<mnQr61<yYt!@3mzmlr!Jl5G zU!O0n$%2>kd^2WV`*Dn4t4l>a+O+2~N5VdHy3{jlxu4|h1XQaJ?;6TE#ns&Z!cp)> zLC4zm*ASd?G<A|E>rbL`4w49uihh!k;tH5(K%IIhbQ!lTt9%z5205&l!fV4a6ePXb z$qp|p)eKrz69)iz6g#$GHMsUp;Y>Azl*2)FM`bH99?S*c)Ys|xVBtnNhDxnA98*a< z=Tk;!*m`H*8Tgn65zDOO5EDEMW^s<afxG*8y65r=D0ZxB|L4QXMG7KfC%+%Em%f*I zmw~^e98tFgIm+Zq&XuGZpDz}Cz8=15e)+*|v1d7W`Vv*)9V<}y&hyvFU9Ckty^CYC z^GX{(4HqA6Rken-e8xwLwGAa0K`Q7}t$RJG7Iod8wj2+ZBDMlR_<MJt&)rd5J`1_9 zZkVLx$vgQ(jj$*Q68Unzr`0$_&LawZ#=$76kR+|;br_`s;u)9NnJO15Eqt;%%MySi z(Y2a>)ULM)-V>1IwNTKM?Fja?0+ygH17wclX_$1w&AJsQq3uxiDs4jF?(5ljpJvke zq#CsQWAhjUog_3#&!3x}#_{$%0mR@;cGPwFCfMS8O&%dCr{<xMu+N0%JG<%k>|F}- zrKAgV7g>C{Q<di&A>k>%OUrI3qQG^^j)+>8_;1dusY}s2D5d3QW-PP3?jOSsW9c!q zbcKm1APg)^e3~AN!hRyycOe>08fbY7wD_`O$Gj2^zEjx9U|oYTeXAlxt<bZhMy1w~ zK<eCQ$cS|-qD63nZ+zKDRozKWWu%+GEq=|cB5eFka`aQgAndu>roQT}(w34%{@qsB z{dVy4RaTpf8)d%+`GU}VkQ~)H{m<9IDW{hg;-Nl`S9m*KyfsOH2J;o~;o8;Mo#?m( z$h@1M&OLImbbwwoi0xvR;6{F!m3@jT160f)pnikRrEFrGYv=#zWG2LkaVfYELOoFX z2haJkFP_9}x~VT3NuF@@A73cGM2uUKSHA`OwY-Fvn{!B-agjE*;bDz%Sb)k?@mPrP zXy7GcBaLwy!^L+zC_Jwff@%mQp)j#pqUOn<2cwTGwZyI7NY#RFGrnHeHY2TB^<yy$ z_$WE>7?Sxdz`p)au@&6~Z-;r@IH>eX4#rg?zP#9ATo^27RKnZ5XKXh3zWa&nBN1Ce zO}}LTu_y(@g``45-*5tT8eN-)miOpab0gJRs2u>VO2#1R^e=2qoHTYp{%o(sh?kq; zJ?8og&LuC(rPu^W*SJRCA32gGqSvHGzSaCtXvwwfZ9r1P8}}*BU5ha1xJZ$GM{Ux2 z=<Ct_tZBM#Ik3Xti6R%ih;&@u&xe!8gdN+v1&Sv802Fy+89X<SrtuX>C4;QJav=Dj zF^TIp(08bsyGw{ep!I3s>E*Heo7%UY_!_N5Zj~gn&9f=5tmKh`+=h3*)3>l(2#Dz? z1YSPd4Li|>I=gMTh5;f>z6_N&u;19vc0jr1`H*q4e~tj_uWs(7zw3oJu6!d^!=h}f z0AC3=S=g^*^z&`71DB`iX~kV$rzI10XFg<STQ<b>@hsNeHhuc)gHAYu3kI{#hrP~N zIoIQnm810;4mgtN(Ra!F&0pm85l&S2aDi~*%Zp6(ht@Ej@Peu_gYT=AiYu8?JO$;g ztlm{kZueCyuu#+rsW(Gwz`P4V1+Hc`IqrT6e}l1h+CQ^v^6R1hsU#EMs~uAf_xoHD zt}HE;iah{lChan(`S>d@_kq*)py<dQU?DJM5P6?ZymxZymwg}!U2lb5RkooVdqDx9 z3sc)HHd&%Gewp~hBoasPxg6Y9PBAmiiHQICwN3plyQpcYy9mO|97ynRk?JA^vP*A% z^aJ-LaD{a=F+&J-=amk#lS~B6g}I;yxSV^j5)jIS5}#xE;8OahdlAS<eniEZ8|TD; z+!<P-548cDHmY@m)70YN&kO>~uRTiBbqbUjRIN#Sz_cqq;S<qrzrA+gDXafMiDImT zP6(Y(mbqHCgoV?Ryp<T&uIHfY`|V+(h8EWepN*KZSAWJk`IbEivu&*^*qSf6`eB8z zrHdMZaJSDT(K~kc{y+HDUl@?=%N_5{b81>I8v1?ZND?s|^}Dt;33w-8U?6XLl9IY} zq@S5C<{7Qij=fB`!^)pDr^h7)N+B%HI2WiOHb44=_%WbLh2byt2pz`WXqv_7IWL|K z2|DAu&DmIvYb$u)DdquCR;7^^yu!}Uvaw<6fW&4%J4Kkd*4IyhW%R=S&mC~mmQ~rH zt351EW~97utdeCth4YG?j?KFtQETtID&7X%sC-TJrQ?inrb+FRm$IWYFt4{&f7rm+ z;czke<YI*0T#nn)U7bS<PA$IOkO&j*`>YhaRxWzp=yGsO{KQI<+~s_Jx8xNcPKpPq zhDQm+6t)0NLKQ!y)jCjNj%k@`8iJD5%=iIJq-O<tgY_Qjp~HX{?MG7-rY1+jtL=I^ zU0afGWuHnU>c<i;yaz~i7x$376$MT3)xL1#O&e<~_wc$L6h@x<KaO~s4$B)}2v)~2 zuE8}gNy(T2<Se>*@h+w|A6KnOn*DuL&$ld`A6m|w>odQ4Vl%(pwhtT%H?vLAfz|=l z!!N3+ty@xW4)iBG64en1>D<}A9%!}?_r<0Cq1Z?)CLC=GUye;8AKk8_3X*xA>9)mQ zY?4<@*A*hQL6vM$mAbgvw-0NTs^k~Qt14=W%!K{NuIv{%r}7($xK~9N^p?m6Rkriy zP#HN)&uWg|VutMvvI*bqS4}UgY);#EN4Q)sD;@BZ54%6ZbK%hq(w7#aHhT~N%vRmE z%431V{!cz76)W9p@iGtUzxQ%sEWa1{!nr6{>{ti7Nl4@u;16n;M@=kcbZILF<=i6> zaH?#~2hS|e7pZzJ6sbcV65=olXtXB#T#4k!6L<N!s<LT!PSiV`zsDvibs~BweGn#& z#g2@EHY+q8puNH_#xPpwTEo>|Ko1hqiUkl^Eg{?Vt7DN^;s|KE;xD!m!LbZ}_}Z2b zmetw>8vPztAFC*co2-1fB~t&jwgBD7$eJLsp0(+bo^UwYo#6v%Qt!egHD9C0!DsYC zUJLh=PM{rf!xtYr7dl;SPchIITM$D=dVXa1Ck2$tuH9yRBn-<<qTcU)8!jaMd#D2T zX@mH`+IQNg;;D_#UzAJH0}n!nR!qJ?4hf3HRIa_V7}9KUtv#GG+;U%LKF~)3oK>ma zGa5d8bCg?Q(KtY*3GFrESsa&F9w+W%)A%G#;i~fCWXLIC2;|P3pgGt|6ZWj1!N_S* z27Q$4>G4=tJrBY-<Fi}Bq4ib8l;7u|O^u5ZTW}3DmzAcLS7bYG5naShIJlg~ASnDj zwtNel*p<8^w-DUm$XBhZ!OJ^FR-jVdV-<mv<F<Za_55!7GH2vyAT95>vW2PLSLrZC z^ltQ2>BA}uWF`Irl8w#THWc-*<E39a%{YmBed~P`mj$lR8B<6OLvj03ar8!Y1GB-_ z(r9K}^C{WUrPTt75Y4Ks_N<dIAl?Ew(=X!VD#sZZFQ$SeC@k$@x(tr?OO&$7@{h9X z4dO|zR1I@()EyFQEj_tHM$=8u3G_QOp9@$VfiF&GoFb)@8|qbCP(2nnaQ2ooqY)gv zBq7?LRw}Fxbn%&kt^{w<<c#}qh|OUk+X&V$3v@>CxwRW+X|#<y?XN^J{*5mEF$f}S zuGl|dN^2sxg7$`F=);xGbB9pqF%t1K%2+<3Zby^~vH#Qr(nJqQD$lcw`_rY&hWG{r z`s@frQ3%lsu^w0YE==cW5$MO69h@G_7evqEYpK^E6bWk{c1Di3{#gjW59$YrckosL zYF4oDT#}mE%RR?WsO+Xk_9tHXy5s;Qk^$DdyO2jg!-3Yaz@r@a=`t-q6dj=o<GqY7 zOa=iHic;tgh6x8J$*z+~dTSOu#qZ;9D!#c@EePZ?zDmrguD1W0RV68Ri728K^(IC4 zl6Js3v6tHw2djv|H@cobH{MCe{k+;QQdG2ajyx^Plp;W`G#e0n2sZ2GGgZ>!djf;u z(*%fflSRtA9_KHg=&5y;bXfy;H-jjhO&Q|u#g^=xH7?ub9_IbHIn|ddn20oZEOSMI zakvYGr&wwqAn!F7Yl!3}^_Vr#))90|{jf*#mT@`m1)@XS*>CBbF>bsW9*_~l(sj{T z(wM$LD%5e47mDOft=H!!O}R_>EG{2f^lE=7oOoDFOU-325j)z~hRM#{eUEB{&V9-b zSiQOR%l_J0;&xBK=LKyiG@_3ufR4?%kxX~J)12M;q|Mev%xp<}T||v`Uv$q1BM<FG zRQ3gwiVc3SreB0#p8T2YVDyWc)Kyn3qrFe_(J^1Mz#6+WjSsPHc082`uM}p?xG|N! zc6?_>4&+@Wxc{TqXYsz#DJFezjZAp-hvv0R^P3yQ5+~fkz^}{}>TpatN>27<&V1vg z<8rk19*qtAK9!`>KM+W@4#<7X4q#a4&MTASr19EWt(GL$>lY*9+@DKo2|Ma8a=gs5 zngiE%(gWSYo;4L!gKiD%eHMx$Je6Q)=fQ%d%xjBGm){pxp2(bR1zc3ZA309XYz#RO zPH{@rDUR1KnEWz8wp+>1kvvmlmGl^RL^ly`WVeY3lF33?&FlE9@f`<%x(|t%xs+^g zd9rW%<O4tXl0>^9rKeI%TBUWi<+&2EYR{xowedv&l%--4&`MFaFEx3MQiJpLsM0e% zbuP}N&s6dp)`UyJOp7t!p9n4VEc1qlWc^BxQHcdiNH#?UgT3&uayanbPC2uF9gPZM z+utGNM=6ldcPga^VOL$uS5X}YJE1D>&CUly9V=FOv^&gQJ9KL`37{=wO<&NmZeFKy z65CwPvZKq*rMn3K{3yD`bh(Lcv*9<97tbn63COr<e#FRmrR~<bJ9E&PJ@5W8BbjZp zK(5BABq2T;z9>zum)j?6+>g0HsIi_K$3)+*H8e}*99o6X)3kj=nc)y^2FndIecwpJ z#b(b;uR?w-M2^fC0tk=p1lJdO6-a1qN55Agv+_;^GUzxkBeJyCoQ%Co!8GN=)9(I; zG?v+%ziqHoAnY+Q+#_YLwfjkRg&Mj$3~9<Pi2|;R^bos_f0?=Lcn7hF(I&%~JBT6W zb3LzXP0!4Gp-E|MWns7Br1YRb&-a$cQSnA=+wVQ?q&$@>(*(bE*}onnXYc3wtv_>4 zkr0{$os{QXYyMsf-hV?>G*d&%vhgZ4`$J98tpH9&nvPEVVFZBS-9I46t@un*I)p2o zB+h4vu8)2auCK~aGq4z=%9qQaD9uL(%U=Tgg=Dn+Q9McBNfgrr?{TGmyM6LO7SmI! zj(@3Tq&_QiW&m#~MXgsfawX?-J_l)#%SpVysis%>J$EhlGcLecaT7dnP#)rXaP++g zGWEQgNq*`t@Cqyqd-f%*AxUt+N3_6F;3xTjOg#;WrjauLa#bzJ_K-5&<>`?=w!tSV z&P@zZ7`qkdwc8m}`}=~=T|*Uv=*+YJm3qtG=tmE44S*NpL2j-mQLO+iBvuyQG8YYC zn=4orHBlCE8!EccV#vVwv2RcRhB5Nw7bfYPdL!=6`1!Qb-GT2EF3$sgFMWkXQ(@tG zjbx6ZzzcI`?<|Q{!iwEDsU($Hj^hp9A$Ywc1Xc5M-kcKEyd_s_Z`&!7IbaPlZgs~C zrjS<Z?<Jzxf)Iz-iSMe?RtUjAab<XTP4pRN$^ykx*`MVxCI+SEJ3N=%SfBJFKNDgJ zUtPMKR>)cuTdZ2jO2L}6dkzx6w(D=c#JKo{8uNbr?OW00tlqdZA$pT$4Q_s;O4hm^ z$T*TARam5M5eie}8Lw8*`@j!MddtW=q1WE#Gx_=RN=LxK*-37b!`LU`$oonD*7v<3 zPN*1;xjwF^>#*667?+vvP^(bd#D=~J`THg-TWbjqt*9r6kIt#)b5)WcsejXne(`E` z)Ev{KW!&J=9%fjD%6*7)(zo4{YP4qLa>EjV_6|!Pfcu!8$LqA+#GbMbpQ=WVs+|23 zjk{2?!=`j8g%>%~|6}P#gYz#qgtH#A$#j_)XQrdE0MKBMlJpT%gItO7B#%=0ie*W7 zdKax-O@HU_EaHmK&qc@YB-h9~-G^IL>~p#lL*l%|R$qUG=EegTTiT;4*mqmW#swVu zKR?AocGu7f212r*bvL$_ja%-XYK1!A%dq4nHHWxq5@E`PuzlelbD${6tVB4-yBX=6 zyUgo&6zuYlq3XjRJ6r3z2xb0h()m!+@KdCT58oL-3^YQNNTnQ<>)KL*@XLd?WFt&> zmg}v}j?#SEQR(-55J@yHQV0hr*afK}tY840Cd3(p{^o7}n8Jw}LlfD1)*K<CJ_B{> z`8WqJKUT;|ZnIm)?}r_v8wshdXTj2YVfJxFk_ZH!iJB|?UJ;wZy$vVRQM0xHS@WGq zo7t(NSjBjW1c88r^ajl8cDQOS!9^kyTu!VzmQAm9JTg-4Lq7i<lTDtqGa!m*6)ZNE zQ|H~7^#>`bn3_(HsppCKu(xr)sZd!!pz_yx7haZt?`i1^%M+kk|Js(1pF(Y})n+<O zr;uyAt&aDXRL>0sSFcNyHux|1vJZ0uZ$@1TpAA(vu6y<kFN9szx@cSaqbv(h4ypCj zKRavY>b5AL!y}|bA(>(<fcg+LV2=0jDC^pGir@&dp!Bgq^kzz!`=+6~o8aG1_iBq1 zYeV*<?53!~S>4Kv{i?JZwQ`%@CmABLeQW%k%Bx*1`7#mv$y=m-U99Q8peWi`4iK1h zZdUqST=HO5fZ}b`#N5NTpr+UlUG~bq-!w95x4?Ow;W>>{+g7*G;j<^aYx`}ZcI~bU z2U6dYW~HEtS#!G|NjbCZh@S~IuHi`G#oYNQ?4+pGr?cLhzGRv>=-hw5pf+^o?;n$8 z)Nm*XE-KJE7*9r23G7c#H}ZXNp^Rbo7#f)leECuT?RfgDv}(}9;bPGCKF9pn!rL?o z5-iZ0Zh0Q^kYrn<j7bovTCk~d#*T+yS)n39bG!-+Aa*3r!?*1t#mc8yocwh?JIU#! zB|T*FHofGB$_X0O!JY<;73__D0(kNEBW-8v_CWAu2?4sZyr8{TX*yIZ3}%TH)m;H% zz7ym4UfQ0H&i&pskCAOxS|Md?JYSCEs#d4$FJ$kTA7T2%rNKY1bYEl}i~#_wpq+jf zCrFma;Xox|xa57k`>K0y@?!<T&xXm*b#dkNXW;8Ew}bK=s%CL6wmXye!4?6x2ZAQq zMT;F2yfO;#<9v2=^q0Sv;BD5~7GX}yY=%lSH-CqKSs&K>^L~X_`+R0$W@MS!%Yf%y zSKl9fa1sP6Ts!MnWZ^i>NC<J#jm!vyF;REXz9_Ki6J<Cab!xHV7J}ewNXAhZ^s^-8 zkT$}?5+Vi*okPrtbd{?-Zt5AkS2(*0rheWJvuL@5g0@;qq<hRXBIYAS8d#bS<papO zv$NzPR`~&8#(@<_`7T|Bt=2O&V%~KB4*<46Nxw6t$QLxE6W{*TR<AwzX*9Iyj<@W6 zU`gZbT|zq6z3c)F+<bZCyo+9O^nLA=(%@WlS#$ro4PU)1UKtT=w&*vfs=eac8!!ID zcO4}(QkuE=`{%v;7tZ~E|7^xm6^NXtrbH-njaL{0_*eylh>Z0t+%EmpjgCUZM6DzQ z^&gnsQaQc}>ZC4Z5WL`{fsS5SU3#P^i{laFIcgs%%rJ5C>0mZ)-)#Q{@yp2{FHmh1 zKB8&;J665&Z+xppOxqtmQ={i41~|h~fs_Ut+;J7yON_sh-l#XlrgvzhFAMf@LoKj@ zNo;ja^=!wRQt^}p`<7lk2K8vD=gAMhv2pe;Ihq)NwDsoG2X{A|gY;kA&~!E&aq$<Z zHTS^0rv7#N241x5?h{Snc|@g!@uoEM<bezS;yow5`H#oNMmG{#c*YklecyG<UVEDX zj077X?5w6jUi8Nc%A50Z$fD9|+c^X?`9&8ZvcA!h0LC9a<Yj2_x)BLFZCZl1BkY;T zNeWAp-g4<2=-uT57@M<{ke@Su>hF4{H;hM4L|gAawFa$ArwlP2o}j^YlO*O5Dzb(I zsU0$Dw}6q7$ZAyBMQs~y3Y8}}W>cCIuerH3HAP4oJ#F~L+x9>HoJWM2yfiTYNe;I* z-_h_S<{68BID1XQV?8^P(^BmGwEwE+_PT*@zRHNaY`)MbeY1jT$)#Vr=nsBo&hk4N z=5I>Xlmn;##CuM@_Ijdv$(|j%^{&d+ngt}z+edIE0}}X)B+<gO8kLohpysgcS~SYg zXaOMO5PL<+%-;boZKZ;>fM15kGqP`AJ?X=3)tQ)x>4Yo4weXZL6%89H?cH?t;MUp7 zRR(|x-~qb@+Lh)R1tt-63lkBC#jqIq2nUgS`=qlmMdEBwHHG8u>F_$xn?K<br(rc^ z?*6f;N9{v1p8D|X#%QzX64Jx~BqG}ImCKHtr~@s!^3HMOBokQAaX2-$*Gan?xZ#pe zNG6>dqF@?5^{x75HKqABi!sv5tN!ZjU->`WGn9Lb>~e@sY-@D_JxezfR~qFqHb}I3 z2~j$G*DMRUxD4f7TYcU@zGoc{eg9PaRS<4S?SWj!q>c9~6-kQ-)HS=Hg4z!gzrA0W z001BWNkl<Z5w+OpNvShZMxlzO;^|Aap8EPf8~t0#wEp%VMV?In2+~GzX+h2XDPq## z3k8tS_}#j6=#j~hPRx>b2?<FHs!mb%qR+h!Qp#^ZV^E#=lV6)My<xOWB6{}bYYsl! z*EoBZN}4c$wEOO5d)J@UEN}lsN5N_rNc=@>&VhMnG_=?4c=Tll*3C7yR2YH3*#zAT zzT~`*o&P`opfzj1v~V6xX3+>8paa2tJlnY3KfQ@EOhbAm!58%s?Y#^<AYmQqqe1{q zZZ%mjPLk%z;<#{d*E^s^<uxa>sD?F)Z#!&B4jNLccktYw|AQ&h8U|D)qQeL0K7C_a zwPpL^WsQuCV@09ggt!<&l)VgG_S}J-<{WCpvoDtv{@E85eyLlBJF!VitE1MO15021 zkt6m-Cpx@u!BhYIBVF}qd}+b}5)o~@?Ul_kPG9u!>~kA#R`*n^rhsJWzxw;l?RB@l zqL>v5>DEY`=1)wTf6`6o{>q<mYlz5A|3R=K##Ct&B%(+S8o`Q-PJzjuaN+PE-~_5c zRr2Y|SOQtfI1XBr2gO2@$aW-vsHn+7#zOT`f{j`5*CQMelMub=|M}4DC1Y~rS%2q` zAKsT@a44Jvi(E^W*{tCXF(zxk!pg9-UXr!AhN~Q-0-&oZ`UJ7YTU?XdMXfU@-XU7{ zwy*chXuig__H*w%yk$nGSJtIwG?4&l;ER_?(}PA9y<(iKb~weun`zB<(WMRd!wwys zz3D6G#vfh)!K{BGy|Egaf6`5-z2jqkM++ec5m5w;EX17imC4B1U1<CA=Pe<4ND4N? zpxl%(*&J^SMkhG@Ej$&5@x-=XtX<(yBV^Yy$x+&74KKAZ_lQ#?h*ti{jmNDSQ$RLp zS8Kll0VK7T+TbHVrc%>h!+$zdP}57%tEBo+{4LtgE~P-?lrqGZ$~?qe@JTRK3gxtB z9bERBe{a}FL<hF5eC8uB_buwum}vs+LsB~UOy7=&ub6lG%?<MQUv%^1^rmrRg$ohc zCSsa0Z+~NZ-IjY^J+yafeFZq%s}H&|k?6$B{$cmiE1$XfQldg}p@8m8luuL>0>Kph z0@7&&h%U~iCoT&Vj$lSMnX3p(D*z@Qy^+$#=hj=nALNs3vCQkW<GEdwCJ7`$alr7x zvmQF-HGfEBqs<Tg*#7kkh(ZV-ikh673d5R>!lM3P#{8AoMcGrF?5m;FMg=@rPhw4+ z&)rA?oM1L1@GcBqlDdpDRcVC^UhxS(@r|CD4TGQ)(UTwjnfCr3s$}Z%yJo*=-Hc@e zRnK8=4TXPIxR`SI@V*&?Tjw9xJn!Jfc?Z_d9o#spd$jrRG?4&_hz4$H2uRcWADwgl zx?OjTA-o3;q*~!6v~UdmbsN5hd#!>bu8UkZVeNHDr@!U>d)EKmj)ztffsjhFNmK{G z)*EN;)Z?*#*c`CrCg2s=aGb`2?-5E+2viVJJ;Cglsp7G7%64QBPvwxP>twER?k^S; zRk&y7Q!?zC+yquX`00zbo_*c_=IU^#J|785yL#eFZ?tcuh?RiIN(Ff5vWO_#P9usq zO+|mU^9fJ6Jllu3nq_7iDT9Qd4>19}S|8Jas_BQ8y{7r<(VnNz+j-y0lYi?Ii!S+c zZ{H|9cx9+(=i`@d{och}Ze6qQ(f-B^Ok$c~fVBCBb542JoM!t57G3e(F#(d;u}9X- z9ja*RUw3fF@@==B;_d7zL*XFNiEgqBR884`&d<K*_CNTWgWHmmlA@97I!-T9X>PZ* z)*OWn*yhYZIhnr43SKOtT1cf8*-Wa_#JM+PhQv?Q^CYLMh$Q<fbK8ql;-m-Y&9;y; z42J(R|4c+x&)|7K`}@5!HVoJ4BcOHP{JEWvET<d~BEh6Ul}Yshuu=XCOKi}4G)e_i zjkc6^J|@m*o5Z@vO&uT>1ENvVnbZ9MMM<$EU`gosH+{Qz&icl^G-bxli~sIguG&XV zYKdEi=ALrv+*58n>Fu;{;LNRezvS7^ynO%T3mS7W`DlWPx1l|~TkdLjLQ?<5H;uLW zQab_ZHf8Sqd1o|q=i7MuYp7l2&4XwT5g50Vh^Ee7ckVC#5%(Mh0~#4U#?8Aq2;Z2% zyDd->aEz-moMo9NAefj}v9qzujb~j2o(Ot@zRrGA4hDk|d!I7r0nE^g0XI1*al%Lp z6_H{<pyl?gcYJ8}lCiFm?%ndDM?U^$bIWL@9Q%{ORz|7|Cf&}FHa5J6GJ*rXwc3e= z;_;D&KwdSpXq{eDs<8L)i9h<E!xeNSnzrEa2597H#*zn?z4q@f{=0Xa`ks$WUAAM4 zrA-=|V1PtK17B?zMrhiC$LCzQcC6J~-5;m${a1az@o|$IzH*sWzX~G>dl@tdsBhV~ zmR<2J0*RJ^A?rgRtxyQ!g>w@pB7*HZDCQIus<Z>f+~<rOgyM|M1zFhZ6x=}<Jk(~G z;8uh22-{)_z>-r<xQ|C`S9OJH<*RNy?(8ugoj^p=t{(WvZ?*?};?K%pCs<JdL8<7O z(!vapoR|`RyQv1MpS7;!c*ohX72pIM9Gu@>=&$7LcifMCciQ}h=W&cXaqH0WSNz*0 z|M*iU|JEmZ`kRLvpENY_0BPH8s}F8l(Jb$xmybEFowusxiCceDd)@AJ7wmlq0wd|X zJE=!8VE*LNkOHl^;v+OAo?s*}jWttdDijeSq7-5dw=OX#Mg(^XG^*EolI-$XsID}< z;~@lDRPn8m9nkZeC}FBlHauo?W#+kv!k6%D!I=-A{OYkfG7!<z-~MmgA6%tg_^=oQ zQGf6i6bmy%Rsq5&31N(g#7TfQ-;E}<-Gx4JFA+WH&{>~sV$70XW%?vq?d7i@lX`SC zsOs5&!mIxAqJMbzyq7-ueDm@=)5HTLYF8V-{hDT3`!5=^)h>|W2qB90x?7qRw(+*B zW0^|r^doFXuO0l8f~L=Zc<D=$t;wk%RI_duG#k6ZktB|>q#00&{?lmHaVe21GNvl0 z1n8?*Cf#OR%v<iEL1iNSLxl;q@%rqlcu}ln`l4;;T=TnC)$q6@rF~n@eE1V@L0||y z#!@t&5+ta%1+JOlPALH+TWnoI5p^sqA%~)2RuUU#9T7FE$ZB=~$@aRea!I~u3o$MJ zk$a{udZ=MH9cAk6duGk=y?f=mzd)_A+5;ypO)#g1Km%XC^u!<iKMgWYTkyo33)k-Y z?()%PvobONgyGtMbwhid4E1cd;i6b<nEE;2-!#{I4%`_I?O(Wm%Si{e9e-f^q61s{ z5AN)nGW|f$?A^UHclXTR)iZO)>}B^&ojp!lj1#SR#eY2Wjf>sf-|GiTLDp$kh&s{L zrBwY=?_`;1nLw~1vQUSdq^Dv%AW&$MMK4#lOKDmqgrOw}3{Y(-je<kAR8t4fd*=to z?#OU>u<xFK_}}fp-t5A_S)tLeZ;2<i$s$kLr@)!x$oB&a<)i$_b}5;jXN@O>CFed& zord*r%$O3x`(q*=TJeT4ZPGg0#8rF68~<wV>G$9NyT5vP+l(V;m~=ED0cr0K7w=ws z;q2v2>~D*&xO3Ei6lj>i#?*glLwnt}2d+A_d6xAif}?;`q_SPWA6Jrgwe8_oJ$vgb zH{EuYNGq@3C{>*F5}AF<vkT9?f5GYB?OXB9sx>(F+Gj1gcge-~4%~UJS2Y5$R&8-e z!8<Pm8T^1fNp&EkPX#2tgM9YaL6S<v;SeUKaJqIbpD7)jY5)}uhjl>ZWIgEtyTa+3 zg``D11W+wR6`y_0Kh7DmBLfjV@Ui#pS$ACShYSe`a1xM!e?jWa@MR9AdqkX~2$B@L ze@y>_(?{7GOe7(Mu63wuLnn|&Bcj5|rLE>aA)@}P9+<iG-m&!6b3=1ayXBle-FMG_ z|6fBpr#;`iJl8ZK0f~q<-g@=ycQgT{g%{oQD8FTNqP;L2nR#wCCVSn$*RLP~xfvly zj2JySI7CE42m99D{LW{;`qKRy=H)iFO4*T5ncMxy3A-LW;fd-svsP|6>u3IQ_R?{X ziL0*q=)iYVlnQ}}K8cK!A?Oy=tI})oDv{(pE+)Iy6}r4)Zs&cb8CTdWZV3e#;s`}- ziVd-H!hOw768xU6Y;|u|FVfULBCRu9rB<xG>c->F8i%!zC%^uy1Gk@Nx)f?r;OV%2 zsS0a=rxJVIryIIN<F2+Pr!jy>sD2Tpja(HzO&>`+I+~kfd|9iP80&=F%ir|LQFYGq zNV8XdXU(7f@qNGX+e5pj9y#?Sq6xT$L_|abU%aqA)Y~BAwE0i=U9`4Im7L{{8)p4i z-`C7ucX;1|O*d)8Sg9GuP}jJtM+dgA`rZfs|HuFJ_4_x>%hj2XEl{OuX~`3J&y&aB z@q2&t#Erk+9_kq*Cv%qGzTnJ9h>{78QjCTYhjdNbt{AB!032w<CX1?HrFUF%s+NkS zV&aTC(n<#}3FLB4*z7or7eX8Zj53G9k>PlOR!S@<retYx&XWEuIQ@}RUik-O>~kX8 z^5|<G{^XmoZ=rJ+%-k|5>KIl792IP<xvX5(BcdwCT`d}Gv*Sg0=w^iRLevY<`(6fw z3mTiq+>4%^v-0*4^vbb9eXGB9_MiM&HGQlLgcFM<Dj*%&JahZ~S2fGK=!)-*G${%W zfvFijC0f+fUbpFcua!YnQqz#_9AtAGY3EZfx$}4aa@Qj#z$_FPiFdN1mP1fyxhZnE z_1H(>aMxe`{m`MY+PnMDx|`VS*NH5klvFzp+JaKz9Q2dYU-a7+BNO#nC<LX>qEj4z zA@JaP!Pz>3T$x2TH8TgyGl#uW9b>L5Bsr-QO<%a}oVWe2ad2eVcG`U(`Zbm+??gpt z0h1|_<O6U8??d|7z`B|g9>|BoFn*PoUV9*{2RXEJ;B8N^HA<4?^vmD;+0LDDjMCgw zZ$0T(uYbO|cur}e0um7oeC_4UGWK71)98GtrNd7lBAPOH|J=s*x|?1C12PSxwnV#A z?O3g92mR=1!<}#Y-tYe2;I=tt>Rk(j7|xYJppYsnwEg~*e)#eCj*+GLtL{RF4kLpq z5bHsIs`C9jbEl+*6pCHE(7%#2m=?s_raE}QLb&dyyGeC@h*^Y!?arJ*uFcfMm=X3f zaqpq?e(Hn0Gnz*k2sAV}=bnFh@1cD&Bp4?tzfF&?VG&8{x-oDCc1!N$dZWre{LTGT z`$a3La5VJQz>-?+pg1$K)9apf#=wHJzI^0<Iriv;SN_w2tA6-=bMf5K1O}wdH@@i5 zz9xqUPo1~6?~*4Q)>>G}`>(#Q+1md8&8O_Rb5)u-!ake00+Hs$Zn&14;YUfEzyD(o z{MpaSU@I^Cqv2jDnOw{W7Z5{~rNH{HUA*?|zcd!EW-s~Plo|WYbQ__9tmw%IRG^oW zs`gHdOH{Ft#xsQkY|}#nb5Y1csWy3eT@+Q3=$@nsbS6FTO3~NkjTM~zlm9qp$%ys) z&h&#%y>IurrCF;`aUT}ja4{)2-<mG-X9GGmn)N7Y*ytt>NDqO)*{FjCc%qJuTo|r! zpKM(418tsSb<5uPl~MQ6F+->Q@*npu-u--Y@f^_v1|%7rviUm=&oy8C@)0b><M1OG z18jB$HjZBxcT<HC*p?i3OP5dl3hg-1;O?al{>{6HSvVcP>J|o&)CJjK1IJtxXTDOA zRP@k)yk*z3mo#RKtHbk8e>C{iW$iG3p6J`1SWux^o~!LJDI`oja#`Z*Y7o`E<;a7z zB35ZTZ9aLA>+UNLoEw6jTmhs7_Nu%U+UOIhsFhcI_4u=zhXhr6>b7@pxc!3MOoF;X zC%dUYXr@SBqBC|g&WSS=QS6hF%$y^|Sh6R6WtNgRO2nYr`GNBQN>eBuJFOW9`!D#y zFdcG?Q}3MhC;!?px0&}S(F6u0A{w~yCCxG}yzr|>w%VaGgo6;~k5lIFn|pc_dz}bx z_|l70ElIS&)XzAu8eAL`I{olp{^z0Xv$U|>BHW4x3Q$exQZ=}kfIUP~t-Ezh2Yk#q z;VA++lEfnC{t4BmjjjeT6oF7Ca+or6P(+AHS~iFSQO%sA28x(koTaBy#ZvoHFdRcZ z;7(sHz%AA*NnuizqLtBT!Kn|Qdi4iK)t|Mr_3>9f^r^QP1vj%%d|Jq7GR@TllE|Q% zCnz0fQJOd9s0qVS_d254Pt2ZNzZ;hlhhXAcbk)66rcLZ%as3xvKjXBG&o>v(1x;)~ z+WDOo`!}7|Amh}zPtSev$l_U{8sYpJD(b(gp}lU`<CpD!YC#&A8k0EdNrK^9l*Wce z>u<kq^KEBQGSOtQP?@QE7B7A_3Q=1miiWtKUx=93-*&;^o~4c1o3UU$5zN73SHq#* ziG|2OsS=?|Q3c@$ra4T>R_Ym(5$IcKWhL@b5mg)nE^2a;R<l$PXP`nR3zrQ8rKl|h z(_;EPeg5`ye|#Jq8TRiu^_~y^I#Db4Ds*7}9x#l8!5-FGoRlAo&6T~?>z*1tiL4>o zPk@MsiPOY{Q}Fv*%yT6(5z%p1j8l9TOGAS*2X~%uaQlh_TTeQ?f8LQZjDeVC#kK!+ zRI4~fXrk^zQrdXit5&?ZNi2{>FaOStZ=clhv6EtC4eM33+BLS<4SeG&qGY#`<eaL) zt4&-*Ls`~Q!u+tQQ^WqPr#$@kZ_oQorB0@h;*C(nUQ6TX41ltLv;T$2;VIAD`PNmh z`2U)5IAg)n#i<j?YRQpd29=ViFbcuCkq~F^IfN^0Zw`AJg>4ybKvH&5Q!2riki07N z9p#X8LR6)rfO7vKqC!PxT_o`zVmI_0KL6SejDsV?q1ktT_<e`=%w*E<&2kbd#XP!Y zIQ5BCOmWw4x*rh2>5gQ3sib68%ilKJb0rAA1QEQKM-91`m7QX^9ZQ~m;?}vRG_hfH zq8*RCZ1WwL?YwXGo(GPT!B+afWa{y|W}dQP*2-sREPH0=(kEvueQ<o$vPGAC`pMOA z*#B6QRr3i%6CRK@eCfr@-}F~JDz7;rBI>{Jrbnuuq+!lPck&CzK%0nyz3%Iyt(S<} zhh}WN;k-E7vth@^&QUIK=1xRyS^uS%ZoB)eoI>a6ScjW~3mw=ve`x<S5@E@Qu^NR> zbF~GGQ7C$>^iLp>Cay$8>u-BWV?dfd|8b~}6F;eK&WVc)<D04%X%}h~Z?(y?@Ja~H zX<i?wvLHeBn&35w0YaBj3#|V_wY{N)wkbC7zvj&!nzQ7Ny3C`aAAIJ0yVjmyPOz04 z)g+y4m!kXNXQ1s(*v$T$ONi2rof*S0GNN?GIbm(GvxS0+Ok}pudj5-c;=F-q$!oto z(hfQj?R|F5<Nx-qtzSEpsLIhM1GV|!Gkpi2>Dxx9#cr5-c*&1_Z`tcUHFN3r$E9|z zhL&IZ#fRSeQ{z(FF-sF3kPbXKf7hcg?K|Zgqs`dc_srZEKe^*u9h9W<yVt>xB*>zs z_PQ<iz3T9;>7fv!WR=1JUur=xI1fBK@4)(bF?&*4lCTC5Y=JE(F{%fcBUTZVZFqlf zleAKP@ns6`#UUc5z0WQ>uyf_Kz9&cBDMV9eKGT|haOePRP1lmE1b%^VJ%%hx$&aqS z8&&o}GZ|6ewUO<suf0>jtiDvjQexG#GNW2fc}h^aUiH$iE`8Cz7tI(oJ$3spt-t*u zsz{{H6pT6tl5*IFpK)pcA#RmnNli_fQ;vpb+l3vNBP`%PGqwT6Gf1adirAv?b!gP0 zs(sw0UmRUe)zQK2E1vxLyEc60!gK(+r1Q~>F`LGe9GtS@lb3Ax<i!hK@zAn2etzB= zP0qP?wD_`5KDGSy2i6{4^WgJK6MGFQ(7@MU(JbSlmyf`M)>#j9478iauN%1KWl(+! zZ9+!89w9D6;0nbAO!MoFBwC#oUT=kGJa|c39Yj@@6k(Yp8^^Xk@#0}wAC9KY+d-Vx zT9SuC4AfmE!;ahJuOgu07+((Y7$q92UsY<RJCvwQA9p@MPjR}F59><;$+_N<Zl5Z8 z8(ott>zkKo!Rkj&z48N%I?~X#Ctvx)PydAOAv1fN%ab7R&8mx_-Ul%D{*dllO5e;8 zzT^<TJt!Q*M9d2I1IMkvKTg>}cj-H4-LwUd9jSYcKpSqm=8m8G+x4Hmgodi@7O%Ca zNt22TArjtt^Xd2g@^9Vy-oI(KM+K>B4KBa#OJgkL7^leqNE^R=-q7I81{wP=_$rO| z<i|8lrt~+o*A4DEe(TpyOGb0b(tMb4%jA8uP=F?1xNO-cKVQ?reaIF}MiGtjL1*~L zm!sDIX!z3fTOV3;<X-4Nt*M8gj)WGJG@F)PW(XH8Xjj;2<XX)sJM4E6EkADpO;}O^ z=HcOZ>e%f|CL(b6$lHw4@kOKwY{n|RxR}K3?wUS-`+0Bqo$+vFIOXnt{Y{cq?pXJw z>0V>D|HLibM4l6?L{tQ?tDvP+IJ>)gVTvH?Na7ASM`S{<VOv7^<ueh{qD$`@O;^>> z#yj5n!w<fry>ALT#;_Hx6R4QOF>U|G$#?(eUmn=9dW`%mx%^{O7VH~iA;&UJ20$9x zIc@8`uWFF7x9{0`mpwkBq+-VgHMiGo`p#?RaEq9{85(LS+}j|re(S(YwjH>srSZ&; zu1X!paJX#4%^dv3I#B6JIc7g^{I~6)Q%2DpmReH>jjSO%{)LPt!P;HW5pGK<Zc*YW z{RKClx+-$Xy1~fq%i(kfZJt~RU!{EXUyW|3fsx{gO$pVip2O$=<Oh3aJlnV@0}UOT zb<e-Q|InV9k=NQ_9JRJhN)a5K+erRqnNa%?Op)%kiS&!gg4=dN;>WmslKsd{KXc7} zO0Nv_GA%s!)|!Tmm^R=2`Ul_tE|My`r7#<VHr9^qMq47J-1pGpyWaiByPv#xEG$)1 z4$i;y;jxr(jMHQQBqAEPso}Zi^;WxLw3z!$B-DTDH=EVC;l|7SWI0ie7*@*(vSb;{ zV^plDMOh;P+J?120%dz0s7*0fDY=~YFcVd@f6M&#;ps={g$~r}H5gwXf`QFX6LMR3 zn<D>|MP6<1#T1nlc2&`h9NpY=;hgVhETp83aMa$+Y$jSG?OExz$x`vzZ}?E(;&E7w zf8g`)+qrHT5eRF_@To@2RJXTFdt<Hp8WY4yWd(_a5EC?^bjE|)nMfR;Fycrkp&;xa zCU{2}_kn2U>WwoNKX{}b>PXvu@TwoY=NIHq%d@IWM{HZ_n$NE9h=>L^&c5f@es}-o zlN)nIMDx!ZA1{exlO_ouZN25R!Cl8U$hh$Qn}$1|5l1ALt*0#9H}ABsH>hs!`Zc@1 ze?lyW!P}dOVENZu%-C9r$OsN2H4sbO)Ryg(7L%#LL{A=K_%!O4+=VI08zQo@yUho7 zt{P3RWNP&eqPR3>G;CvRc!~go(jl(ds8W&yD{L}N<-j@+f}Dw-kk*+hBUl9mI)Q#e z={;&K3T(O9^x8^okBKT;b=g;!p80RhIuL2?cYfiSJ1@}+DZDZj?tbVqHk>%;^GC}g z=^=ik-y{>&?YPSIXeXw>X$DZQs)bwm153!GuTpH)F%9*<r1{ZD`!=5O{rCKe9Ga4A z$fjWMP*wKYwmJH=prPGUAO7oKZ_F4G&3n-uqYK43p=go-5)D<GZf_DssCUl#c`qrJ zJp}}WlFB=#MOWX;ttQ6(fp5ODJ{*p<o(;DS4C7pvCla6Hhe4jfvAI*WE=K$WPU2Z@ z$<U-G!<-AYtO_RJ{o9sxZoqKV>P@G3xY?+=nSQ!u4+1lqHd(hxVGnC4gnTEaiAZBZ zn>$4<hf~svL?)1$URSmjGytN_lZcoWtbF9OE8aiS{_0HI)?W4CXWy3V%?tq40MA5Z zIMJ5sBZO51bx3c_R%E)}c#Z^e?jG%!Pjvc)AG73lL;}S)IEVE8=QXrp5YZza`o;F% z-pICk$%x=#jEP-n3z^|*E`YXwbM><~{d8mArY(4U`s%HXvmfI$SpbP>;D*bZWnA>K zI;)*n)kD8CAtGAT$X+MyYT(Nk141MtTUnh_kRUd|zP>b0112H|staWPMnR!-NxdMI zP$_7biV2*72Ju>{d#;_35@e~EiS})47_Xt#J17c&>V`mGs>b*_rPVRHBxF1&*Xju! z5Nuy1G|Dv!NO0CpRuoBHN8s`hIWaKi5YEc<tj|rKyZyX3j)x<|uGM#c<bMcFA^ogy zTUD*K5Fa6X`sv~8MsryTKj^~+;T#AFKW45OVytO61C{Bn@Tp4to4?XLK)7fAzS%1p zZr<8_*N<)c#;Li1RZSyG{4;O1Y@MaY|N6}bw=ZwT9uY0Lq`4{b7^letNW1S_y62g5 z8f08}{#R?Pc7;sWZ>wj)-npmU+MuEx55MBz`o36H9`IlgtD8^dPyz&OaGLvv>09>Z zsvivO<SeEvV)J-5QuFgU;zBu*oe~DIaBycs57$=DK`v+04vk7E>cqdfRxI(YQx(T9 zbtt^4TXv4p9l;5Widv&O*Htx^F0*E1Bsf=71}}K)2dB<>W^`Rv(9q$TcYpK)gS%&A z)ftmeM20q*uMsXvATfAjByYC#nnxMSb5MqI{me>pFT;_yG(TVhy;GA_X*9K^Z_QH; zHp>&y(BP~`|MptsO@lt9JJJzr$=dN8)?zKYrw)AMbq&}HG;hs)jq@JkG<g7th&JAK zb%R{Jvj^tC^wInqN19M6Q~IyIuc5u})+?eQ<KQ*NL}DD+3hNM2G1Js<J)w~>W$PK) z30lm^#^#RA<m{R(STY&sG*g<g<T^*a_=tuMH95?eh+4e|N!Eyf001BWNkl<Zjrpi# zSg&&vAU&mta|M<(X1}CSba+-@a;u@+qa=kAN*=KPE6Rlw1&T(!6M(mh&VJoL_APF> zvkmFNFTHo?+U4;xsIqHi+IR$g68NdC=ya=<*u&!P!~)1*x&8dKpYxKWg+0A+LcB}~ z;4R4>kd-7(5sa9KsP8lw(W9YtU-;Pr&&)*>RFz%yJ?gO<CEKN`gX_?pXyAtCq48&( zIB8EvnpA)^@WqRz-8yo*f)>3Dw0mc%6Z?@dEqZYid)?5%zKu7Y6D!a$-)VWq$ypKq z#i!Ap)><t>FgAhn9kxS-KtB_^r$kbNOOJ-qj7cer#MS0@Q$VVE>>852$cNgMGt<C@ z8t4L(Rob*0IK-W{mGv>pXcRI6#t2-iPE*-CRgu606-Rzx{(+7XD=)d}gfsrNS*Ibb zz3b<n{*HCyq@+pL8-$I=UHSrx{>?G{I5(fPX%Tc;pu4mfv7F$C?XWx-iCe*nWFjQO zI4JNn2@z4>>IX*CZHc|1o@cJN{<<I_IYv~Gh)Hcw84-qE=hcooqJ0l9+Wpi;4VWaN z-o9rit6#&U0;Iw9bGHAmNz{gg=ikIrhK`V^A`<FZ*w9|L`L5T5Wl|ysFwtDD-by*t zimo1I088Q{=A{g81g90~Q}wJ<Om(ZTi2;nxke((Pnl4RTQLIRp_Y=Oh4>t@+)#@2c z4Y$moXsdERsB{b7(uA0lRU9Kjiz7{S?I(3|%Qn*rM8ONna?tpclYJMVOw`y27ouqX zsz*=1d^{W(p1JaY&t2=q9|Eo3p=46y^i>E^j!l>Ht3NmTWV@miBoJ@hd<f=qo{IU6 z;Fsng$L?azSZ~pYd)jkWG}#in_5N2K+A_;CmKczVxh-Kg5^OdAL$0>8GbAHzy8UGh zm?WaAXMfMa$+<mtQUMYXZM@}*2Dy4>ZJc*`((%1aPd9~#ssGBR_PU#2nl96_M9?bI zv22_Ie+dq9oJa<@w|0^a;kH<Aahe8_A`8|)Zo@2rdXxvY*Nsx(>Lg;QZkRDqMeV~q z4Z4VkTD=FnoiJ4)Dm}3-BJcHpPaT|enxQAQjh&W>lG2bT4*}rQx{*|2J)hHQ5h*32 zepSZ_{F~ml{ruPecGXI%VN*J=d)3|l`CB3_qtZcpg{;4y3Q+J?$o5i%7KRo%mjp7O zoIg*JVFXn;(*nL-A&NTs-J->!oghdgn=K?gN^HzJZ9{A7&XISW(!eb*H^1HYMnoaz ztRDJKX~#MOXSr6_f%ZIhVgn`vO+9X6pYYU)CL17ax?#=X19KZ>%vQVdV}kLs=(5`y z6n<das%_so84x0&k-8>V#V{tA*jh84zBJFN)Lfe=23}qayGn$$$D)8kWK1Y8ATg29 zP-8&qIp`&+wxX2gflurigeYY-7m|49G$+937aN8&o=xtCIFk^wH77=}P7Z!Vk{0cf znTtq+tCFdrY8|@ZjUSvkeXNcQ?ZeaW`o!-a+&!BpxgcuurFg#%cS+3Cn9=&9r+Jcq z#+<8&KUo*#;vJ3T&FLd2_)4*g3O-H=)!85*1Ydsm&NyE>mio>ZS@;!8hxaYm{Pi<U zyGlD}IB}RLpK_~-+qPrLHnt9*_CB__0iS`UE^30f$39IqKx*&n+48;DG|0H{T(H`4 z%~wuDJ^g#<p8Aajg>St5)k(<dJxNMZoLXk}2(5W8Vi4P6IL*v;&g(34ZUu;O%oO6r zkT?L-s5V)AGYE03AC#_ABc!;7q!?Po!(Q2)U#`vqY)x>w)QpzKiU^&sD~oNo?8IrR z5Kfp)y%$A%D;3d#NC8#hF_9eegh=rz%1=aDCaP%7YyWBP;^y0BlpeV8{X5pJFglH$ zOvKJ1vw=6=OnnvR`W|RgVinN%<>W>&kv(6yvWfCLwXTL_`P30XX~u@1ZW{(dlKUCy z)16r-u02wR)zI#z&z1vIoC=O#S7<w@sifd!NT9u_ExEsz4nEU2bZ|}sR*9&ZI@Y}b z$0kiSKq8`nuQoZ?yl2*?`7e8f2&6WF_$DHu{;QhqhyBW>L<BmA#J^T*)VV69&9hvX z0>Y4GNGxy?c_+b<6N}yygfX4f!&aokn3%fK-@LStn!`OuT9E5NRW+0gXVQq4SwnIy zq69XaCi@6BDg-lB)CyCJ^m#cQ+NDl$ipMR0WasQaT3!4r0iSU0%(U`?n@>3X!_7Jh zY27{lZQY$OF|1;bnQgi0MY_&(%WR5O*eIb8OhF+w5`2?Vfv>eOzL^OMq{$zldu#DU zpy3YN6333QSS!s~^7P1h&d|Q~%WJ?x!7t6wV)KJng_9LHe(OexC*l1Yn+JZJlr#we zY5O-<AK1F8LB>UwTVFeO!L;bICX?C!%if#E*>xRt;#K$c>s>9WTe~b-RxDe#?09#) zBzA0^#UYR|EJ+|hh5+-M3Cxe-$2Pz~AQ>{u{Fsp8_hU^$hOop00wl2=JI-R8#Evb= zR^)xvuGZRnzwUnT-I_nnId!V)+}BdSZg1*WAAMT)-FxoY?m6|Xs#B-V*q%2`JhK`A z;vr*Bq7;1GDkv1#2Or!Q>cE3O*z1dIR?exHH<qW35@Gz+URMxooh48dbq27Lmckz~ zAv0_ekm}VA)69@#xDfXV^r8rW>{1AOQN>PP&7F0geksVTNR>o;OB#E)G8AekOTnZS z8G20%fifJ}`0Rym`fyX7q-f~iO^@CFlkvA;k;-t_=mNqQ&y-rLobRPE&0R{(+pN-M ziJ40dLZ!}va*GGewPke-)Az!b2y`Obj?lg81(-Wk4zG>*n>_UmMdsu!IV4i3OsH0A z=9q#rn9e{z0>UHTYQ}0eaQQu0u3MXXm}%ve6U)y3W)s;C-hYd~!h-SbpHTc8iv}^7 z3q@LfWTY@Qa2vMBKZUzQJgkqT`6FaV@_@CFr()}xgS$LSO#@P=U~Nd52(YI6jcmIt z^JT9^8y82K8J%OEGte=XNH+w|&@evFOhpfvPDmZWAr{)zJ9Nc6el5%9?Z_~G&i23m z&r~m2rXPj`r9l}`1O|*sFnTBEEM*BAlc1=#W5Ws9?5rjc0z{t_6>imy)s%yibF&r& z70eD%y)d>*UDF-Q_7wNmtVDTM03lp4wr-f2NW%6G;!r^pwSrhZL-|Z+6IDHf=}ZJ9 zfWbSiYvQeP&$0d+p9YYESa^o8>Mf68HfKJY*V_lba+NS^aNHWjU*iH2lbnjtAu50Z zhwkPymNkU+X9(|tE|dAbWgpsb54?I*G@pVWgOOpetu{-a%tG~AI4(8?A&fS+g1~4l zMYvD#uZ`$qWCC_o_m6VPrUj^w>;%T(z^F2LA7f=?p&_fRt$NkFKGM<Mj9E!iUhmxT zh2NVV>+=Pfzz|`~#Q3wCqKv`nIP2nOG)h=ycyfaz7nwjDNNN{>u`{F3KbFh)Q(a#M zGfa6^7z}b_L-(fRr_*~WVW}?R$5a@CiwfoppFGnjR*y$l9<I4(tmP5_pgz-KZ!K;* zGXZJxnU$k2HnS1h``St2&Ji_vKJ3ZeZ>=8hiCINk2hVH(Nanw}fa1|STY8as<hIe5 z31!iO7X;@zc@shDTOh<h<7-5|h-~i2?WjJ}8CV_yC0l}A1lWQ@P7xs0MKD4oDwuIA zI)rFF>yS$fNE7x95qmWFpl!(3LKQE^S>#FrlZ+1q!X>wSa@ne8d^HU{e$Vd??L7zh zI9-q|Qm}qVLPG&4nZw+78JM25R=6l%nfrbSfmq%#!x#Y4h_{Y1@fQIQmCczFS;5uR zFDLn%-5ZZUQ-p2xDEY}yVggH$fSl(ygh|23%B`CVPtBVKr2Nce-DhU20N}{Ix12gr zLMtx&Dz?|GP=oWZ*M0Lwf5j7C%97F%Hj!Zq6&g@G2Q_P+-Po;WPD~nO*l;F!!bDi5 zqlh~GVTfc35LwAQOm-cTnOZANhDtZW@JxubKFTKn02Lf9!77nMBWsBgg#|`z&zQ&p zCUIH(h!X(s&lNH8007{e%f7Z@>!+LR97+3j|IFSUH*(F@Dj=BtvFb~dFbqk_!`wI5 z=DWm?6}+*HO2ox8tSbquXc)WIO{v0yaIKDGBlwz!vbxtDE@;|mP*$qP{EdftXiE^= zFnXn%Zb$7{#P=IeKGS4O6UrNB`dX$l7LW#SzcR1QS^8+}J~8lSaUf%ueyiTvjJ>Wp zvGUm0F4Fge`!dDZrM<n~Us7yEVkCffKjrksTmT^l343z>^VSdqlvZz06HFLhSf2t_ z|Kjy(%uX5hq5;*b9YLh$%s77pGMvtxW+W^{+*i^71-fU9fd#mWqAR)2tprpm<gNOS zHfOmDUcQnZi~}2<+jjkL&#_AiXz1{pci;Y#av_ky*9>uBWAz9`yrqat=&DzYVFBJ0 zW=PLEzR47oY2R@5D6<yDc<8W926h$@zm!5O3W#OOp?gh}$LwNTRpl?Gw3sM7No@lR znW+D9{mmVhyjcy2>SreFJ~LYd0JRg{C%^mFCSF{1!vk@whrcVEieGo^;djtXo5CJ1 z$N@kym-wciduXRb7|;j+IjOZDqhq1pzGI!59EG{$n1VeuKo%6hPo<D-#oY8r09a~v z4XN6x_Q1yapkuhI)xd>n-fBD)!agJdpe$e*hy)IPSl4m?LQF&|*_1I`Hk2iHITF!b z9e3{R8@}@G3*g8wJ#qGqfBbc#a`cL(P){mSaeVVpi6-bVCJFWv8d9J^QG7Q#h%4|5 zMHi{+#41#D0Vr4pWseLwYYJU^bj>j|HY=+`hfkl{myX!{ZM!^(q8muYKng6`gqllb zj`Yny_2xCCGm~|nnXPg(`1Ko4ohYG!%kIIl;-}@+<IB#!w~4F{yB$%fUC5YFKpzpC z@&Z&JDu|6D5E&1811;_*>p)R<M$Sq|nyB82Pbt2l1ywXH@=OX!?Ng`hoI+Az!W#*g z#sysR{X#<u_ooc39$^?gmz4Z5(_aC_e<h7PY|O;4=A_ju|EbE=tKadFj;_7Ubc&$7 z-nrw8ADbFm8Y(8fgx7|#;57=4+S0NYzAU9(ibXwuML9$0RU>kxI~jaU$Qubn@J34# zI5V({2v;%+Y90d#0I2!Ez8%Yt6&u-v>P7&V6M&S}bo7c`<RE>K8c=g*WB@=u)nqeY z<#Z+k(($iutB$Xl>sxJICkJkRN{VT#Zh5o`d)?&G3r4nYG7@E!Vcjo`e?57QptS@w z+W{zX=S?_>3T+TePv$nr2_wKzqGpBw#JwTj!sy*37#0$A4;(tZPO?;=>99l6M{3b9 zjk+=zA_$}#Qy_`606gl^`z9#clxE6V;PS}cbRwDWTU1|7mL5W^UV76fm#w_7i4HOJ z#JwLrvF~-Fbre56st>4;DGLK86W<G<K*morcpC_VM+F7T6(=^Tw&_)KVf5N`E0TkI zwb46V<l-{{@UV8`QC@2rkd8+0m{c6m0-uj?=%U*j?*`dMGiwrR?{D(#*ZRbn>7I8c z0}@qBN59j|x#p|h^njSyO~$V~@~>|P&_E&`*dVY`NFBZ*?#wU)S_YYpiNimkE2vZK zNWbFpDco+N)gX*@z=9miogn!FK=;6&hW#=t)p%p9qzn_=j$>C4q7nqwmgon>D8;NT z(`=Uo0%oZg6dgdTaxn<;9Z0Sj!$OyCzU1p0&ihnz9U^J}6CZr>;hX%oix4OjGCo2g z-4g3QkKvfI2S_wfD++PjkPYAzgaDU5mmC>E4(vEixLabi{D9{=3lBGP`Ui=f+9;S- zs?f|sLuy}ksMyy-R-A%9MB+qqfcObO^aDVwHWYL_0CWyC=@VF+JTn2Q$zuXuD>Qib z_3OXqGjn}w;L>}r<KNOu8xWLNjW0cK&ay2L9=`J$05b~7D;yku!4GlpDUI1pON&6T zWZQwPvl<f@Fhq=OLrjCwr#Ix&WdN|YDOop(MsaNk)g!h-WQbraezCP(%bPqNtv=l; z+v@;EaWi>cG{gD6kAMfD)J+Qb>Uy5{1<TBh3qWAXwiIT#0>4Q!TL2tb`|P%B|I6HZ zp@@c$-0<D6d@#gQpt#yEbyit+uEK2ujRdhyI<adWK_<4&xc(6-Ie?pr<-^&_z7=1K zkcuo)F$du=5+esH5z2gV*-|Hg<(!vKpU*TI*tdPjVeF{UR9mcroRV@d_*VPK-||qg z_^wNoi+2;sx~jcr?`)!~dA)sV&+;Z-eD%{A4oIU9pFKIat$WSfPU~vx8d~u^PaeDT zV!$T->qefvVQO!`<(MQUJd>GbEcqr+3E_1=`niE^ch0pk0I>U$e=zus%VU|2n@CfS zoHm(f7D18F+fWE76FYlJSik@PpndshTYHnCh$oJPv(HnTN&Km}epCo38m|b004s3| zBNPF6w*`qPUP{QUQHU6RxW^E^UkQJ&oaCXX4lp`;hp&3euP%Ti!{o+?|K&IHdYkMT zg-QN1dA>{l$mg3#^52e>|8ySI7>@eGQVjvH-HbQ<5~*PWSfJ2zCyUKs0UFVdtpMjJ zho1pa&|7~TvEh+Z=6;YOG_N56K=0PUv0Z1yK2}pQqKh1l1b}9?^58MOk-*ZjH@r}4 zpJ<|<lZUrawV9JhU;T6@o9rANxxX1-yOnQz004ks)pgC->jv-p9)&b4bxI1Nw>m{8 zg)0`o0Y;v^u!+h5z`(X$M&4JB=FF*uG#x4*W|Da1AIe>d&VGjg0LwP*ZLX3tm9^6o zA^5Sx33G>AVFOnKpsy8z4giYm*d6x_scczS;HH5{i2!c9D~h-e8A2&o%>21l0U$B} zfGn%M;Vr+r0FDfK$Bx@SHZ>N`)kZ83XiQ^)fm7cEPzS9BQn7sa1&sY1(m~|MfyojS z%TK^y1M$1~92^<mBdw!CFR|N|3={#x;61Lps!eK00I>4<M|`%KZi^;g1q?_j&xiui z{|rJ6G^GBkb~jhgiT&p`_u{Lc&U`>ReEYRjWTKj#1}?oP>#Vk~8C$w#&VW>(={fS1 z%lr@KcYF+zKmz5|Kzgr+u>$}Az{pcg4#ef>e_J7noIF7f@;}*0nmHW=HX(XZGM2#Z zeVtccw7t1XPMo*^K$Q|n@?weKe4+is$h>GoUHR8AbOvm>yGUYyc`*~O`{NQkTwQYG zCzr3h_w<@R8$J22zkPiF7FBH^w-HU@ad^Tyq7{SU$JN4zt3R2wOeuOK1+n0dVMmTk z5V<hwuyw%)1Vq>&kc^uEw0epG0gdOkX>uNw)tTXDjze>_;)?rxO>(dR!>!J|^n%VP z>R~cq5{a6pUq}AT@`1~mJb7f~i3^&0@zqafJ|Io+TQ>6ajdOjgt#f$brYD<=Uw7is zx7WwQS_mIxNkNnYDXwbISGlz7w##VS(ePuNC~wBf+SUKuk}b)GLCJlje_Ak=sASC3 z)9sMnj_-N#%JaU_L=6F8{KPrw?3HloD;d-m+YFZIL02-1!`ue$!@wUI{oVeda3(Cs ztPBW&`04JHc(DpMZ~OYjEq^iRE=cIW)BpDQ9dGfik^l)*<f0i54MEA`<rl*M=}Ipr zWMw@HA`}btFEjLtQQ=o5t*5)PQdwO=<xED^RxM(1CDj(0%ty%ed5=83sbO!Pih9>S z+O=7@y%l1KJJ~t+GJ#T$g1>`O<4AW)=#rJU?(SamM052#@vqxXo#?emXFebSz~DD; zZsM&qH{ZMJjm=27hYR;VW%_6XEJy+%CLRQdQc!)Oef-d+O;ia0Hs1Ob>nx{?^`b&9 zRT`6&YbcU=#V#y4EIIpNXJ0eH{{dk9*hXdCD0Z%kMO(-;8+9{bCPH-5x&Rf7`c?*z z0hNSS#7Dzr;#?@1XIAtbgVHdt_PL9$`pxD#LDKNCH$HmT&ou0cgmEk2@%wr87nHtX z5kEXb2W!aHp)TBCbFz3)fRz8Y&skI`zFwrQN-~X#wuD3sBKtZ50KvqwtMh7ilJDu# z${QYutx&=u@O{jMf1T8da;+(H4ynm5%QwB}Z=0*(#Nmsl_MVv@4X{W6>FAx8)n|I= z`qqleztn`iZhB<HiTlp?KX^D2*t1{77@cibtVxVG`ohI?t&*cPSNvo9@=;N$;76%f zHzdL}A4eUS7xQ1a0KWRNhnuS&0E{19AJGEzRCiU0=k<lZg`w(rt0oA}f-xJ<y7(su zM$C@X()CV;X<(9p8!+lgojt=>-SjJ2smZOuOw*OK9{%!g<y2M*nbIUQyC>Nmc|+hz zruPHHY>U>VKsi`P6E3GLB{hM@kb~l%7}DCKL3c5krU^3ly#W&efa;~O1D7Q)oGz`p z=H7z+x^nykHIZ0-mm^R%hd_NYQS+6z?(RM7k>+Z6a#u59qhBkuC;+KG)^U92+h3lt zjy`xRaG0q$Qqc}mcd1ruf=FwoWf<rL07S#joDWS=)>hf{?z<uEK*GE+?~s+}3C62L zM!psniE{76+1Gxix#|JH=#h0ACX?9?$o2PW3`riXlTln$k68h$1%`2CqR9deC__Sj zP?HxG{88n8=V{hfd&A8i>FnCmbSF5<^YV_ne!nudTn-^Z4Yb@e*+r()WMW8uN}`}9 z%Wa{F7UC_>u83fcwmY9BTF9j-Yjp$wj)V)4la+zQTg7K1iI$QRG7tb@^o8avT78=y zTy^WC_O56VLUcqzHY7;Fkra@pXo_w1P4D@erfYcOJC`*5?yH{`1t0;y;5|3IJOv%T z`+D`;Pacma{!WPHgDHbZgDHqK2r%;a=BDem;mv>6cm96o#T&UW=>;Taa9kv}BFru% z@zXPR1b}nj`OoFfCQqZO%`Bf9ULG53oxu<wc+gR@K;pClzc0i+3NM*WMOl#X<6DBc z7oJ(}V(7VW4~i|aSD24pN{E+S`>EwCzR_F{NP6<Y4<FxuzLv@X*pXfKirzgI`^sDz zDc;-(`4DP;%0)}$cE}}=FF7Jsp}PtZ6l<7Zj}gVVl37&3$gqA+#={Z-2#!5;1<Zra zegB_k-802%nefqY3rIHht{r}%t^611{NMQN-m?<SJ3XpT_YFVLJO_C7(_#UnllPuC zJ-p$iE@k}SrQ^HTsatU@G7Bt{IsxniNc4RKAjHYN1C`^=DoLg4wx9l=*e)XVkzlOk z=UbR#1oD5+rrk+GoMX(Xd-d@RSN~;m6$5}1dvA_*o17p+<>w~&SJWx(0*P21(H1tL z1EIVb4~a+x{J?$US{e!qVWv|80Kn$0UqAcYKWn-Nm<~Mqf#)81o2pNMOl0jOGCpN{ zRHG=`lr*E~Kpv31B2^ZXCrSB<Y&->kXd6_5RDzCDG9#@*nR&rkI~ZatmQX70P-xxI z!<%Qu)+KqJE_L?5aN)0i5=waicO+4kzoU`W824Cc3x7BL`#aa(I1lyc(YMgdnY?*) zu>ca(v!f3*bFTTE=*azVGjlldK@<K&vUMg(m@Geuu2FdKzIQiW!`?NIT=a8)L0MjK zewyF+E;J+~O_Nv&Lp64=t#;v${P}zqPWJ71o8T|{qzO?OyDLSh3+YZTA0u3Jre`0~ zf*0Ky8Fa%3%7iW@nIJDOWznoRu;#goul$Xso6j_I{JKZJ{_jHD?O;%+0E>|p5E|@L zki1i5MMWtAfPyVIK1DlDB<dS|9`(piDTp<)==e?L=+f0ga7VQ!{^gug5T^hD^6dDo zW{yK+T6N_=o%f5krQ3@A-!K)Oa!fKo+P4CY*8a$Y=ltLw&ZlDgKKIV~y#DH^MFU6x zhwr@p)QRRnl(!we^J@RYOdF3zn#In-DdLMUG3yBj?|9>U{D{_Ee%tH+??0nb?hBGa zTqcf30s)^Cz*53(kdaHBQ&)cIV=K<Rqv<MDMz<V&YMZYQuxbL~PUMM=f+H(0EO}r0 zCa|%N#1Yy_0JlI$zdTmQVvKFc`ZY*#p#+`X!&krQm$PiXjtnzX>mR!7!+EV742cPY zmfEVWhEOupa!b?#<w?64Gzw#(@LTRh1uYFA#whX*GdO~S6$^CbK_7hX-xb9<%HmTn z%Ty*eaFPmQ(4_$2=(pbh^P{tF`Sb<9@xQa~aF~Ud7u;y)|E(MsL3gQ8Ls#Cq`~08z z$b71Fa`)TDcCDXJ4zGS%M1VB$*xK>^m!CRavo!SN%`=Dl3M_8`!J45Nx|-pfo@4@k z6s#fuK-Hn1qmO+5e5$(U^4l)|l|Sg{AB_x-t0Yei2Vo$RfQpe>l=~*$@C&~+u=%d} z)aSsie*=_R&Ls^;mUU{T3_7}bBMm^jXpMEu__7e7%vk66JGzh!8A3R5D$D9`xM5)& z8Mfc^-zUfV<3=lK<_+~{!&GdQ6(A5GVnamNJQ$ZUks;`Q7GEA9eDN%zc#N{jW;fY6 zpfe10ve6pNMlM+#XOfHb6r?&xUW|3{Cxkg{JNcb0Qzz#e&S34E{^qJb{<YqV4gn}m z=_~64AtJfhL2`Xdh>}3iecrK)|K}$z`sM!zOV#<*XV2$;U_P(ECTI}>5&#^z?=3G~ z=7Zn7$<7nWIOL8(^wy_ju@?+~<k>ESGX#JGcg?pUD=xhKx{v<!`nNo2WbF{}AAMy= z@t1g>Gy(vuc>R;t{HI^;Tlekx)P(Z3ecNyJ*#emQ0HAbmQ07FLiScGe07NpKABrG$ zZ73)%+2iT{Wvo3QR{;<R@sg`Q)xYBF^XUOcPj3J1V+XcIg^WpS2IvfT+*dv%62>U8 z+$vUUjLO252aNC_dpI^9C36)c7LD>Gi;b^mswVypy8Svahv@k&bvU%+Aui@=b{~4o zwI>u<FYUYQy-Bm@Og(FNU-dsexb1iTy!XPxs<UY_WB>pl07*naRDq&V2mnOU-UzY7 z%PS_%`_G@d`v3pHic4>wXHABmxpCx-c4u&OCa;gBG<f^fo8McWr<_tqwaW6NcV8ln z4C)$!H9<^%wU#T)7oNnme}Zu)3_p6#*ug87tlu%8I+weTZhQZ)oqfxt2fp?0L*Kl% zHrc7l!;~rbI+Z%7&${7(4cGre@5){Cseq&7FTP`HczG;>3=bu1s{!U;{yON6;t^o% zTVzQe0Ccbh(EY6AXoNU79K$<YGe1JuyyY94Hvh>yTJP!L3qSGPBex2M8V`$ztB(Lc z0gbqlxzG=oB*(;{USQ;*?kSoj835-|LLg0}YWdSYa-fnaLl!}>_sVk7Yi1;MH4IzI zLV6!%wJtUlNKA4s5vx!niWK^EhD5}$bm+_1o%61h<?ds1`3?nyS#9+-pI?2==TAKL z_Tvw|VQA-hlh3T=FbxRcHKYuqc>}5YyyGk1ymRCCeWtCu$rFzZ?fv^7T#$TT<+Qi} zX=ZTA&=WWJUpz1SQXw7Nace#$qB^FAJG67vtNaSOLYPkZ3Qu_g@je{<#`kZ1|GWUn zQSX{ZxBlRx=e~34@C!E#y?Ej9b6ZB9+fc7`MjInRR-WlvJ<{2Kva^4vZ^H{~FaL+8 z-MdqI@xgbCZXv5mLhQPDA_jT8Q?&CDTyVqZ*Khe!fi~c&2-N@p;HgJHwD<XIt)rdi zp2R3cvPu8|FtFnJ*I)LZ=hym>)#`7(<wrRNAQdNSaJxa8#;H#y9{>OtJ9P2RPyd4d zVL*cYbi#rVgDKON_x#h^%jUSUNB{uOfANEd@3~4<l}&bxWCiaAGy(vC`gq5|Z@h2Q z_x`WBRiH5qT=bQJi@pLs1v8^(jXZb7%us)AqPIHQQycHiXWB~LQ*AwyZQYYyYYs2l z`knTr2NtSa02teQ)yZ!(>0A5SqQwPB05JIVn_db)8ocLC014BRvzK8<=o|%(c19b> z#p*7bH3$IU@ZDE$e)qce-X_mxHPqHIvf_d-t+?PzzSvq<b#hg;GC+i#OZS(%jxI<k zDII+5CyqUJf%F%!!Py`-pLgT4MGH9@LVMRpci)pu)S<0?BCuCs33TV=rYI$p#fvWa z^Z7e6IO^<qenIkCSehAM31IaqbtP0H0zgJ70LY=ecciQT=_bl;>z?#i7?m*pF_P$f zo`l7W(CcdZzi{)0TRv0j7)?^oi`x4Rth{_7@#d7Y?;n1oh*_M0w7Axg0N~i&7uPEN z3!CTEiPsH1_&R_h*;AT690}$tj-Sz~*a{I;1ZCVq0EBv_<Eg*;r3Gw-q^zyd(YLpE z_0A=0cD!_GG&Q#Qu`hnWSmc!vDOcRbE{FK-DX3m=nzF>h8+;T7<>w8+W~D4!c-!x* zky1{`M$)Xon5Uw*=0qg&;ZYz@wsgb}dm%WX->!rJ2s6i*y!gfcFu!`d@-+J5HAnAk zGGN$ijusst<(2ZWhZlH5(vff93V9NV5_qm^tG6KKWk=rTP`tw7S%6@^1V_Jd>EOff zS-5t*+_d{kzh0|!`5)0}DU?WY&J8g{rAAJiANylSW8g6xm^gpAGifo9hX1J6%llc9 za>0uR06znS28JmXQVg9Cp6>hH&Etof4{i5~Q+=lA$>0BZ$QKKvUM%gDG<f$L7dXQ^ zt^-JLDE<@(6Bj20$)5&_1jwQBwFLlxr~dROrbo`6cMDztI<V`fjy}0fb(-0+FFQ(t zy;Ne@6?i@aSw^sC0~D%$wqALK=GHThqQN<S0;|^NAfHAJX8t-WXta|ZPQjEXqsD<( znq_^cR(k3$ey)iV(OxC=!r%U<$!Au+(zST`XfXoP@B^DG$F?j~Zlf<=JMsKV0O4^& z0(jzFBIdB}98!G}QjorLJ&y&y*48VZd2OWY$xr{vLbc^(qsr)(C%*K40Id#Y7?~ZD zVMaPWjlZ2@{G3Snf1{6DBrAY1sB8R-3&V0>)x=t<up!5-NCqv8y1yV0AS4p>f`Tx8 zgMmXoew3LUVPxl~!}tIALe%EvrlH4gIq=yxz0$RKS!po>5)dB!)`A899=taMDT$2L zoO&t5Hplu>PNpPrS=IR0E|mmlhvN@iaOm4VIq!D7d{mtt*!j8NtyMZL7n2cvK=Zhi z958@`ka^chltu0XWx-|`;uo-+e%$8yS{1wJNGJ}4BH_KADEb7j02b7coBEsi=vndL zrCh=uMROvAH6)SGGk^Y`iNV*{GR*Yw#wUOO-z^SJJkp{BB!I(rT)QCo<h72$JFm3z zAj!?}=(n}=uKQVRK5-v|RkNZAq-eH3{pas}tr*H{Gt0LB^(RL5o?Q^^hr+hpL_>;) z@i4zj4SMrhMgo9%4qgo2Dgp}yBOb<oi-bgPM-|re009zV8fRoag@&B%1t+k2voaz? zvmQZxq+{2A{mtt5>V>G;%R$xgRl9!UzfK=m`bt;i<)%dnNR{VSj6Q$e{PQ{S-M7_F zim-BxCXXaJvB5CkfLOvpqByeqVXXE5^-AaV-}>mti?4R=zFzI!@wb0C^up$1@Gy(j zynPZleuPvv^*+{lE?S7?xyb1#ar<UZyhSo^<jPRc4v9B+a|8{BYNq)sNiOGjhHoOK znEVk`OkNV72>}2qdspoK_($@3`~0f)a!`G`@4LVAdlOH-X5e!HX^~8<0vi10yy5{n zI`WMhJqsf}Nurn*b_|M0T;bGb_apq3OY4wMIgESM(<PRiYNK5{KKx&fKk<(FH|iy# zyw<hzbANc^nezaY`+!7ob@o9X_w9!*u|=3870RYb<}Z~1S3=7BVBQS(H9>M1hmRGt zSQC)RE%5NZ=6Nmb1>o0n0jWWbLTvEGMybL*KmZteX!Fyb`K_kw^zu+%?b`jZkB#ow z_)1sgm7&E8NJs9tBCmFxI$dL`j;}uUwQbRo=12-?@lN<1)FVRe*T5pVeUUQ|*1Yti zApl}tX?ygezc~2t0)+5daLVf)kNo||k3Dgrx@$PQF~kXFNUd8SuV-itW<EroXOYRu z=&yw`$6_EEK0K<AA^}TEIe{6~%}`?ca|fejn5K&0NB-1Xlutp8s6+pJ&2zW?+N;*- zt~NQa`}co;=)MJWxq8jf;svDIP}hlFZ=FvLN5At9s+FQ3mZvx*#WdlWV4z4EsX)&| z9WoR$1an*sgO)qhG%xM`gP-01&7Yl5yB3@#hqpfTnZG!)`}MIUDMKJ$nbu5S0f3Oc zy-Gv2!<!>kkL0oh8%xpFgi1&m&V%8;rie)D_dy@UG-v{W2#`8262@3ZnLFq~c-iS` z!Wvt_sV=eF1O$8k`j*H3*Z*6e=~;++E+mZ~xODq3{L#s;Z+)dJ@=DU;1tb6%{Q8aa zdHwL+Z&XI7Lc6&X(*iGcMh`Uanzu;IO7>qehACnAiU)fGKJ};Xd*ZVntxm3*PwN(n z_V4`Q{U866lh2+DAlj8IgPB9yl!1;T{z=TB!2V|G{L`cWgE3?{#gL$}+A8s)nL5IB z>AOFM3lg7ffpteV0!E3AToeX*1`11Zxz~^sVu_rT^$+0aS1;N5JAX7Yde;0ax=?iV zJ3qMdKYX<E+=^GaBCjwll37(uC+@jmW^7G!?@kV0G`4f2m&h_bAq~bj!#cB0j?IO7 zal(n5a=wYI5R&}ki|(cnVi6ABdHuJ3=~IWk^Zr-RIx#(V_V&;I*<+vksrppAJVFA} zkk#mIl46}L@IeXQcG+BHG9UFQR3PS_X-S`dE<$@<p(+n-GL;rHmp-w!&4)199zd7Q zMP$K<jQ~ExyP60EF9HC-=&p?q|MJJj559y4q@5<^wT|ci=2sv8^`EVezXlvGUTRv@ zfJC*@u?L&<0yuL2+x!GXJs~0GR-}v@LZ^{GLmJKaC=?-cE}CHRet23P?tT0dAKd=m zKRJH*6_|B{kH6>sKltR)$1aL4)WY`Vj)aZ1r6OMAD3h($&6ewG^CS|hBan8liVGFL z_#z=nhNUC1$QRQVAJf+qrDg*FyK2Y^w^&b#hF>!!wMl&H;PQum?)RR*?N@74%jR9z zCh6GrcRlp)KeO*s-?P~E8#SUu4M+fR_^xKoHK#l~eCIXZsw8Z2k<!tXYadx@4gxXf z&7w#K1b}&1cFMK*iDH(TgJeR2;qPvK@YnvwvtRg)nTaNK!MW1Z=sCM?`@|!E`5&tj z-I%-MbI>=RrCsJ+yn|SByrA>>1kq$Cx|LD9&;ZyJ#gpPf5y1)?<O%jZmkQq*Pb><g zO-B0{jfy`XN+mp*rvxFVBvBY50-VHb5&|FJn`ztg*|$9Sp-&G!@N&BXjqSbak>C8& z$A0BQmFEXu=AvKCwCIkXFf_Jv!^EMBd)Doq(_16Y+&Hy=S>&F1g6!662f^+Zl^6sq z6<P7$&O^nJ(+d|dPcn#*1J$xU|9H#3+izNP<My-O{Kcgk=XJpAEHpj7;l=wtxcA<h z@_L)EKn4WvFgF1>Y-|B*+_z#P`D7tVLK5tmVR%05PasgtiVvpp_uT<j0J-1dyeRO< zh(1AIw<jG_0u>8FiHd_VuvTVFg?8B69161qz#L`{_dW5EpFViSEn7bLslH7QEKuzm zQsvl|J)i%{!7p67ctWP0J}q`Y0)!*?zjgC_<_1WE_uec_ZQ-xxt??Wq)_$1OY14Wl zB~D6CY)29YSA#By0D#=Fl~JHa%eC{FwnKMcbMT&P`nK-hc+1_ZFZ)8NJTa$M&qCwJ zE;+d4`}f{^Q+=jA;vxh@;nRjBv*6HwqQ#i&bGR{}nl!lxn+<Uh^EBM~*9i$#S$xi_ zHiv?Pq(uQriD@*p+V+6gPB_Y3^Zlc2Ys$n8>ZVW2$Q0f~P#+6GSRlkr39chMHf`Vj zktG)&T>IAhS6%bv_TIs!YhOq+V{4Cn=j}(ncJ0VRXSWP=jcCyW62ai@*PQdi8D^&| z*VU(&9R12=YI>mHt<1UP*?L~Ik4M0TNRhD`fWj!xOgZ<5q7nuj$Y~pyeG%nPNsNU# zQ3(NH^r;PxJ^jI_``)+W%Ey;)d2-q7cJ{2=g?7517FC9}4u1FThqhlkx_^B^4@jU* zPi;us4&s$eJYo&Wag*S0?SMFXi!{ytP_VOjK^(;nz<tdS%#QCY782XKN#D;%p3&#- z6`0!QOk^|k!VFqNf|LTuzZd6%%94U*TbUmz3%lHi0B~&g`mx>beYWj~R=oL%H8+2A z;Pqe0N;6G20|07M%Z~4O`;o6-KXm`OR4dtPw@4G-b<>NlbRAx4Lg+mEB(^nRFj6!| z0DyeDed^#+{|JQf%_4z-2NN<?2kTUij30C0>;#~ebEQ#2Nc3dxOJP5hYxR;0%Y75e zFMNL4`A_w&f2O_nM7jH9x%)`gRxv$MuP&)ht{OkGb@br*Bl|Xw?AbVVqCaK}0!Ljq zP705Vi<%FZ9d05woTy|v3PWPikYMX`CNv76Kij*<%bgYAZ;>ihrY7j?Fg3NLR_y}x z${cYKVy6+w48wI-*H8(og1Pv0vgptsmcasx6k)RokdMC#Z~N1p@}T;K#BmXk)91cY z%50SrNKGQwnQ)bi=D`b-5t4nHe5O2ga#^fQC@3^g-SnkU%&om|ysf7a-x7r~05Ckr zT@W)vJ+<-9&;+5Ca+jteh^SKR7EDqmi(wf1lWzf#2ij8aRPWZo-g6H2oV~y2tQULM zJ=NYf+ZoN(@l}(9=S?0ud-CA=iM{J4pI=?sv)r5Jj0oETq#|1MfRvbGip4swzVOUI zz5J7KdCoZtiV>6K)cgvAP^Oh6Rs|4|h**m<r=q!Jh_)IMArOFof{5mCLV|pr+hVC} zx_#M1xo?7MrJ1pw>R3;`UXCqgmhGx9aZal{5lb|V`r5`C`ZN&_K;TEjJbg#vP01G& zJ2nF+RmXP8F2aaOu~DolB0vd4Rl^-pC>2yC_c=-P%^;HJp0!~;nE#l`y3^z&PbWg< zFcuCSkr1VTK|orrE0A;Dd~UH;oC7+v^Qg%wEnCk+Lm*TJLVdv0Uo7)D%_$H3oy@xt zt=)`3Q(==cFs24$gG8E8c{fKeeWZbw2@P(Ub^)0508kzn@7{C*0H}^s�b3o>3j4 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 literal 18183 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 E01{T5DF6Tf diff --git a/package.json b/package.json index e228882d1..1d0d46415 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tiddlywiki", "preferGlobal": "true", - "version": "5.2.5", + "version": "5.2.6-prerelease", "author": "Jeremy Ruston <jeremy@jermolene.com>", "description": "a non-linear personal web notebook", "contributors": [ From b37a356b5ec05ee289d4cbf82fc23cb991e09e0d Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 20 Dec 2022 16:45:29 +0000 Subject: [PATCH 174/937] Crash with <$genesis $type="" /> Fixes #7140 --- core/modules/widgets/element.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/widgets/element.js b/core/modules/widgets/element.js index c3d6c96d9..1f6fc6c09 100755 --- a/core/modules/widgets/element.js +++ b/core/modules/widgets/element.js @@ -30,7 +30,7 @@ ElementWidget.prototype.render = function(parent,nextSibling) { this.parentDomNode = parent; this.computeAttributes(); // Neuter blacklisted elements - this.tag = this.parseTreeNode.tag; + this.tag = this.parseTreeNode.tag || "span"; if($tw.config.htmlUnsafeElements.indexOf(this.tag) !== -1) { this.tag = "safe-" + this.tag; } From a5afed93843df96a3c3c42b5181791503347c64a Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 20 Dec 2022 17:31:51 +0000 Subject: [PATCH 175/937] Fix crash with illegal tag names for element widget Fixes #7122 --- core/modules/widgets/element.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/modules/widgets/element.js b/core/modules/widgets/element.js index 1f6fc6c09..716886e5b 100755 --- a/core/modules/widgets/element.js +++ b/core/modules/widgets/element.js @@ -30,10 +30,14 @@ ElementWidget.prototype.render = function(parent,nextSibling) { this.parentDomNode = parent; this.computeAttributes(); // Neuter blacklisted elements - this.tag = this.parseTreeNode.tag || "span"; + this.tag = this.parseTreeNode.tag; if($tw.config.htmlUnsafeElements.indexOf(this.tag) !== -1) { this.tag = "safe-" + this.tag; } + // Restrict tag name to digits, letts and dashes + this.tag = this.tag.replace(/[^0-9a-zA-Z\-]/mg,""); + // Default to a span + this.tag = this.tag || "span"; // Adjust headings by the current base level var headingLevel = ["h1","h2","h3","h4","h5","h6"].indexOf(this.tag); if(headingLevel !== -1) { From d217826375fa4fafb5e0fdb593bbf581c5b19bcd Mon Sep 17 00:00:00 2001 From: Wincent Balin <wincent.balin@gmail.com> Date: Wed, 21 Dec 2022 11:07:14 +0100 Subject: [PATCH 176/937] Fix miscellaneous docs typos (#7143) --- .../Developing plugins using Node.js and GitHub.tid | 4 ++-- editions/markdowndemo/tiddlers/MarkdownExample.tid | 6 +++--- editions/tw5.com/tiddlers/community/resources/BrainTest.tid | 2 +- editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid | 4 ++-- editions/tw5.com/tiddlers/definitions/GitHub.tid | 2 +- editions/tw5.com/tiddlers/filters/filter.tid | 2 +- editions/tw5.com/tiddlers/filters/getvariable.tid | 2 +- editions/tw5.com/tiddlers/filters/reduce.tid | 2 +- editions/tw5.com/tiddlers/macros/ListMacro.tid | 2 +- editions/tw5.com/tiddlers/macros/UnusedTitleMacro.tid | 4 ++-- editions/tw5.com/tiddlers/mechanisms/StateMechanism.tid | 2 +- .../tw5.com/tiddlers/mechanisms/TranslationMechanism.tid | 4 ++-- editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid | 2 +- editions/tw5.com/tiddlers/widgets/EditTextWidget.tid | 2 +- editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid | 4 ++-- editions/tw5.com/tiddlers/widgets/GenesisWidget.tid | 2 +- editions/tw5.com/tiddlers/widgets/NavigatorWidget.tid | 2 +- editions/tw5.com/tiddlers/widgets/VarsWidget.tid | 2 +- 18 files changed, 25 insertions(+), 25 deletions(-) diff --git a/editions/dev/tiddlers/from tw5.com/Developing plugins using Node.js and GitHub.tid b/editions/dev/tiddlers/from tw5.com/Developing plugins using Node.js and GitHub.tid index 543d629d4..719340794 100644 --- a/editions/dev/tiddlers/from tw5.com/Developing plugins using Node.js and GitHub.tid +++ b/editions/dev/tiddlers/from tw5.com/Developing plugins using Node.js and GitHub.tid @@ -10,7 +10,7 @@ The most practical way to develop plugins is to use Node.js with the tiddlywiki5 !! 1. Installation -First read https://tiddlywiki.com/static/PluginMechanism.html. +First read https://tiddlywiki.com/static/PluginMechanism.html. Install Git from http://git-scm.com/downloads @@ -85,7 +85,7 @@ For example files see the plugins in the ~TiddlyWiki5 repository i.e. those loca !!5. Build your files into a ~TiddlyWiki -Modify `editions/tw5.com/tiddlywiki.info` to include a reference to your plugin directory, i.e. find `"plugins": [ ` and add `"yourname/pluginname"`. +Modify `editions/tw5.com/tiddlywiki.info` to include a reference to your plugin directory, i.e. find `"plugins": [ ` and add `"yourname/pluginname"`. From the TW5 directory issue the command diff --git a/editions/markdowndemo/tiddlers/MarkdownExample.tid b/editions/markdowndemo/tiddlers/MarkdownExample.tid index 9d8144c5f..0c2f2cb2a 100644 --- a/editions/markdowndemo/tiddlers/MarkdownExample.tid +++ b/editions/markdowndemo/tiddlers/MarkdownExample.tid @@ -117,7 +117,7 @@ Output: Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`, `+`, and `-`) as list markers. These three markers are -interchangable; this: +interchangeable; this: * Candy. * Gum. @@ -264,7 +264,7 @@ it easy to use Markdown to write about HTML example code: I strongly recommend against using any `<blink>` tags. I wish SmartyPants used named entities like `—` - instead of decimal-encoded entites like `—`. + instead of decimal-encoded entities like `—`. Output: @@ -273,7 +273,7 @@ Output: <p>I wish SmartyPants used named entities like <code>&mdash;</code> instead of decimal-encoded - entites like <code>&#8212;</code>.</p> + entities like <code>&#8212;</code>.</p> To specify an entire block of pre-formatted code, indent every line of diff --git a/editions/tw5.com/tiddlers/community/resources/BrainTest.tid b/editions/tw5.com/tiddlers/community/resources/BrainTest.tid index c278f50ad..db0b2581e 100644 --- a/editions/tw5.com/tiddlers/community/resources/BrainTest.tid +++ b/editions/tw5.com/tiddlers/community/resources/BrainTest.tid @@ -12,5 +12,5 @@ A collection of customisations and macros from Danielo Rodriguez. <<< This is my personal tiddlywiki file for testing. -Here I will post the tools and Macros that I develop for this awesome tool. That way, all the help the comunity gave me can came back to the comunity again. +Here I will post the tools and Macros that I develop for this awesome tool. That way, all the help the community gave me can came back to the community again. <<< diff --git a/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid b/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid index 9b66f941b..53c6c4ca9 100644 --- a/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid +++ b/editions/tw5.com/tiddlers/concepts/CoordinateSystems.tid @@ -21,7 +21,7 @@ Relative coordinates are expressed in the form ''(x,y,w,h)''. Where ''x'' and '' !! Absolute coordinate system -The relative coordinate system works flawless most of the time. Problems occure if the target element (for example, a popup) and the source element (the triggering button) do not share the same positioned ancherstor element. This is often the case if the popup is declared outside a table and the triggering button is declared within a table cell. In this case the coordiante systems have different origins and the popup will be displayed in the wrong location. +The relative coordinate system works flawless most of the time. Problems occure if the target element (for example, a popup) and the source element (the triggering button) do not share the same positioned ancestor element. This is often the case if the popup is declared outside a table and the triggering button is declared within a table cell. In this case the coordinate systems have different origins and the popup will be displayed in the wrong location. Absolute coordinates can fix this problem by using the root element of the page (the upper-left corner of the page) as the origin of the coordinate system. Absolute coordinates are expressed in the form ''@(x,y,w,h)''. Where ''x'' and ''y'' represent the position and ''w'' and ''h'' the width and height of the element. The leading ''@''-symbol marks these coordinates as absolute. @@ -30,7 +30,7 @@ The ButtonWidget has an option (''popupAbsCoords'') to put absolute coordinates !! Example -The following example shows a popup that is triggerd from within a table cell. The table cell is the nearest positioned ancestor element. The popup was defined outside the table cell. The button using relative coordinates will open the popup in the wrong location because the button and the popup do not agree on the same coordinate system. Using absolute coordinates fixes this problem. +The following example shows a popup that is triggered from within a table cell. The table cell is the nearest positioned ancestor element. The popup was defined outside the table cell. The button using relative coordinates will open the popup in the wrong location because the button and the popup do not agree on the same coordinate system. Using absolute coordinates fixes this problem. <<wikitext-example-without-html '<$reveal type="popup" state="$:/state/CoordinateSampleReveal"> <div class="tc-drop-down"> diff --git a/editions/tw5.com/tiddlers/definitions/GitHub.tid b/editions/tw5.com/tiddlers/definitions/GitHub.tid index adbe968bd..16ab4fd36 100644 --- a/editions/tw5.com/tiddlers/definitions/GitHub.tid +++ b/editions/tw5.com/tiddlers/definitions/GitHub.tid @@ -4,7 +4,7 @@ tags: Definitions title: GitHub type: text/vnd.tiddlywiki -GitHub is a hosting service for distributed projects that use git as their version-control system. It allows free hosting and management of open-source projects and facilitates collaborative developement on the source code. Using GitHub for non-open-source endeavors requires additional fees. +GitHub is a hosting service for distributed projects that use git as their version-control system. It allows free hosting and management of open-source projects and facilitates collaborative development on the source code. Using GitHub for non-open-source endeavours requires additional fees. The code and documentation of TiddlyWiki is hosted on GitHub at: diff --git a/editions/tw5.com/tiddlers/filters/filter.tid b/editions/tw5.com/tiddlers/filters/filter.tid index 5909d664a..1ec0857f8 100644 --- a/editions/tw5.com/tiddlers/filters/filter.tid +++ b/editions/tw5.com/tiddlers/filters/filter.tid @@ -32,7 +32,7 @@ Note that within the subfilter, the "currentTiddler" variable is set to the titl <<.tip "Compare with the similar [[subfilter|subfilter Operator]] operator which runs a subfilter and directly returns the results">> -<<.tip "Compare with the analagous named filter run prefix `:filter`">> +<<.tip "Compare with the analogous named filter run prefix `:filter`">> ``` \define larger-than-1k() [get[text]length[]compare:integer:gteq[1000]] diff --git a/editions/tw5.com/tiddlers/filters/getvariable.tid b/editions/tw5.com/tiddlers/filters/getvariable.tid index 19427cb75..13421988b 100644 --- a/editions/tw5.com/tiddlers/filters/getvariable.tid +++ b/editions/tw5.com/tiddlers/filters/getvariable.tid @@ -4,7 +4,7 @@ tags: [[Filter Operators]] [[Special Operators]] title: getvariable Operator caption: getvariable op-purpose: select all values of variables named in the input titles -op-input: a selection of varible names +op-input: a selection of variable names op-parameter: ignored op-output: the values of each of the variables named in the input titles (or blank if the variable is not defined) diff --git a/editions/tw5.com/tiddlers/filters/reduce.tid b/editions/tw5.com/tiddlers/filters/reduce.tid index 8fcbe0146..66b62a8b0 100644 --- a/editions/tw5.com/tiddlers/filters/reduce.tid +++ b/editions/tw5.com/tiddlers/filters/reduce.tid @@ -33,7 +33,7 @@ If the <<.op reduce>> operator receives no input, its output will be empty. The </$set> ``` -<<.tip "Compare with the analagous named [[filter run prefix|Filter Expression]] `:reduce`">> +<<.tip "Compare with the analogous named [[filter run prefix|Filter Expression]] `:reduce`">> ``` \define num-items() [get[quantity]add<accumulator>] diff --git a/editions/tw5.com/tiddlers/macros/ListMacro.tid b/editions/tw5.com/tiddlers/macros/ListMacro.tid index 21eb169dc..33bbb5713 100644 --- a/editions/tw5.com/tiddlers/macros/ListMacro.tid +++ b/editions/tw5.com/tiddlers/macros/ListMacro.tid @@ -16,7 +16,7 @@ Note: Each first [[step|Filter Step]] of a [[filter run|Filter Run]] not given a ;filter : A [[filter|Filters]] selecting which tiddlers to include ;caption -: The name of the field to transclude for each list item, defaultingt to `caption` +: The name of the field to transclude for each list item, defaulting to `caption` ;type : An HTML element to use for the overall list element, defaulting to `ul` ;subtype diff --git a/editions/tw5.com/tiddlers/macros/UnusedTitleMacro.tid b/editions/tw5.com/tiddlers/macros/UnusedTitleMacro.tid index d271180b7..e0cc00433 100644 --- a/editions/tw5.com/tiddlers/macros/UnusedTitleMacro.tid +++ b/editions/tw5.com/tiddlers/macros/UnusedTitleMacro.tid @@ -29,10 +29,10 @@ It uses the same method as the create new tiddler button, a number is appended t : This variable will be replaced by the ''separator'' parameter ;`$count$` -: This variable will be createad automatically and is a counter starting with 0 +: This variable will be created automatically and is a counter starting with 0 ;`$count:4$` -: This variable will be createad automatically and starts at 0000 +: This variable will be created automatically and starts at 0000 : `:4` represents the number of digits !! Examples diff --git a/editions/tw5.com/tiddlers/mechanisms/StateMechanism.tid b/editions/tw5.com/tiddlers/mechanisms/StateMechanism.tid index 49f8f2450..00d1146da 100644 --- a/editions/tw5.com/tiddlers/mechanisms/StateMechanism.tid +++ b/editions/tw5.com/tiddlers/mechanisms/StateMechanism.tid @@ -36,6 +36,6 @@ Now consider the implementation of the info panel within the tiddler template. W However, we can't track the state in a tiddler called, say, [[$:/InfoPanelState]] because every tiddler would share the same state; changing the value of the tiddler would affect all tiddlers displayed in the story. -The solution is to dynamically generate a unique title for each state tiddler that we need. We need to ensure that the same state tiddler title is generated each time a user interface element is rendered. To do that, we append together tokens representating each of the stack of transclusions that led to the current rendering location. Then that string of symbols is hashed to a simple numeric value. +The solution is to dynamically generate a unique title for each state tiddler that we need. We need to ensure that the same state tiddler title is generated each time a user interface element is rendered. To do that, we append together tokens representing each of the stack of transclusions that led to the current rendering location. Then that string of symbols is hashed to a simple numeric value. The process of generating a state tiddler title is encapsulated in the <<.mlink qualify>> macro. diff --git a/editions/tw5.com/tiddlers/mechanisms/TranslationMechanism.tid b/editions/tw5.com/tiddlers/mechanisms/TranslationMechanism.tid index c6ae895da..86a2ed93c 100644 --- a/editions/tw5.com/tiddlers/mechanisms/TranslationMechanism.tid +++ b/editions/tw5.com/tiddlers/mechanisms/TranslationMechanism.tid @@ -6,9 +6,9 @@ type: text/vnd.tiddlywiki The translation mechanism of TiddlyWiki manages and switches between language plugins that provide translations of the TiddlyWiki user interface. The developer site at https://tiddlywiki.com/dev/ explains how translators can create and submit translations for TiddlyWiki. -The title of the current language plugin is read from the tiddler [[$:/language]]. If the selected plugin changes then any displayed translateable text automatically changes. +The title of the current language plugin is read from the tiddler [[$:/language]]. If the selected plugin changes then any displayed translatable text automatically changes. -Translation plugins are bundles of tiddlers that each contain an indepedent translatable string. The strings are transcluded as needed. +Translation plugins are bundles of tiddlers that each contain an independent translatable string. The strings are transcluded as needed. Translatable strings are generally in the namespace `$:/language/`, for example: diff --git a/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid b/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid index d7b223cf1..8199073b8 100644 --- a/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid +++ b/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid @@ -65,7 +65,7 @@ There are also several examples of `tiddlywiki.files` files in the main [[Tiddly !! Importing a folder of PDFs -This example retrieves all the files with the extension `.pdf` from a folder specified by a relative path. This path starts with "../../../" indicating 3 directory levels above the folder holdng this confog fole. Each tiddler is set up for LazyLoading with the following fields: +This example retrieves all the files with the extension `.pdf` from a folder specified by a relative path. This path starts with "../../../" indicating 3 directory levels above the folder holding this config file. Each tiddler is set up for LazyLoading with the following fields: * ''title'' - set to the URI decoded base filename of the PDF file. [[URI decoding|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent]] allows characters like "/" to be included in titles by URI encoding them as "%2F" * ''created'' - set to the creation date/time of the PDF file diff --git a/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid b/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid index 617f90c57..ce8cc6f63 100644 --- a/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid @@ -7,7 +7,7 @@ type: text/vnd.tiddlywiki ! Introduction -The edit text widget provides a user interface in the browser for editing text tiddler fields. The editing element is dynamically bound to the underlying tiddler value: changes to the tiddler are instantly reflected, and any edits are instantly propogated. +The edit text widget provides a user interface in the browser for editing text tiddler fields. The editing element is dynamically bound to the underlying tiddler value: changes to the tiddler are instantly reflected, and any edits are instantly propagated. By default, applying the EditTextWidget to the `text` field of a tiddler will generates an HTML `<textarea>` element, i.e. a multi-line editor. Applying the EditTextWidget to any other field generates an HTML `<input type="text">` element, a single-line editor. This behaviour can be overridden with the `tag` and `type` attributes. diff --git a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid index 5c2568a19..870f15c8a 100644 --- a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid @@ -16,7 +16,7 @@ In order for the events to be trapped: * 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 +* <<.from-version "5.2.2">> Optionally, the DOM node targeted 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. @@ -27,7 +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 | +|matchSelector |<<.from-version "5.2.2">> An optional CSS selector. Only events targeting 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=<<clickActions>>` | |tag |Optional. The HTML element the widget creates to capture the events, defaults to:<br>» `span` when parsed in inline-mode<br>» `div` when parsed in block-mode | |class |Optional. A CSS class name (or names) to be assigned to the widget HTML element | diff --git a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid index a9d2cf713..4f60c96dc 100644 --- a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid @@ -18,7 +18,7 @@ The content of the <<.wlink GenesisWidget>> widget is used as the content of the |$names |An optional filter evaluating to the names of a list of attributes to be applied to the widget | |$values |An optional filter evaluating to the values corresponding to the list of names specified in `$names` | |//{other attributes starting with $}// |Other attributes starting with a single dollar sign are reserved for future use | -|//{attributes starting with $$}// |Attributes starting with two dollar signs are appplied as attributes to the output widget, but with the attribute name changed to use a single dollar sign | +|//{attributes starting with $$}// |Attributes starting with two dollar signs are applied as attributes to the output widget, but with the attribute name changed to use a single dollar sign | |//{attributes not starting with $}// |Any other attributes that do not start with a dollar are applied as attributes to the output widget | Note that attributes explicitly specified take precedence over attributes with the same name specified in the `$names` filter. diff --git a/editions/tw5.com/tiddlers/widgets/NavigatorWidget.tid b/editions/tw5.com/tiddlers/widgets/NavigatorWidget.tid index 48f042463..307e77178 100644 --- a/editions/tw5.com/tiddlers/widgets/NavigatorWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/NavigatorWidget.tid @@ -17,7 +17,7 @@ The navigator widget displays any contained content, and responds to Messages di |story |Name of the tiddler containing the story list to be manipulated | |history |Name of the tiddler containing the history list to be manipulated | |openLinkFromInsideRiver |Determines the location for opening new tiddlers from links within the story river: at the ''top'' or ''bottom'' of the story river, or ''above'' or ''below'' the current tiddler | -|openLinkFromOutsideRiver|Determines the location for opening new tiddlers from linkes outside the story river: at the ''top'' or ''bottom'' of the story river| +|openLinkFromOutsideRiver|Determines the location for opening new tiddlers from links outside the story river: at the ''top'' or ''bottom'' of the story river| |relinkOnRename|<<.from-version "5.1.14">> Determines if tags in other tiddlers are renamed if the tiddler title changes. ''yes'' or ''no''. default: ''no''| ! Widget Messages diff --git a/editions/tw5.com/tiddlers/widgets/VarsWidget.tid b/editions/tw5.com/tiddlers/widgets/VarsWidget.tid index c0cffa0af..028afabbc 100644 --- a/editions/tw5.com/tiddlers/widgets/VarsWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/VarsWidget.tid @@ -48,5 +48,5 @@ In contrast, here is the same example using the <<.wid set>> widget: It should be noted that this widget differs from the <<.wid set>> widget in the following ways: * A fallback (also known as "emptyValue") cannot be specified -* Filters cannot be used to produce a conditional variable assignement +* Filters cannot be used to produce a conditional variable assignment * Variable names must be literal strings From 4a6e3d42812b92e0ad54508073e5035c7b9c395a Mon Sep 17 00:00:00 2001 From: Mohammad Rahmani <830394+kookma@users.noreply.github.com> Date: Sat, 24 Dec 2022 02:12:25 +0330 Subject: [PATCH 177/937] Convert Rendertiddler(s) Command in Sever TiddlyWIki.info (#7124) * convert rendertiddler(s) in sever .info * Conversion of rendertiddler(s) in tiddlywiki.info for editions/empty Conversion of rendertiddler(s) in tiddlywiki.info for editions/empty * Conversion of rendertiddler(s) in tiddlywiki.info for editions\server-external-js Conversion of rendertiddler(s) in tiddlywiki.info for editions\server-external-js * Convert Rendertiddler(s) in tiddlywiki.info in tw5.com, tw5.com-doc Convert Rendertiddler(s) in tiddlywiki.info in tw5.com, tw5.com-doc * Convert rendertiddler(s) editions\twitter-archivist\tiddlywiki.info Convert rendertiddler(s) editions\twitter-archivist\tiddlywiki.info * Convert rendertiddler(s) in editions\katexdemo\tiddlywiki.info Convert rendertiddler(s) in editions\katexdemo\tiddlywiki.info * Correct for extra space in editions\katexdemo\tiddlywiki.info * Convert rendertiddler(s) editions\highlightdemo\tiddlywiki.info * Convert rendertiddler(s) in editions\tw.org\tiddlywiki.info Convert rendertiddler(s) in editions\tw.org\tiddlywiki.info --- editions/empty/tiddlywiki.info | 16 +++++------ editions/highlightdemo/tiddlywiki.info | 10 +++---- editions/katexdemo/tiddlywiki.info | 10 +++---- editions/server-external-js/tiddlywiki.info | 10 +++---- editions/server/tiddlywiki.info | 10 +++---- editions/tw.org/tiddlywiki.info | 10 +++---- editions/tw5.com-docs/tiddlywiki.info | 2 +- editions/tw5.com/tiddlywiki.info | 30 ++++++++++----------- editions/twitter-archivist/tiddlywiki.info | 2 +- 9 files changed, 50 insertions(+), 50 deletions(-) diff --git a/editions/empty/tiddlywiki.info b/editions/empty/tiddlywiki.info index 0eb8279d4..a911c7aed 100644 --- a/editions/empty/tiddlywiki.info +++ b/editions/empty/tiddlywiki.info @@ -8,19 +8,19 @@ ], "build": { "index": [ - "--rendertiddler","$:/core/save/all","index.html","text/plain"], + "--render","$:/core/save/all","index.html","text/plain"], "empty": [ - "--rendertiddler","$:/core/save/all","empty.html","text/plain", - "--rendertiddler","$:/core/save/all","empty.hta","text/plain"], + "--render","$:/core/save/all","empty.html","text/plain", + "--render","$:/core/save/all","empty.hta","text/plain"], "externalimages": [ "--savetiddlers","[is[image]]","images", "--setfield","[is[image]]","_canonical_uri","$:/core/templates/canonical-uri-external-image","text/plain", "--setfield","[is[image]]","text","","text/plain", - "--rendertiddler","$:/core/save/all","externalimages.html","text/plain"], + "--render","$:/core/save/all","externalimages.html","text/plain"], "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"] + "--render","$:/core/templates/static.template.html","static.html","text/plain", + "--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain", + "--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain", + "--render","$:/core/templates/static.template.css","static/static.css","text/plain"] } } \ No newline at end of file diff --git a/editions/highlightdemo/tiddlywiki.info b/editions/highlightdemo/tiddlywiki.info index 3e824764b..69dc1336b 100644 --- a/editions/highlightdemo/tiddlywiki.info +++ b/editions/highlightdemo/tiddlywiki.info @@ -11,11 +11,11 @@ ], "build": { "index": [ - "--rendertiddler","$:/core/save/all","highlightdemo.html","text/plain"], + "--render","$:/core/save/all","highlightdemo.html","text/plain"], "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"] + "--render","$:/core/templates/static.template.html","static.html","text/plain", + "--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain", + "--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain", + "--render","$:/core/templates/static.template.css","static/static.css","text/plain"] } } diff --git a/editions/katexdemo/tiddlywiki.info b/editions/katexdemo/tiddlywiki.info index 17233e8d0..4d1ad4c32 100644 --- a/editions/katexdemo/tiddlywiki.info +++ b/editions/katexdemo/tiddlywiki.info @@ -11,11 +11,11 @@ ], "build": { "index": [ - "--rendertiddler","$:/core/save/all","katexdemo.html","text/plain"], + "--render","$:/core/save/all","katexdemo.html","text/plain"], "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"] + "--render","$:/core/templates/static.template.html","static.html","text/plain", + "--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain", + "--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain", + "--render","$:/core/templates/static.template.css","static/static.css","text/plain"] } } diff --git a/editions/server-external-js/tiddlywiki.info b/editions/server-external-js/tiddlywiki.info index 96c03babd..b8d4c37ee 100644 --- a/editions/server-external-js/tiddlywiki.info +++ b/editions/server-external-js/tiddlywiki.info @@ -13,13 +13,13 @@ "listen": [ "--listen","root-tiddler=$:/core/save/all-external-js","use-browser-cache=yes"], "index": [ - "--rendertiddler","$:/core/save/offline-external-js","index.html","text/plain", + "--render","$:/core/save/offline-external-js","index.html","text/plain", "--render","$:/core/templates/tiddlywiki5.js","[[tiddlywikicore-]addsuffix<version>addsuffix[.js]]","text/plain"], "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"], + "--render","$:/core/templates/static.template.html","static.html","text/plain", + "--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain", + "--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain", + "--render","$:/core/templates/static.template.css","static/static.css","text/plain"], "tiddlywikicore": [ "--render","$:/core/templates/tiddlywiki5.js","[[tiddlywikicore-]addsuffix<version>addsuffix[.js]]","text/plain"] } diff --git a/editions/server/tiddlywiki.info b/editions/server/tiddlywiki.info index a9a3ed3bd..9067d778e 100644 --- a/editions/server/tiddlywiki.info +++ b/editions/server/tiddlywiki.info @@ -11,11 +11,11 @@ ], "build": { "index": [ - "--rendertiddler","$:/plugins/tiddlywiki/tiddlyweb/save/offline","index.html","text/plain"], + "--render","$:/plugins/tiddlywiki/tiddlyweb/save/offline","index.html","text/plain"], "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"] + "--render","$:/core/templates/static.template.html","static.html","text/plain", + "--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain", + "--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain", + "--render","$:/core/templates/static.template.css","static/static.css","text/plain"] } } \ No newline at end of file diff --git a/editions/tw.org/tiddlywiki.info b/editions/tw.org/tiddlywiki.info index 8df5a0fb3..aa19a02ec 100644 --- a/editions/tw.org/tiddlywiki.info +++ b/editions/tw.org/tiddlywiki.info @@ -15,14 +15,14 @@ "--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"], + "--render","$:/core/save/all","index.html","text/plain"], "favicon": [ "--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", - "--rendertiddlers","[!is[system]]","$:/core/templates/static.tiddler.html","static","text/plain", - "--rendertiddler","$:/core/templates/static.template.css","static/static.css","text/plain"] + "--render","$:/core/templates/static.template.html","static.html","text/plain", + "--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain", + "--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain","$:/core/templates/static.tiddler.html", + "--render","$:/core/templates/static.template.css","static/static.css","text/plain"] }, "config": { "retain-original-tiddler-path": true diff --git a/editions/tw5.com-docs/tiddlywiki.info b/editions/tw5.com-docs/tiddlywiki.info index bf8f1cac6..4d486267b 100644 --- a/editions/tw5.com-docs/tiddlywiki.info +++ b/editions/tw5.com-docs/tiddlywiki.info @@ -10,6 +10,6 @@ ], "build": { "index": [ - "--rendertiddler","$:/core/save/all","index.html","text/plain"] + "--render","$:/core/save/all","index.html","text/plain"] } } diff --git a/editions/tw5.com/tiddlywiki.info b/editions/tw5.com/tiddlywiki.info index c091c87f8..1de8bdc87 100644 --- a/editions/tw5.com/tiddlywiki.info +++ b/editions/tw5.com/tiddlywiki.info @@ -24,35 +24,35 @@ "build": { "index": [ "--savetiddlers","[tag[external-image]]","images", - "--rendertiddlers","[tag[external-text]]","$:/core/templates/tid-tiddler","text","text/plain",".tid", + "--render","[tag[external-text]]","[encodeuricomponent[]addprefix[text/]addsuffix[.tid]]","text/plain","$:/core/templates/tid-tiddler", "--setfield","[tag[external-image]]","_canonical_uri","$:/core/templates/canonical-uri-external-image","text/plain", "--setfield","[tag[external-text]]","_canonical_uri","$:/core/templates/canonical-uri-external-text","text/plain", "--setfield","[tag[external-image]] [tag[external-text]]","text","","text/plain", - "--rendertiddler","$:/core/save/all","index.html","text/plain"], + "--render","$:/core/save/all","index.html","text/plain"], "empty": [ - "--rendertiddler","$:/editions/tw5.com/download-empty","empty.html","text/plain", - "--rendertiddler","$:/editions/tw5.com/download-empty","empty.hta","text/plain"], + "--render","$:/editions/tw5.com/download-empty","empty.html","text/plain", + "--render","$:/editions/tw5.com/download-empty","empty.hta","text/plain"], "encrypted": [ "--password", "password", - "--rendertiddler", "$:/core/save/all", "encrypted.html", "text/plain", + "--render", "$:/core/save/all", "encrypted.html", "text/plain", "--clearpassword"], "favicon": [ "--savetiddler","$:/favicon.ico","favicon.ico", "--savetiddler","$:/green_favicon.ico","static/favicon.ico"], "readmes": [ - "--rendertiddler","ReadMe","readme.md","text/html", - "--rendertiddler","ReadMeBinFolder","bin/readme.md","text/html", - "--rendertiddler","ContributingTemplate","contributing.md","text/html", - "--rendertiddler","$:/core/copyright.txt","license","text/plain"], + "--render","ReadMe","readme.md","text/html", + "--render","ReadMeBinFolder","bin/readme.md","text/html", + "--render","ContributingTemplate","contributing.md","text/html", + "--render","$:/core/copyright.txt","license","text/plain"], "tw2": [ - "--rendertiddler","TiddlyWiki2ReadMe","tw2/readme.md","text/html"], + "--render","TiddlyWiki2ReadMe","tw2/readme.md","text/html"], "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"], + "--render","$:/core/templates/static.template.html","static.html","text/plain", + "--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain", + "--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain","$:/core/templates/static.tiddler.html", + "--render","$:/core/templates/static.template.css","static/static.css","text/plain"], "external-js": [ - "--rendertiddler","$:/core/save/offline-external-js","index.html","text/plain", + "--render","$:/core/save/offline-external-js","index.html","text/plain", "--render","$:/core/templates/tiddlywiki5.js","[[tiddlywikicore-]addsuffix<version>addsuffix[.js]]","text/plain"] }, "config": { diff --git a/editions/twitter-archivist/tiddlywiki.info b/editions/twitter-archivist/tiddlywiki.info index 681467706..265af58e8 100644 --- a/editions/twitter-archivist/tiddlywiki.info +++ b/editions/twitter-archivist/tiddlywiki.info @@ -11,6 +11,6 @@ ], "build": { "index": [ - "--rendertiddler","$:/core/save/all","index.html","text/plain"] + "--render","$:/core/save/all","index.html","text/plain"] } } \ No newline at end of file From 73507ca8b50fd3a9791abe95d2a9bc80ac28b7a6 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 24 Dec 2022 10:30:34 +0000 Subject: [PATCH 178/937] Release note typo --- editions/prerelease/tiddlers/Release 5.2.6.tid | 1 + 1 file changed, 1 insertion(+) diff --git a/editions/prerelease/tiddlers/Release 5.2.6.tid b/editions/prerelease/tiddlers/Release 5.2.6.tid index c7331e608..6a9908852 100644 --- a/editions/prerelease/tiddlers/Release 5.2.6.tid +++ b/editions/prerelease/tiddlers/Release 5.2.6.tid @@ -6,6 +6,7 @@ title: Release 5.2.6 type: text/vnd.tiddlywiki //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.5...master]]// + ! Major Improvements New [ext[Twitter Archivist|./editions/twitter-archivist]] plugin to import the tweets and associated media from a Twitter Archive as individual tiddlers. From 95e61688397ff1bc9be04193bc4ce2e3c8c48dce Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 24 Dec 2022 12:13:01 +0000 Subject: [PATCH 179/937] Fix logout triggering 404 error See https://talk.tiddlywiki.org/t/logout-error-xmlhttprequest-error-code-404/5590/5 for details We can't POST to the logout endpoint without triggering authentication, so we report in advance whether logout is supported. --- core/modules/server/routes/get-status.js | 1 + .../WebServer API_ Get Server Status.tid | 1 + .../tiddlywiki/tiddlyweb/tiddlywebadaptor.js | 41 +++++++++++-------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/core/modules/server/routes/get-status.js b/core/modules/server/routes/get-status.js index dd4c1909a..ac35ee874 100644 --- a/core/modules/server/routes/get-status.js +++ b/core/modules/server/routes/get-status.js @@ -21,6 +21,7 @@ exports.handler = function(request,response,state) { username: state.authenticatedUsername || state.server.get("anon-username") || "", anonymous: !state.authenticatedUsername, read_only: !state.server.isAuthorized("writers",state.authenticatedUsername), + logout_is_available: false, space: { recipe: "default" }, diff --git a/editions/tw5.com/tiddlers/webserver/WebServer API_ Get Server Status.tid b/editions/tw5.com/tiddlers/webserver/WebServer API_ Get Server Status.tid index 6bcd1e4ac..bddbd263a 100644 --- a/editions/tw5.com/tiddlers/webserver/WebServer API_ Get Server Status.tid +++ b/editions/tw5.com/tiddlers/webserver/WebServer API_ Get Server Status.tid @@ -25,6 +25,7 @@ The JSON data returned comprises the following properties: * ''username'' - the username of the currently authenticated user. If undefined, the [[WebServer Parameter: anon-username]] is returned instead * ''anonymous'' - true if the current user is anonymous * ''read_only'' - true if the current user is restricted to read only access to the server +* ''logout_is_available'' - true if the server supports logging out (optional, defaults to true) * ''space'' - always contains the object `{recipe: "default"}` * ''tiddlywiki_version'' - the current TiddlyWiki version diff --git a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js index d6fcfb901..57e71c2bc 100644 --- a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js +++ b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js @@ -23,6 +23,7 @@ function TiddlyWebAdaptor(options) { this.logger = new $tw.utils.Logger("TiddlyWebAdaptor"); this.isLoggedIn = false; this.isReadOnly = false; + this.logoutIsAvailable = true; } TiddlyWebAdaptor.prototype.name = "tiddlyweb"; @@ -91,6 +92,7 @@ TiddlyWebAdaptor.prototype.getStatus = function(callback) { self.isLoggedIn = json.username !== "GUEST"; self.isReadOnly = !!json["read_only"]; self.isAnonymous = !!json.anonymous; + self.logoutIsAvailable = "logout_is_available" in json ? !!json["logout_is_available"] : true; } // Invoke the callback if present if(callback) { @@ -127,23 +129,28 @@ TiddlyWebAdaptor.prototype.login = function(username,password,callback) { /* */ TiddlyWebAdaptor.prototype.logout = function(callback) { - var options = { - url: this.host + "logout", - type: "POST", - data: { - csrf_token: this.getCsrfToken(), - tiddlyweb_redirect: "/status" // workaround to marginalize automatic subsequent GET - }, - callback: function(err,data) { - callback(err); - }, - headers: { - "accept": "application/json", - "X-Requested-With": "TiddlyWiki" - } - }; - this.logger.log("Logging out:",options); - $tw.utils.httpRequest(options); + if(this.logoutIsAvailable) { + var options = { + url: this.host + "logout", + type: "POST", + data: { + csrf_token: this.getCsrfToken(), + tiddlyweb_redirect: "/status" // workaround to marginalize automatic subsequent GET + }, + callback: function(err,data,xhr) { + callback(err); + }, + headers: { + "accept": "application/json", + "X-Requested-With": "TiddlyWiki" + } + }; + this.logger.log("Logging out:",options); + $tw.utils.httpRequest(options); + } else { + alert("This server does not support logging out. If you are using basic authentication the only way to logout is close all browser windows"); + callback(null); + } }; /* From ae18c2e19b6c3e8d462371cbe34dc8503a10be89 Mon Sep 17 00:00:00 2001 From: Jeffrey Zhang <zhang.lei.fly@gmail.com> Date: Sat, 24 Dec 2022 23:55:56 +0800 Subject: [PATCH 180/937] Signing the CLA (#7150) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 74bd4bed1..3be878309 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -503,3 +503,5 @@ HuanCheng Bai, @bestony, 2022/09/17 Carlo Colombo, @carlo-colombo, 2022/11/30 Wincent Balin, @wincentbalin, 2022/12/18 + +Jeffrey Zhang, @jeffrey4l, 2022/12/24 From 18d3ea9d147b9d3da55f9750c0bbe7da86b59ea8 Mon Sep 17 00:00:00 2001 From: Jeffrey Zhang <zhang.lei.fly@gmail.com> Date: Sat, 24 Dec 2022 23:56:46 +0800 Subject: [PATCH 181/937] Support obsidian external link (#7149) --- core/modules/utils/utils.js | 2 +- plugins/tiddlywiki/tw2parser/wikitextrules.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/modules/utils/utils.js b/core/modules/utils/utils.js index 743061ca7..ad4843388 100644 --- a/core/modules/utils/utils.js +++ b/core/modules/utils/utils.js @@ -687,7 +687,7 @@ exports.escapeRegExp = function(s) { // Checks whether a link target is external, i.e. not a tiddler title exports.isLinkExternal = function(to) { - var externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\s<>{}\[\]`|"\\^]+(?:\/|\b)/i; + var externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|obsidian|data|skype):[^\s<>{}\[\]`|"\\^]+(?:\/|\b)/i; return externalRegExp.test(to); }; diff --git a/plugins/tiddlywiki/tw2parser/wikitextrules.js b/plugins/tiddlywiki/tw2parser/wikitextrules.js index f69b278ce..d7f809723 100755 --- a/plugins/tiddlywiki/tw2parser/wikitextrules.js +++ b/plugins/tiddlywiki/tw2parser/wikitextrules.js @@ -127,7 +127,7 @@ var insertMacroCall = function(w,output,macroName,paramString) { var isLinkExternal = function(to) { - var externalRegExp = /(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\s'"]+(?:\/|\b)/i; + var externalRegExp = /(?:file|http|https|mailto|ftp|irc|news|obsidian|data|skype):[^\s'"]+(?:\/|\b)/i; return externalRegExp.test(to); }; var rules = [ From 9f69161709259dda51c01ce081850f6ec1dc3cb4 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Sat, 24 Dec 2022 16:58:50 +0100 Subject: [PATCH 182/937] Add ignore .github, .vscode to regexp (#7148) --- boot/boot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot/boot.js b/boot/boot.js index c64b881f4..6b40a41b2 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -1881,7 +1881,7 @@ A default set of files for TiddlyWiki to ignore during load. This matches what NPM ignores, and adds "*.meta" to ignore tiddler metadata files. */ -$tw.boot.excludeRegExp = /^\.DS_Store$|^.*\.meta$|^\..*\.swp$|^\._.*$|^\.git$|^\.hg$|^\.lock-wscript$|^\.svn$|^\.wafpickle-.*$|^CVS$|^npm-debug\.log$/; +$tw.boot.excludeRegExp = /^\.DS_Store$|^.*\.meta$|^\..*\.swp$|^\._.*$|^\.git$|^\.github$|^\.vscode$|^\.hg$|^\.lock-wscript$|^\.svn$|^\.wafpickle-.*$|^CVS$|^npm-debug\.log$/; /* Load all the tiddlers recursively from a directory, including honouring `tiddlywiki.files` files for drawing in external files. Returns an array of {filepath:,type:,tiddlers: [{..fields...}],hasMetaFile:}. Note that no file information is returned for externally loaded tiddlers, just the `tiddlers` property. From 119813529d785952b2ac6901a05cd9bdb07f4597 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Sat, 24 Dec 2022 16:59:48 +0100 Subject: [PATCH 183/937] changecount macro change the wording ... just a bit (#7147) --- editions/tw5.com/tiddlers/variables/Variables.tid | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/editions/tw5.com/tiddlers/variables/Variables.tid b/editions/tw5.com/tiddlers/variables/Variables.tid index cd1e62a5f..2e80f2678 100644 --- a/editions/tw5.com/tiddlers/variables/Variables.tid +++ b/editions/tw5.com/tiddlers/variables/Variables.tid @@ -1,18 +1,18 @@ created: 20141002133113496 -modified: 20150221215644000 +modified: 20221221175615776 tags: Concepts Reference title: Variables type: text/vnd.tiddlywiki A <<.def variable>> is a snippet of text that can be accessed by name within a particular branch of the [[widget tree|Widgets]]. The snippet is known as the variable's <<.def value>>. -A new variable is defined using a <<.wlink SetWidget>> widget, and is then available to any of the children of that widget, including transcluded content. A <<.wid set>> widget can reuse an existing name, thus binding a different snippet to that name for the duration of the widget's children. +A new variable is defined using a <<.wlink SetWidget>> or <<.wlink LetWidget>> widget, and is then available to any of the children of that widget, including transcluded content. A <<.wid set>> widget can reuse an existing name, thus binding a different snippet to that name for the duration of the widget's children. -The <<.wlink ListWidget>> widget also sets a particular variable (<<.var currentTiddler>> by default) to each listed title in turn. +The <<.wlink ListWidget>> widget by default sets a particular variable <<.var currentTiddler>> to each listed title in turn. For an overview of how to use variables, see [[Variables in WikiText]]. -Despite the term <<.word variable>>, each snippet is a constant string. The apparent variability is actually the result of the presence of multiple variables with the same name in different parts of the widget tree. +Despite the term <<.word variable>>, ''each snippet is a constant string''. The apparent variability is actually the result of the presence of multiple variables with the same name in different parts of the widget tree. [[Macros]] are a special form of variable whose value can contain placeholders that get filled in with parameters whenever the macro is used. From c819b2d3654d7f0a8c1a7298cb4271c43220888a Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Sat, 24 Dec 2022 17:00:30 +0100 Subject: [PATCH 184/937] Changecount macro change the wording ... just a bit (#7146) --- editions/tw5.com/tiddlers/macros/ChangeCountMacro.tid | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/macros/ChangeCountMacro.tid b/editions/tw5.com/tiddlers/macros/ChangeCountMacro.tid index bb40951e8..0a4e7f664 100644 --- a/editions/tw5.com/tiddlers/macros/ChangeCountMacro.tid +++ b/editions/tw5.com/tiddlers/macros/ChangeCountMacro.tid @@ -1,13 +1,13 @@ +caption: changecount created: 20131228162825226 -modified: 20150221151223000 +modified: 20221221174529586 tags: Macros [[Core Macros]] title: changecount Macro type: text/vnd.tiddlywiki -caption: changecount The <<.def changecount>> [[macro|Macros]] returns the number of times the [[current tiddler|Current Tiddler]] has been created, stored or deleted during the current ~TiddlyWiki session. -If a tiddler is deleted and subsequently recreated, its <<.var changecount>> will go up by two. +If a tiddler is deleted and subsequently recreated, its <<.var changecount>> will be increased by two. !! Parameters From 3a7a3d64c29e98b7f614138755ce092d6c31d784 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Thu, 29 Dec 2022 09:43:18 +0000 Subject: [PATCH 185/937] Docs: Update indexes operator to note that results are sorted See https://talk.tiddlywiki.org/t/how-can-i-get-the-indexes-of-a-data-tiddler-in-the-order-they-are-given-there/3359 --- editions/tw5.com/tiddlers/filters/indexes.tid | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/filters/indexes.tid b/editions/tw5.com/tiddlers/filters/indexes.tid index d574b1901..44b5fbf50 100644 --- a/editions/tw5.com/tiddlers/filters/indexes.tid +++ b/editions/tw5.com/tiddlers/filters/indexes.tid @@ -1,5 +1,5 @@ created: 20140410103123179 -modified: 20150203185150000 +modified: 20221229094244039 tags: [[Filter Operators]] title: indexes Operator type: text/vnd.tiddlywiki @@ -9,8 +9,10 @@ op-input: a [[selection of titles|Title Selection]] op-parameter: none op-output: all the property names or indices contained in the input data tiddlers -Each input title is processed in turn, and is ignored if it does not denote a [[data tiddler|DataTiddlers]]. The list of property names is retrieved from the data tiddler (in no particular order) and then [[dominantly appended|Dominant Append]] to the operator's output. +Each input title is processed in turn, and is ignored if it does not denote a [[data tiddler|DataTiddlers]]. The sorted list of property names is retrieved from the data tiddler and then [[dominantly appended|Dominant Append]] to the operator's output. -Where a tiddler's [[content is JSON|JSONTiddlers]] with an array as its root, the <<.op indexes>> operator retrieves a selection of integer indices instead. +Note that behind the scenes, the name/value pairs in a dictionary tiddler are represented as a [[JSON object|JSONTiddlers]]. JSON objects do not maintain a guaranteed ordering and so we can’t reliably retain the ordering of the data in the file. + +Where the content of a tiddler is in JSON format with an array as its root, the <<.op indexes>> operator retrieves a selection of integer indices instead. <<.operator-examples "indexes">> From 87c3e53299d59b2fff1e6a8696244ec5df46512e Mon Sep 17 00:00:00 2001 From: cs8425 <cs8425@gmail.com> Date: Fri, 30 Dec 2022 17:15:18 +0800 Subject: [PATCH 186/937] Signing the CLA (#7159) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 3be878309..1b8c919b0 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -505,3 +505,5 @@ Carlo Colombo, @carlo-colombo, 2022/11/30 Wincent Balin, @wincentbalin, 2022/12/18 Jeffrey Zhang, @jeffrey4l, 2022/12/24 + +cs84285, @cs8425, 2022/12/30 From 0b39e47ce88c7620b7a66c1553a71efaff06edb9 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 30 Dec 2022 09:34:38 +0000 Subject: [PATCH 187/937] Browsers import MP3 files as audio/mpeg, not audio/mp3 Chrome changed in v81 to match Firefox and Safari - https://stackoverflow.com/questions/61363934/chrome-81-mimetype-change-to-file-upload-of-audio-mp3 Fixes #7157 --- boot/boot.js | 1 + 1 file changed, 1 insertion(+) diff --git a/boot/boot.js b/boot/boot.js index 6b40a41b2..aeaa919fe 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -2408,6 +2408,7 @@ $tw.boot.initStartup = function(options) { $tw.utils.registerFileType("video/webm","base64",".webm"); $tw.utils.registerFileType("video/mp4","base64",".mp4"); $tw.utils.registerFileType("audio/mp3","base64",".mp3"); + $tw.utils.registerFileType("audio/mpeg","base64"); $tw.utils.registerFileType("text/markdown","utf8",[".md",".markdown"],{deserializerType:"text/x-markdown"}); $tw.utils.registerFileType("text/x-markdown","utf8",[".md",".markdown"]); $tw.utils.registerFileType("application/enex+xml","utf8",".enex"); From 43214c1cc6c1f3e1fee3b7d0bcfa545190b62524 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 30 Dec 2022 15:15:24 +0000 Subject: [PATCH 188/937] Docs: System tag doc tables should display description if caption is missing Fixes #7161 --- editions/tw5.com/tiddlers/system/systemtag-template.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/system/systemtag-template.tid b/editions/tw5.com/tiddlers/system/systemtag-template.tid index 563d14841..4b0120269 100644 --- a/editions/tw5.com/tiddlers/system/systemtag-template.tid +++ b/editions/tw5.com/tiddlers/system/systemtag-template.tid @@ -16,6 +16,6 @@ The following tiddlers are tagged with <<tag>> <$list filter='[all[tiddlers+shadows]tag<tag>sort[]]'> <tr> <td><$link/></td> -<td>{{!!caption}}</td> +<td><$transclude field="caption"><$transclude field="description"><$view field="title"/></$transclude></$transclude></td> </tr> </$list></table></$list></$let></$list> From 3bdc18ab8409d145790ada3de5e3f381ce4c6625 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 30 Dec 2022 15:28:34 +0000 Subject: [PATCH 189/937] Fix json operators retrieving properties of strings and numbers Fixes #7160 --- core/modules/filters/json-ops.js | 6 +++++- editions/test/tiddlers/tests/test-json-filters.js | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/modules/filters/json-ops.js b/core/modules/filters/json-ops.js index eabf6433e..2be9ec754 100644 --- a/core/modules/filters/json-ops.js +++ b/core/modules/filters/json-ops.js @@ -176,7 +176,11 @@ function getDataItem(data,indexes) { var item = data; for(var i=0; i<indexes.length; i++) { if(item !== undefined) { - item = item[indexes[i]]; + if(item !== null && ["number","string","boolean"].indexOf(typeof item) === -1) { + item = item[indexes[i]]; + } else { + item = undefined; + } } } return item; diff --git a/editions/test/tiddlers/tests/test-json-filters.js b/editions/test/tiddlers/tests/test-json-filters.js index b7f4836d9..68a82e774 100644 --- a/editions/test/tiddlers/tests/test-json-filters.js +++ b/editions/test/tiddlers/tests/test-json-filters.js @@ -41,7 +41,9 @@ describe("json filter tests", function() { expect(wiki.filterTiddlers("[{Second}jsonget[]]")).toEqual(["une","deux","trois","quatre","cinq"]); expect(wiki.filterTiddlers("[{First}jsonget[]]")).toEqual(["one","","1.618","four","five","six","true","false","null"]); expect(wiki.filterTiddlers("[{First}jsonget[a]]")).toEqual(["one"]); + expect(wiki.filterTiddlers("[{First}jsonget[a],[fixed]]")).toEqual([]); expect(wiki.filterTiddlers("[{First}jsonget[b]]")).toEqual([""]); + expect(wiki.filterTiddlers("[{First}jsonget[c]]")).toEqual(["1.618"]); expect(wiki.filterTiddlers("[{First}jsonget[missing-property]]")).toEqual([]); expect(wiki.filterTiddlers("[{First}jsonget[d]]")).toEqual(["four","five","six","true","false","null"]); expect(wiki.filterTiddlers("[{First}jsonget[d],[e]]")).toEqual(["four"]); From bf8e1ca5b0587787bf80692b0213bb7b038c7868 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston <jeremy@jermolene.com> Date: Fri, 30 Dec 2022 19:41:41 +0000 Subject: [PATCH 190/937] Fix options.tiddlerinfo is undefined on New Tiddler button click (#7162) See https://talk.tiddlywiki.org/t/nodejs-wiki-typeerror-options-tiddlerinfo-is-undefined-on-new-tiddler-button-click/5583 --- plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js index 57e71c2bc..712077974 100644 --- a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js +++ b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js @@ -198,7 +198,7 @@ Save a tiddler and invoke the callback with (err,adaptorInfo,revision) TiddlyWebAdaptor.prototype.saveTiddler = function(tiddler,callback,options) { var self = this; if(this.isReadOnly) { - return callback(null,options.tiddlerInfo.adaptorInfo); + return callback(null); } $tw.utils.httpRequest({ url: this.host + "recipes/" + encodeURIComponent(this.recipe) + "/tiddlers/" + encodeURIComponent(tiddler.fields.title), @@ -220,7 +220,7 @@ TiddlyWebAdaptor.prototype.saveTiddler = function(tiddler,callback,options) { // Invoke the callback callback(null,{ bag: etagInfo.bag - },etagInfo.revision); + },etagInfo.revision); } } }); @@ -251,7 +251,7 @@ tiddlerInfo: the syncer's tiddlerInfo for this tiddler TiddlyWebAdaptor.prototype.deleteTiddler = function(title,callback,options) { var self = this; if(this.isReadOnly) { - return callback(null,options.tiddlerInfo.adaptorInfo); + return callback(null); } // If we don't have a bag it means that the tiddler hasn't been seen by the server, so we don't need to delete it var bag = options.tiddlerInfo.adaptorInfo && options.tiddlerInfo.adaptorInfo.bag; From 42a408146dd07cd5bc561f1cd59f6199d0984dda Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Fri, 30 Dec 2022 21:42:07 +0000 Subject: [PATCH 191/937] Empty or missing type on genesis widget should not render an element/widget Fixes #7153 --- core/modules/widgets/genesis.js | 7 ++++++- .../tests/data/genesis-widget/EmptyType.tid | 14 ++++++++++++++ .../tw5.com/tiddlers/widgets/GenesisWidget.tid | 4 +++- 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 editions/test/tiddlers/tests/data/genesis-widget/EmptyType.tid diff --git a/core/modules/widgets/genesis.js b/core/modules/widgets/genesis.js index 51544361e..6d30f3c36 100644 --- a/core/modules/widgets/genesis.js +++ b/core/modules/widgets/genesis.js @@ -42,10 +42,15 @@ Compute the internal state of the widget GenesisWidget.prototype.execute = function() { var self = this; // Collect attributes - this.genesisType = this.getAttribute("$type","element"); + this.genesisType = this.getAttribute("$type"); this.genesisRemappable = this.getAttribute("$remappable","yes") === "yes"; this.genesisNames = this.getAttribute("$names",""); this.genesisValues = this.getAttribute("$values",""); + // Do not create a child widget if the $type attribute is missing or blank + if(!this.genesisType) { + this.makeChildWidgets(this.parseTreeNode.children); + return; + } // Construct parse tree var isElementWidget = this.genesisType.charAt(0) !== "$", nodeType = isElementWidget ? "element" : this.genesisType.substr(1), diff --git a/editions/test/tiddlers/tests/data/genesis-widget/EmptyType.tid b/editions/test/tiddlers/tests/data/genesis-widget/EmptyType.tid new file mode 100644 index 000000000..59768aa0c --- /dev/null +++ b/editions/test/tiddlers/tests/data/genesis-widget/EmptyType.tid @@ -0,0 +1,14 @@ +title: Genesis/EmptyType +description: Using an empty type attribute with the genesis widget +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +<$genesis>Mouse</$genesis> + +<$genesis $type="">Mouse</$genesis> ++ +title: ExpectedResult + +<p>Mouse</p><p>Mouse</p> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid index a9d2cf713..4d6ca229b 100644 --- a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid @@ -1,6 +1,6 @@ caption: genesis created: 20221101100729587 -modified: 20221101100729587 +modified: 20221230213912929 tags: Widgets title: GenesisWidget type: text/vnd.tiddlywiki @@ -21,6 +21,8 @@ The content of the <<.wlink GenesisWidget>> widget is used as the content of the |//{attributes starting with $$}// |Attributes starting with two dollar signs are appplied as attributes to the output widget, but with the attribute name changed to use a single dollar sign | |//{attributes not starting with $}// |Any other attributes that do not start with a dollar are applied as attributes to the output widget | +<<.from-version "5.2.6">> If the `$type` attribute is missing or blank, the <<.wlink GenesisWidget>> widget does not render an intrinsic element, instead just rendering its children. + Note that attributes explicitly specified take precedence over attributes with the same name specified in the `$names` filter. ! Examples From 666e2a795fd06e616a0eff8cbd9d2ab52aecb2ff Mon Sep 17 00:00:00 2001 From: Nick Bell <hello@nickbell.uk> Date: Sun, 1 Jan 2023 18:12:50 +0000 Subject: [PATCH 192/937] Signing the CLA (#7164) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 1b8c919b0..445805398 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -507,3 +507,5 @@ Wincent Balin, @wincentbalin, 2022/12/18 Jeffrey Zhang, @jeffrey4l, 2022/12/24 cs84285, @cs8425, 2022/12/30 + +Nick Bell, @newmedicine, 2023/01/01 From 8a2fad24997e3f85def9554ad51b6ee91f1bcf7a Mon Sep 17 00:00:00 2001 From: Nick Bell <hello@nickbell.uk> Date: Sun, 1 Jan 2023 18:15:09 +0000 Subject: [PATCH 193/937] Using stamp - docs (#7165) * Using stamp - docs * Moved from-version pill * Changed tag-pill to tag * Corrected the right tag-pill Oops! --- .../tw5.com/tiddlers/howtos/Using Stamp.tid | 66 ++++++++++++++----- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/editions/tw5.com/tiddlers/howtos/Using Stamp.tid b/editions/tw5.com/tiddlers/howtos/Using Stamp.tid index dc9cebfe4..5ffa5da3b 100644 --- a/editions/tw5.com/tiddlers/howtos/Using Stamp.tid +++ b/editions/tw5.com/tiddlers/howtos/Using Stamp.tid @@ -1,27 +1,59 @@ created: 20160618090057124 -modified: 20190704054958185 +modified: 20230101114932775 tags: [[Editor toolbar]] title: Using Stamp type: text/vnd.tiddlywiki -! Insert snippets -You can insert preconfigured snippets of text to use stamp from toolbar. Click ''stamp'' (<<.icon $:/core/images/stamp>>) and just select a snippet. +Snippets are pre-configured snippets of text which can be inserted into the editor by clicking the ''stamp'' (<<.icon $:/core/images/stamp>>) button on the [[toolbar|Editor toolbar]] and then on the required item. + +Snippets can either ''replace'', or be ''added before and/or after'', the selected text in the editor. ! Create a snippet -# Click ''stamp'' (<<.icon $:/core/images/stamp>>) -# Create a snippet tiddler through the "//Add your own//" menu entry -# Type some text as snippet for the tiddler, add a caption for the name as shown in the menu -# Click the <<.icon $:/core/images/done-button>> ''ok'' button +!! Whilst editing a tiddler -<$macrocall $name=".tip" _="""''Tip:'' You can also create a snippet tiddler using the ''new tiddler'' <<.icon $:/core/images/new-button>> button in the sidebar, and add tag ''~$:/tags/TextEditor/Snippet''""" /> +# Click ''stamp'' (<<.icon $:/core/images/stamp>>) on the toolbar +# Click "//Add your own//" at the bottom of the menu +# Type the text for the snippet in the editor +# Enter the caption for the snippet menu item in the `caption` field +# Click the <<.icon $:/core/images/done-button>> //Confirm changes to this tiddler// button -!!<<.from-version "5.1.20">> Adding a prefix and/or suffix to a selection +!! Manually -# Click ''stamp'' (<<.icon $:/core/images/stamp>>) -# Create a snippet tiddler through the "//Add your own//" menu entry -# Add a caption for the name as shown in the menu -# Create a tiddler with the same title but add the suffix `/prefix` -# Insert the prefix in its text field -# Create a tiddler with the same title but add the suffix `/suffix` -# Insert the suffix in its text field -# Click the <<.icon $:/core/images/done-button>> ''ok'' button +# Create a new tiddler by clicking the //Create a new tiddler// <<.icon $:/core/images/new-button>> button in the sidebar + +# Change the title for the tiddler (from e.g. `New Tiddler 1`). The tiddler title determines the menu item for the stamp if you do not set a `caption` field (see below).<div><$macrocall $name=".tip" _="""''Pro tip'' Set a title like `$:/yourusername/snippets/My new stamp` to 'file' your new tiddler away as a [[system tiddler|SystemTiddlers]] which doesn't appear in the normal search results """ /></div> + +# Add the tag <<tag-pill $:/tags/TextEditor/Snippet>> by entering `$:/tags/TextEditor/Snippet` in the `tag name` tag box and clicking //Add// (or pressing the //Enter// key) + +# Enter the snippet content (which you wish to appear in the editor when you click the stamp menu <<.icon $:/core/images/stamp>>) in the editor + +# Create a field with the name `caption` and value set to the text for the snippet's stamp menu item: +## Enter `caption` in the //Add new field// `field name` box +## Enter the stamp menu item caption in the `field value` box + + + +! Re-ordering snippets +Your new snippet will appear at the bottom of the stamp menu by default. To adjust the order of snippets: + +# Navigate to a snippet tiddler +# Click the <<tag $:/tags/TextEditor/Snippet>> tag pill +# Drag items up and down the menu of snippets + + +! Adding a prefix and/or suffix to a selection <span style="font-size:1rem;"><<.from-version "5.1.20">></span> + +By default, the stamp button ''replaces ''text you have selected in the editor (let's say `selectedText`)with your snippet (let's say `$:/my/snippet`). + +If instead of //replacing// selected text, you wish the stamp button to //add// [[wikitext |WikiText]] before and/or after the selection: + +# Create a snippet tiddler (tagged <<tag-pill $:/tags/TextEditor/Snippet>>, with `caption` field set to desired stamp menu item text) using either of the two methods above +# Create a new tiddler with either `/prefix` or `/suffix` appended to the end of the snippet tiddler's title, according to whether you wish the stamp to insert the snippet content //before //(`/prefix`) or //after //(`/suffix`) the text selected in the editor. +#* Do not tag the tiddler <<tag-pill $:/tags/TextEditor/Snippet>>; the caption field is ignored +#* Set the tiddler text to the text you wish to be inserted before or after your selection + +|Example configuration for `snippet2` with prefix+suffix|c +|!Tiddler|!Tiddler content|!Tag|!`caption` field| +|`$:/snip/snippet2`||<<tag-pill $:/tags/TextEditor/Snippet>>|`My second stamp menu item`| +|`$:/snip/snippet2/prefix`|`TextIWantPrependedToSelection`||| +|`$:/snip/snippet2/suffix`|`TextIWantAppendedToSelection`||| From d57abcbb232f623dc7f11e110813c1d82e47ad6b Mon Sep 17 00:00:00 2001 From: fkmiec <fkmiec@gmail.com> Date: Sun, 1 Jan 2023 12:21:36 -0600 Subject: [PATCH 194/937] Signing the CLA (#7168) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 445805398..6e5b69666 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -509,3 +509,5 @@ Jeffrey Zhang, @jeffrey4l, 2022/12/24 cs84285, @cs8425, 2022/12/30 Nick Bell, @newmedicine, 2023/01/01 + +Frank Kmiec, @fkmiec, 2023-01-01 From 50971db3927ba5e4e83d9e72592c0b9e4c690b7c Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 1 Jan 2023 18:58:23 +0000 Subject: [PATCH 195/937] Italian translation update Thanks Pippo Peppo See https://talk.tiddlywiki.org/t/italian-it-it-translation-update/5680 --- languages/it-IT/Buttons.multids | 128 ++++++++++++++- languages/it-IT/ControlPanel.multids | 164 +++++++++++++++---- languages/it-IT/Dates.multids | 12 +- languages/it-IT/Docs/ModuleTypes.multids | 20 ++- languages/it-IT/Docs/PaletteColours.multids | 68 +++++++- languages/it-IT/EditTemplate.multids | 18 +- languages/it-IT/Exporters.multids | 6 +- languages/it-IT/Fields.multids | 19 ++- languages/it-IT/Filters.multids | 8 +- languages/it-IT/GettingStarted.tid | 9 +- languages/it-IT/Import.multids | 29 +++- languages/it-IT/Misc.multids | 80 ++++++++- languages/it-IT/Modals/Download.tid | 4 +- languages/it-IT/Modals/SaveInstructions.tid | 4 +- languages/it-IT/NewJournal.multids | 2 +- languages/it-IT/Notifications.multids | 2 + languages/it-IT/Search.multids | 4 + languages/it-IT/SideBar.multids | 3 +- languages/it-IT/Snippets/ListByTag.tid | 5 + languages/it-IT/Snippets/MacroDefinition.tid | 7 + languages/it-IT/Snippets/Table4x3.tid | 8 + languages/it-IT/Snippets/TableOfContents.tid | 9 + languages/it-IT/ThemeTweaks.multids | 41 +++++ 23 files changed, 558 insertions(+), 92 deletions(-) create mode 100644 languages/it-IT/Snippets/ListByTag.tid create mode 100644 languages/it-IT/Snippets/MacroDefinition.tid create mode 100644 languages/it-IT/Snippets/Table4x3.tid create mode 100644 languages/it-IT/Snippets/TableOfContents.tid create mode 100644 languages/it-IT/ThemeTweaks.multids diff --git a/languages/it-IT/Buttons.multids b/languages/it-IT/Buttons.multids index df2ea75d8..32ad4ebab 100644 --- a/languages/it-IT/Buttons.multids +++ b/languages/it-IT/Buttons.multids @@ -2,8 +2,12 @@ title: $:/language/Buttons/ AdvancedSearch/Caption: Ricerca avanzata AdvancedSearch/Hint: Ricerca avanzata +Bold/Caption: Grassetto +Bold/Hint: Formatta in grassetto la selezione Cancel/Caption: Annulla Cancel/Hint: Annulla i cambiamenti a questo frammento +Clear/Caption: Cancella +Clear/Hint: Sostituisci l'immagine con una tinta unita Clone/Caption: Clona Clone/Hint: Clona questo frammento Close/Caption: Chiudi @@ -14,24 +18,63 @@ CloseOthers/Caption: Chiudi altri CloseOthers/Hint: Chiudi gli altri frammenti ControlPanel/Caption: Pannello di controllo ControlPanel/Hint: Apri il pannello di controllo +CopyToClipboard/Caption: Copia negli appunti +CopyToClipboard/Hint: Copia questo testo negli appunti Delete/Caption: Elimina Delete/Hint: Elimina questo frammento +DeleteTiddlers/Caption: Elimina frammenti +DeleteTiddlers/Hint: Elimina frammenti Edit/Caption: Modifica Edit/Hint: Modifica questo frammento +EditorHeight/Caption: Altezza editor +EditorHeight/Caption/Auto: Adatta automaticamente l'altezza al contenuto +EditorHeight/Caption/Fixed: Altezza fissa: +EditorHeight/Hint: Scegli l'altezza dell'editor del testo Encryption/Caption: Cifratura Encryption/ClearPassword/Caption: Rimuovi password Encryption/ClearPassword/Hint: Rimuovi la password e salva questo wiki senza cifrarlo Encryption/Hint: Imposta o rimuovi la password per salvare questo wiki Encryption/SetPassword/Caption: Imposta password Encryption/SetPassword/Hint: Imposta una password per salvare questo wiki con cifratura +Excise/Caption: Ritaglia +Excise/Caption/Excise: Ritaglia +Excise/Caption/MacroName: Nome macro: +Excise/Caption/NewTitle: Titolo del nuovo frammento: +Excise/Caption/Replace: Sostituisci il testo ritagliato con: +Excise/Caption/Replace/Link: Link +Excise/Caption/Replace/Macro: Macro +Excise/Caption/Replace/Transclusion: Trasclusione +Excise/Caption/Tag: Etichetta il nuovo frammento con il titolo di questo frammento +Excise/Caption/TiddlerExists: Attenzione: il frammento esiste già +Excise/Hint: Ritaglia il testo selezionato in un nuovo frammento ExportPage/Caption: Esporta tutti ExportPage/Hint: Esporta tutti i frammenti ExportTiddler/Caption: Esporta frammento ExportTiddler/Hint: Esporta questo frammento ExportTiddlers/Caption: Esporta i frammenti ExportTiddlers/Hint: Esporta i frammenti +Fold/Caption: Ripiega il frammento +Fold/FoldBar/Caption: Ripiegabile +Fold/FoldBar/Hint: Barre opzionali per ripiegare e dispiegare i frammenti +Fold/Hint: Ripiega il corpo di questo frammento +FoldAll/Caption: Ripiega tutti i frammenti +FoldAll/Hint: Ripiega il corpo di tutti i frammenti aperti +FoldOthers/Caption: Ripiega altri frammenti +FoldOthers/Hint: Ripiega il corpo di altri frammenti aperti FullScreen/Caption: Schermo intero FullScreen/Hint: Entra o esci dalla modalità a schermo intero +Heading1/Caption: Titolo 1 +Heading1/Hint: Formatta come titolo 1 le linee che contengono la selezione +Heading2/Caption: Titolo 2 +Heading2/Hint: Formatta come titolo 2 le linee che contengono la selezione +Heading3/Caption: Titolo 3 +Heading3/Hint: Formatta come titolo 3 le linee che contengono la selezione +Heading4/Caption: Titolo 4 +Heading4/Hint: Formatta come titolo 4 le linee che contengono la selezione +Heading5/Caption: Titolo 5 +Heading5/Hint: Formatta come titolo 5 le linee che contengono la selezione +Heading6/Caption: Titolo 6 +Heading6/Hint: Formatta come titolo 6 le linee che contengono la selezione Help/Caption: Aiuto Help/Hint: Mostra il pannello di aiuto HideSideBar/Caption: Nascondi la barra laterale @@ -39,40 +82,111 @@ HideSideBar/Hint: Nascondi la barra laterale Home/Caption: Home Home/Hint: Apri i frammenti predefiniti Import/Caption: Importa -Import/Hint: Importa file +Import/Hint: Importa diversi tipi di file, come testo, immagine, TiddlyWiki o JSON Info/Caption: Info Info/Hint: Mostra informazioni su questo frammento +Italic/Caption: Corsivo +Italic/Hint: Formatta in corsivo la selezione Language/Caption: Lingua Language/Hint: Scegli la lingua dell'interfaccia +LayoutSwitcher/Hint: Apri il pannello di selezione layout +LineWidth/Caption: Spessore linea +LineWidth/Hint: Imposta lo spessore linea per il disegno +Link/Caption: Link +Link/Hint: Crea link wikitext +Linkify/Caption: Wikilink +Linkify/Hint: Racchiudi la selezione tra parentesi quadre +ListBullet/Caption: Elenco puntato +ListBullet/Hint: Formatta come elenco puntato le linee che contengono la selezione +ListNumber/Caption: Elenco numerato +ListNumber/Hint: Formatta come elenco numerato le linee che contengono la selezione +Manager/Caption: Gestore dei frammenti +Manager/Hint: Apri il gestore dei frammenti +MonoBlock/Caption: Blocco monospazio +MonoBlock/Hint: Formatta come blocco monospazio le linee che contengono la selezione +MonoLine/Caption: monospazio +MonoLine/Hint: Formatta come carattere monospazio la selezione More/Caption: Altro More/Hint: Altre azioni NewHere/Caption: Nuovo qui NewHere/Hint: Crea un nuovo frammento etichettato con questo +NewImage/Caption: Nuova immagine +NewImage/Hint: Crea un nuovo frammento immagine NewJournal/Caption: Diario NewJournal/Hint: Crea un nuovo frammento diario NewJournalHere/Caption: Nuovo diario qui NewJournalHere/Hint: Crea un nuovo frammento diario etichettato con questo +NewMarkdown/Caption: Nuovo frammento markdown +NewMarkdown/Hint: Crea un nuovo frammento markdown NewTiddler/Caption: Nuovo frammento NewTiddler/Hint: Crea un nuovo frammento +Opacity/Caption: Trasparenza +Opacity/Hint: Imposta la trasparenza di disegno OpenWindow/Caption: Apri in una nuova finestra OpenWindow/Hint: Apri il frammento in una nuova finestra +Paint/Caption: Colore di disegno +Paint/Hint: Imposta il colore di disegno Palette/Caption: Tavolozza Palette/Hint: Scegli la tavolozza dei colori Permalink/Caption: Permalink -Permalink/Hint: Link diretto a questo frammento +Permalink/Hint: Imposta la barra degli indirizzi del browser a un link diretto a questo frammento Permaview/Caption: Permaview -Permaview/Hint: Link diretto a tutti i frammenti in questa storia +Permaview/Hint: Imposta la barra degli indirizzi del browser a un link diretto a tutti i frammenti in questa storia +Picture/Caption: Immagine +Picture/Hint: Inserisci immagine +Preview/Caption: Anteprima +Preview/Hint: Mostra il pannello di anteprima +PreviewType/Caption: Tipo di anteprima +PreviewType/Hint: Scegli il tipo di anteprima +Print/Caption: Stampa pagina +Print/Hint: Stampa la pagina corrente +Quote/Caption: Citazione +Quote/Hint: Formatta come citazione le linee che contengono la selezione Refresh/Caption: Ricarica Refresh/Hint: Ricarica completamente il wiki -Save/Caption: ok +RotateLeft/Caption: Ruota a sinistra +RotateLeft/Hint: Ruota l'immagine di 90 gradi a sinistra +Save/Caption: Ok Save/Hint: Conferma i cambiamenti a questo frammento SaveWiki/Caption: Salva le modifiche SaveWiki/Hint: Salva le modifiche -ShowSideBar/Caption: Mostra barra laterale -ShowSideBar/Hint: Mostra barra laterale -StoryView/Caption: Storyview +ShowSideBar/Caption: Mostra la barra laterale +ShowSideBar/Hint: Mostra la barra laterale +SidebarSearch/Hint: Seleziona il campo di ricerca della barra laterale +Size/Caption: Dimensione immagine +Size/Caption/Height: Altezza: +Size/Caption/Resize: Ridimensiona l'immagine +Size/Caption/Width: Larghezza +Size/Hint: Imposta la dimensione dell'immagine +Stamp/Caption: Timbro +Stamp/Caption/New: Aggiungi il tuo +Stamp/Hint: Inserisci un ritaglio di testo preconfigurato +Stamp/New/Text: Testo del ritaglio. (Ricordati di aggiungere un titolo descrittivo nel campo della didascalia). +Stamp/New/Title: Nome come mostrato nel menu +StoryView/Caption: Visualizzazione "storia" StoryView/Hint: Scegli la visualizzazione "storia" +Strikethrough/Caption: barrato +Strikethrough/Hint: Formatta come barrata la selezione +Subscript/Caption: pedice +Subscript/Hint: Formatta come pedice la selezione +Superscript/Caption: apice +Superscript/Hint: Formatta come apice la selezione TagManager/Caption: Gestore delle etichette TagManager/Hint: Apri il gestore delle etichette Theme/Caption: Tema Theme/Hint: Scegli il tema grafico +Timestamp/Caption: Timestamps +Timestamp/Hint: Scegli se le modifiche aggiornano i timestamps +Timestamp/Off/Caption: I timestamps sono disattivati +Timestamp/Off/Hint: Non aggiornare i timestamps alla modifica dei frammenti +Timestamp/On/Caption: I timestamps sono attivati +Timestamp/On/Hint: Aggiornare i timestamps alla modifica dei frammenti +ToggleSidebar/Hint: Attiva o disattiva la visibilità della barra laterale +Transcludify/Caption: Trasclusione +Transcludify/Hint: Racchiudi la selezione tra parentesi graffe +Underline/Caption: Sottolinea +Underline/Hint: Sottolinea la selezione +Unfold/Caption: Dispiega il frammento +Unfold/Hint: Dispiega il corpo di questo frammento +UnfoldAll/Caption: Dispiega tutti i frammenti +UnfoldAll/Hint: Dispiega il corpo di tutti i frammenti aperti diff --git a/languages/it-IT/ControlPanel.multids b/languages/it-IT/ControlPanel.multids index 27f392010..597cade35 100644 --- a/languages/it-IT/ControlPanel.multids +++ b/languages/it-IT/ControlPanel.multids @@ -1,104 +1,194 @@ title: $:/language/ControlPanel/ Advanced/Caption: Avanzate -Advanced/Hint: Informazioni interne di questo ~TiddlyWiki +Advanced/Hint: Informazioni interne di questo TiddlyWiki Appearance/Caption: Aspetto -Appearance/Hint: Personalizza l'aspetto del tuo ~TiddlyWiki +Appearance/Hint: Modi di personalizzare l'aspetto del tuo TiddlyWiki Basics/AnimDuration/Prompt: Durata animazione: +Basics/AutoFocus/Prompt: Campo selezionato di default per i nuovi frammenti Basics/Caption: Impostazioni base Basics/DefaultTiddlers/BottomHint: Utilizza [[le doppie parentesi quadre]] per titoli di frammenti con spazi. In alternativa scegli di visualizzare i frammenti secondo la {{cronologia||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Frammenti di default: Basics/DefaultTiddlers/TopHint: Scegli quali frammenti vuoi visualizzare all'avvio: Basics/Language/Prompt: Ciao! Scegli la lingua: -Basics/NewJournal/Tags/Prompt: Etichette per i nuovi frammenti diario +Basics/NewJournal/Tags/Prompt: Etichette dei nuovi frammenti diario +Basics/NewJournal/Text/Prompt: Testo dei nuovi frammenti diario Basics/NewJournal/Title/Prompt: Titolo dei nuovi frammenti diario +Basics/NewTiddler/Tags/Prompt: Etichette dei nuovi frammenti Basics/NewTiddler/Title/Prompt: Titolo dei nuovi frammenti -Basics/OverriddenShadowTiddlers/Prompt: Numero di frammenti nascosti annullati: -Basics/ShadowTiddlers/Prompt: Numero di frammenti nascosti: -Basics/Subtitle/Prompt: Sottotitolo: -Basics/SystemTiddlers/Prompt: Numero di frammenti di sistema: -Basics/Tags/Prompt: Numero di categorie: -Basics/Tiddlers/Prompt: Numero di frammenti: +Basics/OverriddenShadowTiddlers/Prompt: Numero di frammenti nascosti sovrascritti +Basics/RemoveTags: Aggiorna al formato corrente +Basics/RemoveTags/Hint: Aggiorna la configurazione delle etichette al formato più recente +Basics/ShadowTiddlers/Prompt: Numero di frammenti nascosti +Basics/Subtitle/Prompt: Sottotitolo +Basics/SystemTiddlers/Prompt: Numero di frammenti di sistema +Basics/Tags/Prompt: Numero di etichette +Basics/Tiddlers/Prompt: Numero di frammenti Basics/Title/Prompt: Il titolo di questo ~TiddlyWiki: -Basics/Username/Prompt: Digita il nome con cui firmare le modifiche: +Basics/Username/Prompt: Nome utente con cui firmare le modifiche Basics/Version/Prompt: Versione di ~TiddlyWiki: +Cascades/Caption: Cascate +Cascades/Hint: Queste regole globali vengono utilizzate per scegliere dinamicamente determinati modelli. Il risultato della sequenza è il risultato del primo filtro nella sequenza che restituisce un risultato +Cascades/TagPrompt: Filtri etichettati <$macrocall $name="tag" tag=<<currentTiddler>>/> EditorTypes/Caption: Tipi di editor EditorTypes/Editor/Caption: Editor EditorTypes/Hint: Questi frammenti definiscono quale editor utilizzare per modificare tipi specifici di frammenti. EditorTypes/Type/Caption: Tipo +EditTemplateBody/Caption: Modifica il corpo del modello +EditTemplateBody/Hint: Questa sequenza di regole viene utilizzata dal modello di modifica predefinito per scegliere dinamicamente il modello per la modifica del corpo di un frammento. +FieldEditor/Caption: Editor di campo +FieldEditor/Hint: Questa sequenza di regole viene utilizzata per scegliere dinamicamente il modello per il rendering di un campo di un frammento in base al suo nome. Viene utilizzato all'interno dell'editor di campo. Info/Caption: Info -Info/Hint: Informazioni su questo ~TiddlyWiki +Info/Hint: Informazioni su questo TiddlyWiki +KeyboardShortcuts/Add/Caption: Aggiungi scorciatoia +KeyboardShortcuts/Add/Prompt: Digita qui la scorciatoia +KeyboardShortcuts/Caption: Scorciatoie da tastiera +KeyboardShortcuts/Hint: Gestisci l'assegnazione delle scorciatoie da tastiera +KeyboardShortcuts/NoShortcuts/Caption: Nessuna scorciatoia da tastiera assegnata +KeyboardShortcuts/Platform/All: Tutte le piattaforme +KeyboardShortcuts/Platform/Linux: Solo piattaforma Linux +KeyboardShortcuts/Platform/Mac: Solo piattaforma Macintosh +KeyboardShortcuts/Platform/NonLinux: Solo piattaforme Non-Linux +KeyboardShortcuts/Platform/NonMac: Solo piattaforme Non-Macintosh +KeyboardShortcuts/Platform/NonWindows: Solo piattaforme Non-Windows +KeyboardShortcuts/Platform/Windows: Solo piattaforma Windows +KeyboardShortcuts/Remove/Hint: Rimuovi scorciatoie da tastiera LoadedModules/Caption: Moduli caricati LoadedModules/Hint: Elenco dei moduli attualmente caricati e loro collegamento ai frammenti sorgente. I moduli in corsivo mancano di un frammento sorgente perché in generale installati durante il processo di avvio. Palette/Caption: Tavolozza Palette/Editor/Clone/Caption: Clona Palette/Editor/Clone/Prompt: Si consiglia di clonare questa tavolozza prima di modificarla +Palette/Editor/Delete/Hint: Elimina questa voce dalla paletta corrente +Palette/Editor/Names/External/Show: Mostra i nomi di colore che non fanno parte della paletta corrente Palette/Editor/Prompt: Modifica Palette/Editor/Prompt/Modified: Questa tavolozza è stata modificata Palette/Editor/Reset/Caption: Reset Palette/HideEditor/Caption: Nascondi editor Palette/Prompt: Tavolozza corrente: Palette/ShowEditor/Caption: Mostra editor +Parsing/Block/Caption: Regole di analisi blocco +Parsing/Caption: Analisi +Parsing/Hint: Qui puoi disabilitare/abilitare globalmente le regole di analisi wiki. Per rendere effettive le modifiche, salva e ricarica il tuo wiki. La disabilitazione di alcune regole di analisi può impedire a <$text text="TiddlyWiki"/> di funzionare correttamente. Usa la [[modalità sicura|https://tiddlywiki.com/#SafeMode]] per ripristinare il normale funzionamento. +Parsing/Inline/Caption: Regole di analisi inline +Parsing/Pragma/Caption: Regole di analisi pragma Plugins/Add/Caption: Aggiungi altri plugin Plugins/Add/Hint: Installa plugin dalla libreria ufficiale +Plugins/AlreadyInstalled/Hint: Questo plugin è già installato nella versione <$text text=<<installedVersion>>/> +Plugins/AlsoRequires: Richiede anche: Plugins/Caption: Plugin +Plugins/ClosePluginLibrary: Chiudi la libreria dei plugin Plugins/Disable/Caption: Disabilita Plugins/Disable/Hint: Disabilita questo plugin al ricaricamento della pagina Plugins/Disabled/Status: (disabilitato) Plugins/Empty/Hint: Nessuno Plugins/Enable/Caption: Abilita Plugins/Enable/Hint: Abilita questo plugin al ricaricamento della pagina +Plugins/Install/Caption: Installa Plugins/Installed/Hint: Plugin attualmente installati: Plugins/Language/Prompt: Lingue: Plugins/Languages/Caption: Lingue Plugins/Languages/Hint: Plugin per lingue aggiuntive -Plugins/Plugin/Prompt: Plugins -Plugins/Plugins/Caption: Plugins -Plugins/Plugins/Hint: Plugins +Plugins/NoInfoFound/Hint: ''"<$text text=<<currentTab>>/>"'' non trovato +Plugins/NotInstalled/Hint: Questo plugin non è attualmente installato +Plugins/OpenPluginLibrary: Apri la libreria dei plugin +Plugins/Plugin/Prompt: Plugin +Plugins/Plugins/Caption: Plugin +Plugins/Plugins/Hint: Plugin +Plugins/PluginWillRequireReload: (richiede il ricaricamento) +Plugins/Reinstall/Caption: Reinstalla +Plugins/SubPluginPrompt: Con <<count>> sub-plugin disponibili Plugins/Theme/Prompt: Temi Plugins/Themes/Caption: Temi Plugins/Themes/Hint: Plugin dei temi +Plugins/Update/Caption: Aggiornamento +Plugins/Updates/Caption: Aggiornamenti +Plugins/Updates/Hint: Aggiornamenti disponibili per i plugin installati +Plugins/Updates/UpdateAll/Caption: Aggiorna <<update-count>> plugin Saving/Caption: Salvataggio +Saving/DownloadSaver/AutoSave/Description: Consenti il salvataggio automatico per il Saver scaricato +Saving/DownloadSaver/AutoSave/Hint: Abilita il salvataggio automatico per il Saver di download +Saving/DownloadSaver/Caption: Saver di download +Saving/DownloadSaver/Hint: Queste impostazioni si applicano al Saver di download compatibile con HTML-5 +Saving/General/Caption: Generale +Saving/General/Hint: Queste impostazioni si applicano a tutti i Saver caricati +Saving/GitService/Branch: Ramo di destinazione per il salvataggio +Saving/GitService/CommitMessage: Salvato da TiddlyWiki +Saving/GitService/Description: Queste impostazioni si applicano solo per salvare su <<service-name>> +Saving/GitService/Filename: Nome del file di destinazione (p.es. `index.html`) +Saving/GitService/Gitea/Caption: Saver Gitea +Saving/GitService/Gitea/Password: Token personale di accesso per API (via interfaccia web di Gitea: `Settings | Applications | Generate New Token`) +Saving/GitService/GitHub/Caption: Saver ~GitHub +Saving/GitService/GitHub/Password: Password, token OAUTH, o token personale di accesso (vedi [[pagina di aiuto GitHub|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] per i dettagli) +Saving/GitService/GitLab/Caption: Saver ~GitLab +Saving/GitService/GitLab/Password: Token personale di accesso per API (vedi [[pagina di aiuto GitLab|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] per i dettagli) +Saving/GitService/Path: Percorso del file di destinazione (p.es. `/wiki/`) +Saving/GitService/Repo: Repository di destinazione (p.es. `Jermolene/TiddlyWiki5`) +Saving/GitService/UserName: Nome utente Saving/Heading: Salvataggio +Saving/Hint: Impostazioni utilizzate per salvare l'intero TiddlyWiki come un singolo file tramite un modulo di salvataggio (Saver) Saving/TiddlySpot/Advanced/Heading: Impostazioni avanzate Saving/TiddlySpot/BackupDir: Directory di backup Saving/TiddlySpot/Backups: Backups -Saving/TiddlySpot/Description: Queste impostazioni sono usate solo per il salvataggio su http://tiddlyspot.com o su un server remoto compatibile +Saving/TiddlySpot/Caption: Saver ~TiddlySpot +Saving/TiddlySpot/ControlPanel: Pannello di controllo ~TiddlySpot +Saving/TiddlySpot/Description: Queste impostazioni sono usate solo per il salvataggio su [[TiddlySpot|http://tiddlyspot.com]] o su un server remoto compatibile. Vedi [[qui|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] per informazioni sulla configurazione di salvataggio di ~TiddlySpot e ~TiddlyHost. Saving/TiddlySpot/Filename: Nome del file di upload Saving/TiddlySpot/Heading: ~TiddlySpot -Saving/TiddlySpot/Hint: //L'indirizzo del server di default è `http://<wikiname>.tiddlyspot.com/store.cgi` e può essere modificato per utilizzare un indirizzo server personalizzato// +Saving/TiddlySpot/Hint: //L'indirizzo del server di default è `http://<wikiname>.tiddlyspot.com/store.cgi` e può essere modificato per utilizzare un indirizzo server personalizzato, p.es. `http://example.com/store.php`.// Saving/TiddlySpot/Password: Password +Saving/TiddlySpot/ReadOnly: Tieni presente che [[TiddlySpot|http://tiddlyspot.com]] non consente più la creazione di nuovi siti. Per i nuovi siti, puoi utilizzare [[TiddlyHost|https://tiddlyhost.com]], un nuovo servizio di hosting che sostituisce ~TiddlySpot. Saving/TiddlySpot/ServerURL: Indirizzo server Saving/TiddlySpot/UploadDir: Directory di upload Saving/TiddlySpot/UserName: Nome Wiki Settings/AutoSave/Caption: Salvataggio automatico Settings/AutoSave/Disabled/Description: Non salvare le modifiche in automatico Settings/AutoSave/Enabled/Description: Salva le modifiche in automatico -Settings/AutoSave/Hint: Salva automaticamente le modifiche durante il lavoro +Settings/AutoSave/Hint: Prova a salvare automaticamente le modifiche durante il lavoro se usi un modulo di salvataggio che lo supporta +Settings/CamelCase/Caption: Wiki Links Camel Case +Settings/CamelCase/Description: Abilita i link automatici ~CamelCase +Settings/CamelCase/Hint: Puoi disabilitare globalmente i link automatici delle frasi ~CamelCase. Richiede la ricarica per avere effetto Settings/Caption: Impostazioni +Settings/DefaultMoreSidebarTab/Caption: Tab predefinito della barra laterale Altro +Settings/DefaultMoreSidebarTab/Hint: Specifica quale tab della barra laterale Altro è mostrato di default Settings/DefaultSidebarTab/Caption: Tab predefinito della barra laterale Settings/DefaultSidebarTab/Hint: Specifica quale tab della barra laterale è mostrato di default +Settings/EditorToolbar/Caption: Barra strumenti editor +Settings/EditorToolbar/Description: Mostra la barra strumenti editor +Settings/EditorToolbar/Hint: Abilita o disabilita la barra strumenti editor: Settings/Hint: Queste impostazioni ti permettono di personalizzare il comportamento di TiddlyWiki. -Settings/LinkToBehaviour/Caption: Comportamento apertura framnmenti +Settings/InfoPanelMode/Caption: Modalità pannello info frammento +Settings/InfoPanelMode/Hint: Controlla quando il pannello info frammento viene chiuso: +Settings/InfoPanelMode/Popup/Description: Il pannello info frammento viene chiuso in automatico +Settings/InfoPanelMode/Sticky/Description: Il pannello info frammento resta aperto fino a quando viene chiuso esplicitamente +Settings/LinkToBehaviour/Caption: Comportamento apertura frammenti Settings/LinkToBehaviour/InsideRiver/Hint: Navigazione dall' //interno// della cronologia Settings/LinkToBehaviour/OpenAbove: Apri sopra il frammento corrente Settings/LinkToBehaviour/OpenAtBottom: Apri in basso alla cronologia Settings/LinkToBehaviour/OpenAtTop: Apri in alto alla cronologia Settings/LinkToBehaviour/OpenBelow: Apri sotto il frammento corrente Settings/LinkToBehaviour/OutsideRiver/Hint: Navigazione dall' //esterno// della cronologia +Settings/MissingLinks/Description: Abilita link a frammenti mancanti +Settings/MissingLinks/Hint: Scegli se creare i link a frammenti che non esistono ancora Settings/NavigationAddressBar/Caption: Barra degli indirizzi Settings/NavigationAddressBar/Hint: Comportamento della barra degli indirizzi del browser quando si visita un frammento: Settings/NavigationAddressBar/No/Description: Non aggiornare la barra degli indirizzi Settings/NavigationAddressBar/Permalink/Description: Includi il frammento di destinazione Settings/NavigationAddressBar/Permaview/Description: Includi il frammento di destinazione e la sequenza della cronologia corrente Settings/NavigationHistory/Caption: Cronologia di navigazione -Settings/NavigationHistory/Hint: Aggiornamento della cronologia quando si visita un frammento +Settings/NavigationHistory/Hint: Aggiornamento della cronologia quando si visita un frammento: Settings/NavigationHistory/No/Description: Non aggiornare la cronologia Settings/NavigationHistory/Yes/Description: Aggiorna la cronologia -Settings/TitleLinks/Caption: Titolo frammento -Settings/TitleLinks/Hint: Mostra opzionalmente titoli frammenti come collegamenti -Settings/TitleLinks/No/Description: Non mostrare titoli frammenti come collegamenti -Settings/TitleLinks/Yes/Description: Mostra titoli frammenti come collegamenti +Settings/NavigationPermalinkviewMode/Caption: Modalità permalink/permaview +Settings/NavigationPermalinkviewMode/CopyToClipboard/Description: Copia l'URL permalink/permaview negli appunti +Settings/NavigationPermalinkviewMode/Hint: Scegli come trattare i permalink/permaview: +Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description: Aggiorna la barra degli indirizzi con l'URL permalink/permaview +Settings/PerformanceInstrumentation/Caption: Strumentazione delle prestazioni +Settings/PerformanceInstrumentation/Description: Abilita la strumentazione delle prestazioni +Settings/PerformanceInstrumentation/Hint: Visualizza le statistiche sulle prestazioni nella console per sviluppatori del browser. Richiede la ricarica per avere effetto +Settings/TitleLinks/Caption: Titoli frammenti +Settings/TitleLinks/Hint: Mostra opzionalmente i titoli dei frammenti come collegamenti +Settings/TitleLinks/No/Description: Non mostrare i titoli dei frammenti come collegamenti +Settings/TitleLinks/Yes/Description: Mostra i titoli dei frammenti come collegamenti Settings/ToolbarButtons/Caption: Pulsanti della barra strumenti Settings/ToolbarButtons/Hint: Aspetto predefinito dei pulsanti della barra strumenti: Settings/ToolbarButtons/Icons/Description: Mostra icona @@ -108,18 +198,34 @@ Settings/ToolbarButtonStyle/Hint: Scegli lo stile dei pulsanti della barra strum Settings/ToolbarButtonStyle/Styles/Borderless: Senza bordi Settings/ToolbarButtonStyle/Styles/Boxed: Incorniciati Settings/ToolbarButtonStyle/Styles/Rounded: Arrotondati +StoryTiddler/Caption: Tiddler storia +StoryTiddler/Hint: Questa sequenza di regole viene utilizzata per scegliere dinamicamente il modello per la visualizzazione di un frammento nella cronologia. StoryView/Caption: Vista cronologia StoryView/Prompt: Vista corrente: +Stylesheets/Caption: Fogli di stile +Stylesheets/Expand/Caption: Espandi tutto +Stylesheets/Hint: Questo è il CSS renderizzato degli attuali frammenti foglio di stile etichettati con <<tag "$:/tags/Stylesheet">> +Stylesheets/Restore/Caption: Ripristina Theme/Caption: Tema -Theme/Prompt: Tema corrente: -TiddlerFields/Caption: Campi frammenti +Theme/Prompt: Tema corrente: +TiddlerColour/Caption: Colore frammento +TiddlerColour/Hint: Questa sequenza di regole viene utilizzata per scegliere dinamicamente il colore di un frammento (utilizzato per l'icona e l'etichetta associate). +TiddlerFields/Caption: Campi frammento TiddlerFields/Hint: Questa è la serie completa dei TiddlerFields utilizzati in questo wiki (sono inclusi i frammenti di sistema ed esclusi i frammenti nascosti). -Toolbars/Caption: Barre strumenti +TiddlerIcon/Caption: Icona frammento +TiddlerIcon/Hint: Questa sequenza di regole viene utilizzata per scegliere dinamicamente l'icona per un frammento. +Toolbars/Caption: Barre degli strumenti +Toolbars/EditorToolbar/Caption: Barra strumenti editor +Toolbars/EditorToolbar/Hint: Scegli quali pulsanti mostrare nella barra degli strumenti dell'editor. Nota che alcuni pulsanti appariranno solo durante la modifica di frammenti di un certo tipo. Trascina e rilascia per modificare l'ordine Toolbars/EditToolbar/Caption: Barra strumenti di modifica -Toolbars/EditToolbar/Hint: Scegli quali pulsanti mostrare nella modalità modifica frammenti +Toolbars/EditToolbar/Hint: Scegli quali pulsanti mostrare nella modalità modifica frammenti. Trascina e rilascia per modificare l'ordine Toolbars/Hint: Scegli quali pulsanti mostrare nella barra strumenti Toolbars/PageControls/Caption: Barra strumenti di pagina -Toolbars/PageControls/Hint: Scegli quali pulsanti mostrare nella barra strumenti della pagina principale +Toolbars/PageControls/Hint: Scegli quali pulsanti mostrare nella barra strumenti della pagina principale. Trascina e rilascia per modificare l'ordine Toolbars/ViewToolbar/Caption: Barra strumenti visualizzazione -Toolbars/ViewToolbar/Hint: Scegli quali pulsanti mostrare per i frammenti in modo visualizzazione +Toolbars/ViewToolbar/Hint: Scegli quali pulsanti mostrare per i frammenti in modalità visualizzazione. Trascina e rilascia per modificare l'ordine Tools/Download/Full/Caption: Scarica l'intero wiki +ViewTemplateBody/Caption: Visualizza il corpo del modello +ViewTemplateBody/Hint: Questa sequenza di regole viene utilizzata dal modello di visualizzazione predefinito per scegliere dinamicamente il modello per la visualizzazione del corpo di un frammento. +ViewTemplateTitle/Caption: Visualizza il titolo del modello +ViewTemplateTitle/Hint: Questa sequenza di regole viene utilizzata dal modello di visualizzazione predefinito per scegliere dinamicamente il modello per la visualizzazione del titolo di un frammento. diff --git a/languages/it-IT/Dates.multids b/languages/it-IT/Dates.multids index c2e1a2b9a..a23afda42 100644 --- a/languages/it-IT/Dates.multids +++ b/languages/it-IT/Dates.multids @@ -50,6 +50,8 @@ Date/Long/Month/6: Giugno Date/Long/Month/7: Luglio Date/Long/Month/8: Agosto Date/Long/Month/9: Settembre +Date/Period/am: am +Date/Period/pm: pm Date/Short/Day/0: Do Date/Short/Day/1: Lu Date/Short/Day/2: Ma @@ -59,18 +61,16 @@ Date/Short/Day/5: Ve Date/Short/Day/6: Sa Date/Short/Month/1: Gen Date/Short/Month/10: Ott +Date/Short/Month/11: Nov Date/Short/Month/12: Dic +Date/Short/Month/2: Feb +Date/Short/Month/3: Mar +Date/Short/Month/4: Apr Date/Short/Month/5: Mag Date/Short/Month/6: Giu Date/Short/Month/7: Lug Date/Short/Month/8: Ago Date/Short/Month/9: Set -Date/Period/am: am -Date/Period/pm: pm -Date/Short/Month/11: Nov -Date/Short/Month/2: Feb -Date/Short/Month/3: Mar -Date/Short/Month/4: Apr RelativeDate/Future/Days: tra <<period>> giorni RelativeDate/Future/Hours: tra <<period>> ore RelativeDate/Future/Minutes: tra <<period>> minuti diff --git a/languages/it-IT/Docs/ModuleTypes.multids b/languages/it-IT/Docs/ModuleTypes.multids index d20fe5773..73a9fe6b9 100644 --- a/languages/it-IT/Docs/ModuleTypes.multids +++ b/languages/it-IT/Docs/ModuleTypes.multids @@ -1,22 +1,30 @@ title: $:/language/Docs/ModuleTypes/ +allfilteroperator: Un sottooperatore per l'operatore di filtro ''tutti''. animation: Animazioni che possono essere utilizzate con RevealWidget. +authenticator: Definisce il modo in cui le richieste vengono autenticate dal server HTTP integrato. +bitmapeditoroperation: Un'operazione della barra degli strumenti dell'editor bitmap. command: Comandi che possono essere eseguiti sotto Node.js. config: Data da inserire nel `$tw.config`. filteroperator: I singoli metodi degli operatori di filtro. global: Data globale da inserire in `$tw`. -isfilteroperator: Operandi per l'operatore di filtro ''is''. -macro: Definizione macro JavaScript. -parser: Parsers per differenti tipi di contenuto. -saver: Savers per gestire i diversi metodi di salvataggio file dal browser. +info: Pubblica informazioni di sistema tramite lo pseudo-plugin [[$:/temp/info-plugin]]. +isfilteroperator: Operandi per l'operatore di filtro ''è''. +library: Tipo di modulo generico per moduli JavaScript generici. +macro: Definizioni macro JavaScript. +parser: Parser per differenti tipi di contenuto. +route: Definisce il modo in cui i singoli pattern URL vengono gestiti dal server HTTP integrato. +saver: I saver gestiscono diversi metodi per salvare i file dal browser. startup: Funzioni di avvio. -storyview: Vista cronologia per personalizzare l'animazione ed il comportamento del widget liste. +storyview: Vista cronologia personalizza l'animazione ed il comportamento del widget liste. +texteditoroperation: Un'operazione della barra degli strumenti dell'editor di testo. tiddlerdeserializer: Converte i diversi tipi di contenuto in frammenti. tiddlerfield: Definisce il comportamento di un singolo campo di un frammento. tiddlermethod: Aggiunge metodi al prototipo `$tw.Tiddler`. upgrader: Applica il processo di aggiornamento ai frammenti durante un aggiornamento/importazione. utils: Aggiunge metodi a `$tw.utils`. +utils-browser: Aggiunge metodi specifici del browser a `$tw.utils`. utils-node: Aggiunge metodi specifici Node.js a `$tw.utils`. -widget: Widgets che incapsulano e aggiornano il contenuto DOM. +widget: I widget incapsulano il rendering e l'aggiornamento del DOM. wikimethod: Aggiunge metodi a `$tw.Wiki`. wikirule: Regole parser individuali del parser principale WikiText. diff --git a/languages/it-IT/Docs/PaletteColours.multids b/languages/it-IT/Docs/PaletteColours.multids index 7c268cd90..af83739fe 100644 --- a/languages/it-IT/Docs/PaletteColours.multids +++ b/languages/it-IT/Docs/PaletteColours.multids @@ -5,6 +5,7 @@ alert-border: Bordo allarme alert-highlight: Evidenziazione allarme alert-muted-foreground: Primo piano allarme disattivato background: Sfondo generale +blockquote-bar: Barra blocco citazione button-background: Default sfondo pulsante button-border: Default bordo pulsante button-foreground: Default primo piano pulsante @@ -14,34 +15,93 @@ code-foreground: Codice in primo piano dirty-indicator: Indicatore modifiche non salvate download-background: Sfondo pulsante download download-foreground: Primo piano pulsante download +dragger-background: Sfondo trascinatore +dragger-foreground: Primo piano trascinatore +dropdown-background: Sfondo casella a discesa +dropdown-border: Bordo casella a discesa +dropdown-tab-background: Sfondo tab casella a discesa +dropdown-tab-background-selected: Primo piano tab casella a discesa per i tab selezionati +dropzone-background: Sfondo zona di rilascio external-link-background: Sfondo link esterno +external-link-background-hover: Sfondo link esterno hover external-link-background-visited: Sfondo link esterno visitato external-link-foreground: Primo piano link esterno +external-link-foreground-hover: Primo piano link esterno hover external-link-foreground-visited: Primo piano link esterno visitato foreground: Primo piano generale +menubar-background: Sfondo barra dei menu +menubar-foreground: Primo piano barra dei menu message-background: Sfondo casella messaggio message-border: Bordo casella messaggio message-foreground: Primo piano casella messaggio +modal-backdrop: Backdrop wizard +modal-background: Sfondo wizard +modal-border: Bordo wizard +modal-footer-background: Sfondo piè di pagina wizard +modal-footer-border: Bordo piè di pagina wizard +modal-header-border: Bordo intestazione wizard +muted-foreground: Primo piano generale muto notification-background: Sfondo notifica notification-border: Bordo notifica page-background: Sfondo pagina pre-background: Sfondo codice preformattato pre-border: Bordo codice preformattato -sidebar-button-foreground: Sfondo pulsante sidebar -sidebar-foreground: Sfondo sidebar +primary: Generale primario +select-tag-background: Sfondo elemento `<select>` +select-tag-foreground: Testo elemento `<select>` +sidebar-button-foreground: Primo piano pulsante barra laterale +sidebar-controls-foreground: Primo piano controlli barra laterale +sidebar-controls-foreground-hover: Primo piano controlli barra laterale hover +sidebar-foreground: Primo piano barra laterale +sidebar-foreground-shadow: Primo piano barra laterale ombra +sidebar-muted-foreground: Primo piano barra laterale muto +sidebar-muted-foreground-hover: Primo piano barra laterale muto hover +sidebar-tab-background: Sfondo tab barra laterale +sidebar-tab-background-selected: Sfondo tab barra laterale per tab selezionati +sidebar-tab-border: Bordo tab barra laterale +sidebar-tab-border-selected: Bordo tab barra laterale per tab selezionati +sidebar-tab-divider: Separatore tab barra laterale +sidebar-tab-foreground: Primo piano tab barra laterale +sidebar-tab-foreground-selected: Primo piano tab barra laterale per tab selezionati +sidebar-tiddler-link-foreground: Primo piano collegamento frammento barra laterale +sidebar-tiddler-link-foreground-hover: Primo piano collegamento frammento barra laterale hover site-title-foreground: Sfondo titolo sito static-alert-foreground: Primo piano alert statico tab-background: Sfondo tab tab-background-selected: Sfondo tab per tab selezionati tab-border: Bordo tab tab-border-selected: Bordo tab per tab selezionati +tab-divider: Separatore tab +tab-foreground: Primo piano tab +tab-foreground-selected: Primo piano tab per tab selezionati table-border: Bordo tabella -table-footer-background: Sfondo footer tabella -table-header-background: Sfondo testata tabella +table-footer-background: Sfondo piè di pagina tabella +table-header-background: Sfondo intestazione tabella tag-background: Sfondo etichetta +tag-foreground: Primo piano etichetta tiddler-background: Sfondo frammento tiddler-border: Bordo frammento +tiddler-controls-foreground: Primo piano controlli frammenti +tiddler-controls-foreground-hover: Primo piano controlli frammenti hover +tiddler-controls-foreground-selected: Primo piano controlli frammenti per controlli selezionati tiddler-editor-background: Sfondo editor frammenti tiddler-editor-border: Bordo editor frammenti +tiddler-editor-border-image: Immagine bordo editor frammenti +tiddler-editor-fields-even: Sfondo editor frammenti per campi pari +tiddler-editor-fields-odd: Sfondo editor frammenti per campi dispari tiddler-info-background: Sfondo pannello informazioni frammenti tiddler-info-border: Bordo pannello informazioni frammenti +tiddler-info-tab-background: Sfondo tab pannello informazioni frammenti +tiddler-link-background: Sfondo collegamenti frammenti +tiddler-link-foreground: Primo piano collegamenti frammenti +tiddler-subtitle-foreground: Primo piano sottotitolo frammenti +tiddler-title-foreground: Primo piano titolo frammenti +toolbar-cancel-button: Primo piano pulsante 'annulla' barra strumenti +toolbar-close-button: Primo piano pulsante 'chiudi' barra strumenti +toolbar-delete-button: Primo piano pulsante 'elimina' barra strumenti +toolbar-done-button: Primo piano pulsante 'fatto' barra strumenti +toolbar-edit-button: Primo piano pulsante 'modifica' barra strumenti +toolbar-info-button: Primo piano pulsante 'info' barra strumenti +toolbar-new-button: Primo piano pulsante 'nuovo frammento' barra strumenti +toolbar-options-button: Primo piano pulsante 'impostazioni' barra strumenti +toolbar-save-button: Primo piano pulsante 'salva' barra strumenti diff --git a/languages/it-IT/EditTemplate.multids b/languages/it-IT/EditTemplate.multids index 9a59c1dbc..122cdb284 100644 --- a/languages/it-IT/EditTemplate.multids +++ b/languages/it-IT/EditTemplate.multids @@ -2,23 +2,35 @@ title: $:/language/EditTemplate/ Body/External/Hint: Questo è un frammento esterno memorizzato al di fuori del file principale TiddlyWiki. Puoi editare le etichette ed i campi ma non puoi editare il contenuto Body/Placeholder: Digita il testo di questo frammento +Body/Preview/Type/DiffCurrent: Differenze rispetto all'attuale +Body/Preview/Type/DiffShadow: Differenze rispetto al nascosto (se presenti) +Field/Dropdown/Caption: Lista di campi +Field/Dropdown/Hint: Mostra la lista di campi Field/Remove/Caption: Rimuovi campo Field/Remove/Hint: Rimuovi campo Fields/Add/Button: Aggiungi +Fields/Add/Button/Hint: Aggiungi il nuovo campo al frammento Fields/Add/Dropdown/System: Campi di sistema Fields/Add/Dropdown/User: Campi utente Fields/Add/Name/Placeholder: Nome campo Fields/Add/Prompt: Aggiungi un nuovo campo: Fields/Add/Value/Placeholder: Valore campo -Shadow/OverriddenWarning: Questo è un frammento nascosto modificato. Puoi ritornare alla versione di default cancellando questo frammento -Shadow/Warning: Questo è un frammento nascosto. Qualsiasi modifica ricoprirà la versione di default +Shadow/OverriddenWarning: Questo è un frammento nascosto modificato. Puoi ritornare alla versione di default eliminando questo frammento +Shadow/Warning: Questo è un frammento nascosto. Qualsiasi modifica sovrascriverà la versione di default del plugin <<pluginLink>> Tags/Add/Button: Aggiungi +Tags/Add/Button/Hint: Aggiungi etichetta Tags/Add/Placeholder: Nome etichetta +Tags/ClearInput/Caption: Cancella input +Tags/ClearInput/Hint: Cancella input etichetta Tags/Dropdown/Caption: Lista delle etichette Tags/Dropdown/Hint: Mostra la lista delle etichette +Title/BadCharacterWarning: Attenzione: evita di usare uno qualsiasi dei caratteri <<bad-chars>> nei titoli dei frammenti +Title/Exists/Prompt: Il frammento di destinazione esiste già +Title/References/Prompt: I seguenti riferimenti a questo frammento non verranno aggiornati automaticamente: +Title/Relink/Prompt: Aggiorna ''<$text text=<<fromTitle>>/>'' a ''<$text text=<<toTitle>>/>'' nei campi //etichetta// e //lista// degli altri frammenti Type/Delete/Caption: Cancella il tipo di contenuto Type/Delete/Hint: Cancella il tipo di contenuto Type/Dropdown/Caption: Elenca il tipo di contenuto Type/Dropdown/Hint: Mostra la lista del tipo di contenuto -Type/Placeholder: Tipo contenuto +Type/Placeholder: Tipo di contenuto Type/Prompt: Tipo: diff --git a/languages/it-IT/Exporters.multids b/languages/it-IT/Exporters.multids index cb62d1804..130c4fdb9 100644 --- a/languages/it-IT/Exporters.multids +++ b/languages/it-IT/Exporters.multids @@ -1,6 +1,6 @@ title: $:/language/Exporters/ -CsvFile: file CSV -JsonFile: file JSON +CsvFile: File CSV +JsonFile: File JSON StaticRiver: HTML statico -TidFile: ".tid" file +TidFile: File ".tid" diff --git a/languages/it-IT/Fields.multids b/languages/it-IT/Fields.multids index cc1e28a5f..793946f34 100644 --- a/languages/it-IT/Fields.multids +++ b/languages/it-IT/Fields.multids @@ -1,34 +1,39 @@ title: $:/language/Docs/Fields/ _canonical_uri: L'URI completo di un frammento immagine esterno +_is_skinny: Se presente, indica che il campo di testo del frammento deve essere caricato dal server bag: Il nome del contenitore da cui proviene un frammento caption: Il testo che è visualizzato in un tab o in un pulsante +code-body: Il modello di visualizzazione visualizzerà il frammento come codice se impostato su ''sì'' color: Il codice CSS del colore associato ad un frammento -component: Il nome del componente responsabile per un [[alerttiddler|AlertMechanism]] +component: Il nome del componente responsabile per un [[frammento di avviso|AlertMechanism]] created: La data in cui il frammento è stato creato creator: Il nome della persona che ha creato il frammento -current-tiddler: Utilizzato per memorizzare nella cache il frammento top nella [[history list|HistoryMechanism]] -dependents: Per un plugin, elenca i plugin dipendenti +current-tiddler: Utilizzato per memorizzare nella cache il frammento in alto nella [[cronologia|HistoryMechanism]] +dependents: Per un plugin, elenca i titoli dei plugin dipendenti description: Il testo descrittivo per un plugin o per una modalità a dialogo draft.of: Per i frammenti bozza, contiene il titolo del frammento di cui questo è una bozza draft.title: Per i frammenti bozza, contiene la proposta di nuovo titolo per il frammento footer: Il testo del footer per un wizard +hide-body: Il modello di visualizzazione nasconderà i corpi dei frammenti se impostato su ''sì'' icon: Il titolo del frammento che contiene l'icona associata con il frammento -library: Se impostato su "yes" indica che il frammento deve essere salvato come una libreria ~JavaScript +library: Indica che il frammento deve essere salvato come una libreria JavaScript se impostato su ''sì'' list: Una lista ordinata di titoli di frammenti associati con un frammento -list-after: Se impostato, il titolo del frammento dopo il quale questo frammento deve essere aggiunto all'elenco ordinato dei titoli dei frammenti +list-after: Se impostato, il titolo del frammento dopo il quale questo frammento deve essere aggiunto all'elenco ordinato dei titoli dei frammenti, o alla fine dell'elenco se questo campo è presente ma vuoto list-before: Se impostato, il titolo del frammento prima del quale questo frammento deve essere aggiunto all'elenco ordinato dei titoli dei frammenti, o all'inizio della lista se questo campo è presente ma vuoto modified: La data e l'ora in cui un frammento è stato modificato l'ultima volta modifier: Il titolo del frammento associato con la persona che ha modificato un frammento l'ultima volta name: Il nome leggibile associato con un frammento plugin plugin-priority: Un valore numerico che indica la priorità di un frammento plugin plugin-type: Il tipo di plugin di un frammento plugin -released: La data di rilascio di un ~TiddlyWiki +released: La data di rilascio di un TiddlyWiki revision: La revisione del frammento mantenuta sul server source: L'indirizzo URL sorgente associato con un frammento subtitle: Il testo del sottotitolo per un wizard -tags: Una lista di categorie associate con un frammento +tags: Una lista di etichette associate con un frammento text: Il corpo del testo di un frammento +throttle.refresh: Se presente, rallenta gli aggiornamenti di questo tiddler title: Il nome univoco di un frammento +toc-link: Sopprime il link al frammento nel sommario se impostato su ''no'' type: Il tipo di contenuto di un frammento version: Informazioni di versione per un plugin diff --git a/languages/it-IT/Filters.multids b/languages/it-IT/Filters.multids index da70b5ce9..f58744b10 100644 --- a/languages/it-IT/Filters.multids +++ b/languages/it-IT/Filters.multids @@ -5,10 +5,12 @@ AllTiddlers: Tutti i frammenti eccetto quelli di sistema Drafts: Frammenti bozza Missing: Frammenti mancanti Orphans: Frammenti orfani -OverriddenShadowTiddlers: Frammenti nascosti annullati -RecentSystemTiddlers: I frammenti modificati di recente, inclusi i frammenti di sistema -RecentTiddlers: I frammenti modificati di recente +OverriddenShadowTiddlers: Frammenti nascosti sovrascritti +RecentSystemTiddlers: Frammenti modificati di recente, inclusi frammenti di sistema +RecentTiddlers: Frammenti modificati di recente +SessionTiddlers: Frammenti modificati da quando è stato caricato il wiki ShadowTiddlers: Frammenti nascosti +StoryList: Frammenti nella cronologia, escluso <$text text="$:/AdvancedSearch"/> SystemTags: Etichette di sistema SystemTiddlers: Frammenti di sistema TypedTiddlers: Frammenti di tipo non wiki-text diff --git a/languages/it-IT/GettingStarted.tid b/languages/it-IT/GettingStarted.tid index b7639b5f9..b6dd332f2 100644 --- a/languages/it-IT/GettingStarted.tid +++ b/languages/it-IT/GettingStarted.tid @@ -9,9 +9,10 @@ Prima di iniziare a memorizzare informazioni importanti in ~TiddlyWiki assicurat <div class="tc-control-panel"> -|<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | -|<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | -|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit-text tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | +|tc-table-no-border tc-first-col-min-width tc-first-link-nowrap|k +| <$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link>|<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> | +| <$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link>|<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> | +|^ <$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link><br><<lingo DefaultTiddlers/TopHint>>|<$edit tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// | </div> -Apri il [[pannello di controllo|$:/ControlPanel]] per altre opzioni. +Apri il [[pannello di controllo|$:/ControlPanel]] per altre opzioni. \ No newline at end of file diff --git a/languages/it-IT/Import.multids b/languages/it-IT/Import.multids index 50eb792d7..9fe6a4360 100644 --- a/languages/it-IT/Import.multids +++ b/languages/it-IT/Import.multids @@ -1,14 +1,33 @@ title: $:/language/Import/ -Listing/Cancel/Caption: Cancella +Editor/Import/Heading: Importa immagini e inseriscile nell'editor. +Imported/Hint: I frammenti seguenti sono stati importati: +Listing/Cancel/Caption: Annulla +Listing/Cancel/Warning: Vuoi annullare l'importazione? Listing/Hint: Questi frammenti sono pronti per essere importati: Listing/Import/Caption: Importa +Listing/Preview: Anteprima: +Listing/Preview/DiffFields: Diff (Campi) +Listing/Preview/Fields: Campi +Listing/Preview/Text: Testo +Listing/Preview/TextRaw: testo (non formattato) +Listing/Rename/CancelRename: Annulla +Listing/Rename/ConfirmRename: Rinomina frammento +Listing/Rename/OverwriteWarning: Un frammento con questo nome esiste già. +Listing/Rename/Prompt: Rinomina in: +Listing/Rename/Tooltip: Rinomina frammento prima dell'importazione Listing/Select/Caption: Seleziona Listing/Status/Caption: Stato Listing/Title/Caption: Titolo -Upgrader/Plugins/Suppressed/Incompatible: Plugin bloccato incompatibile o obsoleto -Upgrader/Plugins/Suppressed/Version: Plugin bloccato (a causa di un in arrivo <<incoming>> più vecchio di un esistente <<existing>>) +Upgrader/Plugins/Suppressed/Incompatible: Plugin bloccato incompatibile o obsoleto +Upgrader/Plugins/Suppressed/Version: Plugin bloccato (a causa di <<incoming>> in arrivo più vecchio di <<existing>> esistente) Upgrader/Plugins/Upgraded: Plugin aggiornato da <<incoming>> a <<upgraded>> Upgrader/State/Suppressed: Frammento in stato temporaneo bloccato -Upgrader/System/Suppressed: Frammento di sistema bloccato -Upgrader/ThemeTweaks/Created: Tema migrato da <$text text=<<from>>/> +Upgrader/System/Alert: Stai per importare un frammento che sovrascriverà un frammento del modulo principale. Questo non è raccomandato in quanto potrebbe rendere instabile il sistema. +Upgrader/System/Disabled: Frammento di sistema disabilitato. +Upgrader/System/Suppressed: Frammento di sistema bloccato. +Upgrader/System/Warning: Frammento del modulo principale. +Upgrader/ThemeTweaks/Created: Tweak del tema migrato da <$text text=<<from>>/> +Upgrader/Tiddler/Disabled: Frammento disabilitato. +Upgrader/Tiddler/Selected: Frammento selezionato. +Upgrader/Tiddler/Unselected: Frammento deselezionato. diff --git a/languages/it-IT/Misc.multids b/languages/it-IT/Misc.multids index 8a2701b6c..e69f0895f 100644 --- a/languages/it-IT/Misc.multids +++ b/languages/it-IT/Misc.multids @@ -1,32 +1,94 @@ title: $:/language/ +AboveStory/ClassicPlugin/Warning: Sembra che tu stia tentando di caricare un plugin progettato per ~TiddlyWiki Classic. Considera che [[questi plugin non funzionano con TiddlyWiki versione 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. Rilevati plug-in di ~TiddlyWiki Classic: BinaryWarning/Prompt: Questo frammento contiene dati binari -ClassicWarning/Hint: Questo frammento è scritto nel formato testo wiki di TiddlyWiki Classic e non è pienamente compatibile con TiddlyWiki versione 5. Vedi https://tiddlywiki.com/static/Upgrading.html per maggiori dettagli a riguardo +ClassicWarning/Hint: Questo frammento è scritto nel formato testo wiki di TiddlyWiki Classic e non è pienamente compatibile con TiddlyWiki versione 5. Vedi https://tiddlywiki.com/static/Upgrading.html per maggiori dettagli. ClassicWarning/Upgrade/Caption: Aggiorna CloseAll/Button: Chiudi tutto +ColourPicker/Recent: Recenti: +ConfirmAction: Vuoi procedere? ConfirmCancelTiddler: Vuoi annullare le modifiche al frammento "<$text text=<<title>>/>"? ConfirmDeleteTiddler: Vuoi cancellare il frammento "<$text text=<<title>>/>"? +ConfirmDeleteTiddlers: Sei sicuro di voler eliminare <<resultCount>> tiddler(s)? ConfirmEditShadowTiddler: Stai per editare un frammento nascosto. Ogni modifica dei default di sistema renderà i futuri aggiornamenti non semplici. Sei sicuro di voler editare "<$text text=<<title>>/>"? ConfirmOverwriteTiddler: Vuoi sovrascrivere il frammento "<$text text=<<title>>/>"? Count: Conteggio DefaultNewTiddlerTitle: Nuovo frammento -DropMessage: Rilascia qui (o usa il tasto 'Escape' per cancellare) -Encryption/Cancel: Cancella +Diffs/CountMessage: <<diff-count>> differenze +DropMessage: Rilascia qui (o usa il tasto 'Escape' per annullare) +Encryption/Cancel: Annulla Encryption/ConfirmClearPassword: Vuoi cancellare la password? Questa operazione rimuoverà la crittografia applicata quando salverai questo wiki Encryption/Password: Password Encryption/PasswordNoMatch: Le password non corrispondono -Encryption/PromptSetPassword: Imposta una nuova pasword per questo ~TiddlyWiki +Encryption/PromptSetPassword: Imposta una nuova pasword per questo TiddlyWiki Encryption/RepeatPassword: Ripeti password Encryption/SetPassword: Imposta password -Encryption/Username: NomeUtente -MissingTiddler/Hint: Frammento mancante "<$text text=<<currentTiddler>>/>" - clicca {{||$:/core/ui/Buttons/edit}} per crearlo +Encryption/Username: Nome utente +Error/Caption: Errore +Error/Filter: Errore filtro +Error/FilterRunPrefix: Errore filtro: prefisso sconosciuto per l'esecuzione del filtro +Error/FilterSyntax: Errore di sintassi nell'espressione del filtro +Error/FormatFilterOperator: Errore filtro: suffisso sconosciuto per l'operatore di filtro 'formato'. +Error/IsFilterOperator: Errore filtro: operando sconosciuto per l'operatore di filtro 'è'. +Error/LoadingPluginLibrary: Errore durante il caricamento della libreria dei plug-in +Error/NetworkErrorAlert: `<h2>''Errore di rete''</h2>Sembra che la connessione al server sia stata persa. Ciò potrebbe indicare un problema con la connessione di rete. Prova a ripristinare la connettività di rete prima di continuare.<br><br>''Tutte le modifiche non salvate verranno sincronizzate automaticamente al ripristino della connettività''.` +Error/PutEditConflict: File modificato sul server +Error/PutForbidden: Permesso negato +Error/PutUnauthorized: Autenticazione richiesta +Error/RecursiveTransclusion: Errore di transclusione ricorsivo nel widget di transclusione +Error/RetrievingSkinny: Errore durante il recupero dell'elenco dei frammenti +Error/SavingToTWEdit: Errore di salvataggio su TWEdit +Error/WhileSaving: Errore di salvataggio +Error/XMLHttpRequest: Codice di errore XMLHttpRequest +InternalJavaScriptError/Hint: Beh, questo è imbarazzante. Si consiglia di riavviare TiddlyWiki aggiornando il browser +InternalJavaScriptError/Title: Errore JavaScript interno +LayoutSwitcher/Description: Apri il pannello di selezione del layout +LazyLoadingWarning: <p>Tentativo di caricare contenuto esterno da ''<$text text={{!!_canonical_uri}}/>''</p><p>Se questo messaggio non scompare, il tipo di contenuto del frammento non corrisponde al tipo di contenuto esterno oppure potresti utilizzare un browser che non supporta il contenuto esterno per i wiki caricati come file autonomi. Vedi https://tiddlywiki.com/#ExternalText</p> +LoginToTiddlySpace: Login su TiddlySpace +Manager/Controls/FilterByTag/None: (nessuno) +Manager/Controls/FilterByTag/Prompt: Filtro per etichetta: +Manager/Controls/Order/Prompt: Ordine inverso +Manager/Controls/Search/Placeholder: Cerca +Manager/Controls/Search/Prompt: Cerca: +Manager/Controls/Show/Option/Tags: Etichette +Manager/Controls/Show/Option/Tiddlers: Frammenti +Manager/Controls/Show/Prompt: Mostra: +Manager/Controls/Sort/Prompt: Ordina per: +Manager/Item/Colour: Colore +Manager/Item/Fields: Campi +Manager/Item/Icon: Icone +Manager/Item/Icon/None: (nessuno) +Manager/Item/RawText: Testo non formattato +Manager/Item/Tags: Etichette +Manager/Item/WikifiedText: Testo wikificato +MissingTiddler/Hint: Frammento mancante "<$text text=<<currentTiddler>>/>" -- clicca {{||$:/core/ui/Buttons/edit}} per crearlo OfficialPluginLibrary: Libreria ufficiale plugin ~TiddlyWiki -PluginReloadWarning: Salva {{$:/core/ui/Buttons/save-wiki}} e ricarica {{$:/core/ui/Buttons/refresh}} per consentire alle modifiche ai plugin di avere effetto -RecentChanges/DateFormat: DD MM YYYY +OfficialPluginLibrary/Hint: La libreria ufficiale di plugin ~TiddlyWiki su tiddlywiki.com. Plugin, temi e language pack sono mantenuti dal core team. +PageTemplate/Description: il layout predefinito di ~TiddlyWiki +PageTemplate/Name: ~PageTemplate predefinito +PluginReloadWarning: Salva {{$:/core/ui/Buttons/save-wiki}} e ricarica {{$:/core/ui/Buttons/refresh}} per consentire alle modifiche ai plugin ~JavaScript di avere effetto +RecentChanges/DateFormat: DD MMM YYYY +Shortcuts/Input/Accept/Hint: Accetta l'elemento selezionato +Shortcuts/Input/AcceptVariant/Hint: Accetta l'elemento selezionato (variante) +Shortcuts/Input/AdvancedSearch/Hint: Apri il pannello ~RicercaAvanzata dal campo di ricerca della barra laterale +Shortcuts/Input/Cancel/Hint: Cancella il campo di immissione +Shortcuts/Input/Down/Hint: Seleziona il prossimo elemento +Shortcuts/Input/Tab-Left/Hint: Seleziona il tab precedente +Shortcuts/Input/Tab-Right/Hint: Seleziona il prossimo tab +Shortcuts/Input/Up/Hint: Seleziona l'elemento precedente +Shortcuts/SidebarLayout/Hint: Modifica il layout della barra laterale +Switcher/Subtitle/language: Cambia lingua +Switcher/Subtitle/layout: Cambia layout +Switcher/Subtitle/palette: Cambia paletta +Switcher/Subtitle/theme: Cambia tema SystemTiddler/Tooltip: Questo è un frammento di sistema +SystemTiddlers/Include/Prompt: Includi i frammenti di sistema TagManager/Colour/Heading: Colore TagManager/Count/Heading: Conteggio TagManager/Icon/Heading: Icona +TagManager/Icons/None: Nessuno TagManager/Info/Heading: Info TagManager/Tag/Heading: Etichetta -UnsavedChangesWarning: Ci sono modifiche non salvate in ~TiddlyWiki +Tiddler/DateFormat: DD MMM YYYY alle hh12:0mmam +UnsavedChangesWarning: Ci sono modifiche non salvate in TiddlyWiki +Yes: Sì diff --git a/languages/it-IT/Modals/Download.tid b/languages/it-IT/Modals/Download.tid index efeddc4fc..da49c74b6 100644 --- a/languages/it-IT/Modals/Download.tid +++ b/languages/it-IT/Modals/Download.tid @@ -6,8 +6,8 @@ help: https://tiddlywiki.com/static/DownloadingChanges.html Il tuo browser supporta solo il salvataggio manuale. -Per salvare le modifiche al tuo wiki, clicca con il tasto destro del mouse sul link di download mostrato sotto e seleziona "Download file" o "Save file", e poi scegli la cartella ed il nome del file. +Per salvare le modifiche al tuo wiki, clicca con il tasto destro del mouse sul link di download mostrato sotto e seleziona "Scarica file" o "Salva file", e poi scegli la cartella ed il nome del file. //Puoi velocizzare l'operazione cliccando il link con il tasto control (Windows) o il tasto options/alt (Mac OS X). Non ti verrà chiesto il nome della cartella e del file, ma il tuo browser non è in grado di assegnare un nome riconoscibile -- potrebbe essere necessario rinominare il file per aggiungere l'estensione `.html` prima di poter fare qualcosa di utile.// -Sugli smartphone che non consentono di scaricare file, puoi memorizzare nei bookmark il link, successivamente sincronizzare i bookmark con un computer desktop su cui poi salvare il file normalmente. +Sugli smartphone che non consentono di scaricare file, puoi memorizzare nei bookmark il link, successivamente sincronizzare i bookmark con un computer desktop su cui poi salvare il file normalmente. \ No newline at end of file diff --git a/languages/it-IT/Modals/SaveInstructions.tid b/languages/it-IT/Modals/SaveInstructions.tid index 58dec62cd..f2a5f6d92 100644 --- a/languages/it-IT/Modals/SaveInstructions.tid +++ b/languages/it-IT/Modals/SaveInstructions.tid @@ -8,7 +8,7 @@ Le modifiche a questo wiki devono essere salvate come un file ~TiddlyWiki HTML. !!! Browser su desktop -# Seleziona ''Save As'' dal menu ''File'' +# Seleziona ''Salva con nome'' dal menu ''File'' # Scegli la posizione ed un nome file #* Alcuni browser richiedono che sia indicato esplicitamente che il file deve essere salvato con il formato ''Webpage, solo HTML'' o qualcosa di simile # Chiudi questo tab @@ -19,4 +19,4 @@ Le modifiche a questo wiki devono essere salvate come un file ~TiddlyWiki HTML. #* Se hai attivato iCloud o Google Sync allora il bookmark sarà automaticamente sincronizzato con il tuo desktop dove potrai aprire il link e salvare il wiki come sopra # Chiudi questo tab -//Se apri ancora il bookmark con Mobile Safari vedrai ancora questo messaggio. Se desideri andare avanti ed utilizzare il file, clicca semplicemente il bottone ''close'' sotto// +//Se riapri il bookmark con Mobile Safari vedrai ancora questo messaggio. Se desideri proseguire ed utilizzare il file, clicca semplicemente il pulsante ''chiudi'' qui sotto// diff --git a/languages/it-IT/NewJournal.multids b/languages/it-IT/NewJournal.multids index bbf072b6b..9bcec5d14 100644 --- a/languages/it-IT/NewJournal.multids +++ b/languages/it-IT/NewJournal.multids @@ -1,4 +1,4 @@ title: $:/config/NewJournal/ Tags: Diario -Title: DD MM YYYY +Title: DD MMM YYYY diff --git a/languages/it-IT/Notifications.multids b/languages/it-IT/Notifications.multids index 724e1766f..81bfadd3f 100644 --- a/languages/it-IT/Notifications.multids +++ b/languages/it-IT/Notifications.multids @@ -1,4 +1,6 @@ title: $:/language/Notifications/ +CopiedToClipboard/Failed: Impossibile copiare negli appunti! +CopiedToClipboard/Succeeded: Copiato negli appunti! Save/Done: Wiki salvato Save/Starting: Inizio salvataggio wiki diff --git a/languages/it-IT/Search.multids b/languages/it-IT/Search.multids index a604f2c8e..efcf9385a 100644 --- a/languages/it-IT/Search.multids +++ b/languages/it-IT/Search.multids @@ -6,6 +6,10 @@ Filter/Caption: Filtro Filter/Hint: Cerca attraverso un [[filtro|https://tiddlywiki.com/static/Filters.html]] Filter/Matches: //<small><<resultCount>> corrispondenze</small>// Matches: //<small><<resultCount>> corrispondenze</small>// +Matches/All: Tutte le corrispondenze: +Matches/Title: Corrispondenze titolo: +Search: Ricerca +Search/TooShort: Testo di ricerca troppo corto Shadows/Caption: Nascosti Shadows/Hint: Cerca frammenti nascosti Shadows/Matches: //<small><<resultCount>> corrispondenze</small>// diff --git a/languages/it-IT/SideBar.multids b/languages/it-IT/SideBar.multids index 5cfb8f2f5..523a2e805 100644 --- a/languages/it-IT/SideBar.multids +++ b/languages/it-IT/SideBar.multids @@ -1,6 +1,7 @@ title: $:/language/SideBar/ All/Caption: Tutti +Caption: Barra laterale Contents/Caption: Indice Drafts/Caption: Bozze Missing/Caption: Mancanti @@ -11,6 +12,6 @@ Recent/Caption: Recenti Shadows/Caption: Nascosti System/Caption: Sistema Tags/Caption: Etichette -Tags/Untagged/Caption: Non categorizzati +Tags/Untagged/Caption: Non etichettati Tools/Caption: Strumenti Types/Caption: Tipi diff --git a/languages/it-IT/Snippets/ListByTag.tid b/languages/it-IT/Snippets/ListByTag.tid new file mode 100644 index 000000000..6c2d264fd --- /dev/null +++ b/languages/it-IT/Snippets/ListByTag.tid @@ -0,0 +1,5 @@ +title: $:/language/Snippets/ListByTag +tags: $:/tags/TextEditor/Snippet +caption: Elenco di frammenti per etichetta + +<<list-links "[tag[task]sort[title]]">> diff --git a/languages/it-IT/Snippets/MacroDefinition.tid b/languages/it-IT/Snippets/MacroDefinition.tid new file mode 100644 index 000000000..ab6e4c8a7 --- /dev/null +++ b/languages/it-IT/Snippets/MacroDefinition.tid @@ -0,0 +1,7 @@ +title: $:/language/Snippets/MacroDefinition +tags: $:/tags/TextEditor/Snippet +caption: Definizione macro + +\define macroName(param1:"default value",param2) +Testo della macro +\end diff --git a/languages/it-IT/Snippets/Table4x3.tid b/languages/it-IT/Snippets/Table4x3.tid new file mode 100644 index 000000000..e2af94497 --- /dev/null +++ b/languages/it-IT/Snippets/Table4x3.tid @@ -0,0 +1,8 @@ +title: $:/language/Snippets/Table4x3 +tags: $:/tags/TextEditor/Snippet +caption: Tabella con 4 colonne e 3 righe + +|! |!Alpha |!Beta |!Gamma |!Delta | +|!Uno | | | | | +|!Due | | | | | +|!Tre | | | | | diff --git a/languages/it-IT/Snippets/TableOfContents.tid b/languages/it-IT/Snippets/TableOfContents.tid new file mode 100644 index 000000000..6500af9bf --- /dev/null +++ b/languages/it-IT/Snippets/TableOfContents.tid @@ -0,0 +1,9 @@ +title: $:/language/Snippets/TableOfContents +tags: $:/tags/TextEditor/Snippet +caption: Indice + +<div class="tc-table-of-contents"> + +<<toc-selective-expandable 'TableOfContents'>> + +</div> \ No newline at end of file diff --git a/languages/it-IT/ThemeTweaks.multids b/languages/it-IT/ThemeTweaks.multids new file mode 100644 index 000000000..9cdfea069 --- /dev/null +++ b/languages/it-IT/ThemeTweaks.multids @@ -0,0 +1,41 @@ +title: $:/language/ThemeTweaks/ + +Metrics: Dimensioni +Metrics/BodyFontSize: Dimensione carattere per il corpo dei frammenti +Metrics/BodyLineHeight: Altezza linea per il corpo dei frammenti +Metrics/FontSize: Dimensione carattere +Metrics/LineHeight: Altezza linea +Metrics/SidebarBreakpoint: Punto di interruzione della barra laterale +Metrics/SidebarBreakpoint/Hint: la larghezza minima della pagina alla quale la cronologia<br>e la barra laterale appariranno fianco a fianco +Metrics/SidebarWidth: Larghezza barra laterale +Metrics/SidebarWidth/Hint: larghezza della barra laterale in layout fluido-fisso +Metrics/StoryLeft: Posizione cronologia a sinistra +Metrics/StoryLeft/Hint: quanto dista il margine sinistro della cronologia<br>(area frammenti) dalla sinistra della pagina +Metrics/StoryRight: Cronologia a destra +Metrics/StoryRight/Hint: quanto dista il margine sinistro della barra <br>laterale dalla sinistra della pagina +Metrics/StoryTop: Posizione superiore della cronologia +Metrics/StoryTop/Hint: quanto dista il margine superiore della <br>cronologia dall'inizio della pagina +Metrics/StoryWidth: Larghezza cronologia +Metrics/StoryWidth/Hint: larghezza complessiva della cronologia +Metrics/TiddlerWidth: Larghezza frammenti +Metrics/TiddlerWidth/Hint: all'interno della cronologia +Options: Opzioni +Options/CodeWrapping: Racchiudi le righe lunghe in blocchi di codice +Options/SidebarLayout: Layout barra laterale +Options/SidebarLayout/Fixed-Fluid: Cronologia fissa, barra laterale fluida +Options/SidebarLayout/Fluid-Fixed: Cronologia fluida, barra laterale fissa +Options/StickyTitles: Titoli fissi +Options/StickyTitles/Hint: Fa in modo che i titoli dei frammenti "si fissino" alla parte superiore della finestra del browser +Settings: Impostazioni +Settings/BackgroundImage: Immagine di sfondo della pagina +Settings/BackgroundImageAttachment: Allegato immagine di sfondo della pagina +Settings/BackgroundImageAttachment/Fixed: Fissato alla finestra +Settings/BackgroundImageAttachment/Scroll: Scorre con i frammenti +Settings/BackgroundImageSize: Dimensioni dell'immagine di sfondo della pagina +Settings/BackgroundImageSize/Contain: Contiene +Settings/BackgroundImageSize/Cover: Copre +Settings/CodeFontFamily: Famiglia di caratteri del codice +Settings/EditorFontFamily: Famiglia di caratteri dell'editor +Settings/FontFamily: Famiglia di caratteri +ThemeTweaks: Modifiche al tema +ThemeTweaks/Hint: Puoi modificare alcuni aspetti del tema ''Vanilla''. From 04810667e6e5cb788b52652e6adb84a1ae0330bc Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 2 Jan 2023 15:47:24 +0000 Subject: [PATCH 196/937] It's 2023 --- core/copyright.tid | 2 +- license | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/copyright.tid b/core/copyright.tid index a7b2fa7ac..ce0d6b02f 100644 --- a/core/copyright.tid +++ b/core/copyright.tid @@ -4,7 +4,7 @@ type: text/plain TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com) Copyright (c) 2004-2007, Jeremy Ruston -Copyright (c) 2007-2022, UnaMesa Association +Copyright (c) 2007-2023, UnaMesa Association All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/license b/license index bfeff44da..d15740df2 100644 --- a/license +++ b/license @@ -1,7 +1,7 @@ TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com) Copyright (c) 2004-2007, Jeremy Ruston -Copyright (c) 2007-2022, UnaMesa Association +Copyright (c) 2007-2023, UnaMesa Association All rights reserved. Redistribution and use in source and binary forms, with or without From b33b41e1fc586fd6bee3d789372898194125e063 Mon Sep 17 00:00:00 2001 From: Pippo Peppo <abc@gmx.ch> Date: Tue, 3 Jan 2023 11:16:42 +0100 Subject: [PATCH 197/937] Signing the CLA (#7172) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 6e5b69666..d3065b376 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -511,3 +511,5 @@ cs84285, @cs8425, 2022/12/30 Nick Bell, @newmedicine, 2023/01/01 Frank Kmiec, @fkmiec, 2023-01-01 + +Pippo Peppo, @pippep, 2023-01-03 From fb8df2994829a7c6ae4e1060e56c3741dcdb389f Mon Sep 17 00:00:00 2001 From: Pippo Peppo <abc@gmx.ch> Date: Tue, 3 Jan 2023 11:17:10 +0100 Subject: [PATCH 198/937] Fix and enhance italian translation (#7173) * Fixed and enhanced italian translation * Fixed and enhanced italian translation * Delete type: text/vnd.tiddlywiki * Delete type: text/vnd.tiddlywiki * Update and rename application%2Fjavascript.tid to application_javascript.tid * Update and rename application%2Fjson.tid to application_json.tid * Update and rename application%2Fx-tiddler-dictionary.tid to application_x_tiddler_dictionary.tid * Update and rename image%2Fgif.tid to image_gif.tid * Update and rename image%2Fjpeg.tid to image_jpeg.tid * Update and rename image%2Fpng.tid to image_png.tid * Update and rename image%2Fsvg%2Bxml.tid to image_svg_xml.tid * Update and rename image%2Fx-icon.tid to image_x-icon.tid * Update and rename text%2Fcss.tid to text_css.tid * Update and rename text%2Fhtml.tid to text_html.tid * Update and rename text%2Fplain.tid to text_plain.tid * Update and rename text%2Fvnd.tiddlywiki.tid to text_vnd.tiddlywiki.tid * Update and rename text%2Fx-tiddlywiki.tid to text_x-tiddlywiki.tid * Fixed and enhanced italian translation * Fixed and enhanced italian translation * Changed en-GB to ''en-GB'' * Fixed and enhanced italian translation * Fixed and enhanced italian translation * Fixed and enhanced italian translation * Fixed and enhanced italian translation * Update NewJournal.multids * Create NewJournalTags.tid * Delete Advanced/Matches * Update SideBar.multids * Fixed and enhanced italian translation * Fixed and enhanced italian translation --- languages/it-IT/Buttons.multids | 23 ++++++------ languages/it-IT/ControlPanel.multids | 36 +++++++++---------- languages/it-IT/CoreReadMe.tid | 2 +- languages/it-IT/Docs/ModuleTypes.multids | 8 ++--- languages/it-IT/Docs/PaletteColours.multids | 30 ++++++++-------- languages/it-IT/EditTemplate.multids | 4 ++- languages/it-IT/Fields.multids | 4 +-- languages/it-IT/Import.multids | 3 +- languages/it-IT/Misc.multids | 20 ++++++----- languages/it-IT/Modals/Download.tid | 3 +- languages/it-IT/Modals/SaveInstructions.tid | 1 - languages/it-IT/NewJournal.multids | 2 +- languages/it-IT/NewJournalTags.tid | 3 ++ languages/it-IT/Search.multids | 1 - languages/it-IT/SideBar.multids | 1 + languages/it-IT/ThemeTweaks.multids | 11 +++--- languages/it-IT/TiddlerInfo.multids | 2 +- ...ascript.tid => application_javascript.tid} | 1 + ...cation%2Fjson.tid => application_json.tid} | 1 + ...d => application_x_tiddler_dictionary.tid} | 1 + .../Types/{image%2Fgif.tid => image_gif.tid} | 1 + .../{image%2Fjpeg.tid => image_jpeg.tid} | 1 + .../Types/{image%2Fpng.tid => image_png.tid} | 1 + ...mage%2Fsvg%2Bxml.tid => image_svg_xml.tid} | 1 + .../{image%2Fx-icon.tid => image_x-icon.tid} | 3 +- .../Types/{text%2Fcss.tid => text_css.tid} | 3 +- .../Types/{text%2Fhtml.tid => text_html.tid} | 1 + .../{text%2Fplain.tid => text_plain.tid} | 3 +- ...tiddlywiki.tid => text_vnd.tiddlywiki.tid} | 3 +- ...x-tiddlywiki.tid => text_x-tiddlywiki.tid} | 3 +- 30 files changed, 100 insertions(+), 77 deletions(-) create mode 100644 languages/it-IT/NewJournalTags.tid rename languages/it-IT/Types/{application%2Fjavascript.tid => application_javascript.tid} (90%) rename languages/it-IT/Types/{application%2Fjson.tid => application_json.tid} (88%) rename languages/it-IT/Types/{application%2Fx-tiddler-dictionary.tid => application_x_tiddler_dictionary.tid} (91%) rename languages/it-IT/Types/{image%2Fgif.tid => image_gif.tid} (87%) rename languages/it-IT/Types/{image%2Fjpeg.tid => image_jpeg.tid} (87%) rename languages/it-IT/Types/{image%2Fpng.tid => image_png.tid} (87%) rename languages/it-IT/Types/{image%2Fsvg%2Bxml.tid => image_svg_xml.tid} (90%) rename languages/it-IT/Types/{image%2Fx-icon.tid => image_x-icon.tid} (65%) rename languages/it-IT/Types/{text%2Fcss.tid => text_css.tid} (59%) rename languages/it-IT/Types/{text%2Fhtml.tid => text_html.tid} (87%) rename languages/it-IT/Types/{text%2Fplain.tid => text_plain.tid} (63%) rename languages/it-IT/Types/{text%2Fvnd.tiddlywiki.tid => text_vnd.tiddlywiki.tid} (66%) rename languages/it-IT/Types/{text%2Fx-tiddlywiki.tid => text_x-tiddlywiki.tid} (64%) diff --git a/languages/it-IT/Buttons.multids b/languages/it-IT/Buttons.multids index 32ad4ebab..d9790b74e 100644 --- a/languages/it-IT/Buttons.multids +++ b/languages/it-IT/Buttons.multids @@ -5,7 +5,7 @@ AdvancedSearch/Hint: Ricerca avanzata Bold/Caption: Grassetto Bold/Hint: Formatta in grassetto la selezione Cancel/Caption: Annulla -Cancel/Hint: Annulla i cambiamenti a questo frammento +Cancel/Hint: Annulla le modifiche di questo frammento Clear/Caption: Cancella Clear/Hint: Sostituisci l'immagine con una tinta unita Clone/Caption: Clona @@ -89,9 +89,10 @@ Italic/Caption: Corsivo Italic/Hint: Formatta in corsivo la selezione Language/Caption: Lingua Language/Hint: Scegli la lingua dell'interfaccia +LayoutSwitcher/Caption: Layout LayoutSwitcher/Hint: Apri il pannello di selezione layout LineWidth/Caption: Spessore linea -LineWidth/Hint: Imposta lo spessore linea per il disegno +LineWidth/Hint: Imposta lo spessore linea di disegno Link/Caption: Link Link/Hint: Crea link wikitext Linkify/Caption: Wikilink @@ -133,7 +134,7 @@ Permalink/Hint: Imposta la barra degli indirizzi del browser a un link diretto a Permaview/Caption: Permaview Permaview/Hint: Imposta la barra degli indirizzi del browser a un link diretto a tutti i frammenti in questa storia Picture/Caption: Immagine -Picture/Hint: Inserisci immagine +Picture/Hint: Inserisci un'immagine Preview/Caption: Anteprima Preview/Hint: Mostra il pannello di anteprima PreviewType/Caption: Tipo di anteprima @@ -147,7 +148,7 @@ Refresh/Hint: Ricarica completamente il wiki RotateLeft/Caption: Ruota a sinistra RotateLeft/Hint: Ruota l'immagine di 90 gradi a sinistra Save/Caption: Ok -Save/Hint: Conferma i cambiamenti a questo frammento +Save/Hint: Conferma le modifiche di questo frammento SaveWiki/Caption: Salva le modifiche SaveWiki/Hint: Salva le modifiche ShowSideBar/Caption: Mostra la barra laterale @@ -166,7 +167,7 @@ Stamp/New/Title: Nome come mostrato nel menu StoryView/Caption: Visualizzazione "storia" StoryView/Hint: Scegli la visualizzazione "storia" Strikethrough/Caption: barrato -Strikethrough/Hint: Formatta come barrata la selezione +Strikethrough/Hint: Barra la selezione Subscript/Caption: pedice Subscript/Hint: Formatta come pedice la selezione Superscript/Caption: apice @@ -175,12 +176,12 @@ TagManager/Caption: Gestore delle etichette TagManager/Hint: Apri il gestore delle etichette Theme/Caption: Tema Theme/Hint: Scegli il tema grafico -Timestamp/Caption: Timestamps -Timestamp/Hint: Scegli se le modifiche aggiornano i timestamps -Timestamp/Off/Caption: I timestamps sono disattivati -Timestamp/Off/Hint: Non aggiornare i timestamps alla modifica dei frammenti -Timestamp/On/Caption: I timestamps sono attivati -Timestamp/On/Hint: Aggiornare i timestamps alla modifica dei frammenti +Timestamp/Caption: Timestamp +Timestamp/Hint: Scegli se le modifiche aggiornano i timestamp +Timestamp/Off/Caption: I timestamp sono disattivati +Timestamp/Off/Hint: Non aggiornare i timestamp alla modifica dei frammenti +Timestamp/On/Caption: I timestamp sono attivati +Timestamp/On/Hint: Aggiornare i timestamp alla modifica dei frammenti ToggleSidebar/Hint: Attiva o disattiva la visibilità della barra laterale Transcludify/Caption: Trasclusione Transcludify/Hint: Racchiudi la selezione tra parentesi graffe diff --git a/languages/it-IT/ControlPanel.multids b/languages/it-IT/ControlPanel.multids index 597cade35..dd6079921 100644 --- a/languages/it-IT/ControlPanel.multids +++ b/languages/it-IT/ControlPanel.multids @@ -24,12 +24,12 @@ Basics/Subtitle/Prompt: Sottotitolo Basics/SystemTiddlers/Prompt: Numero di frammenti di sistema Basics/Tags/Prompt: Numero di etichette Basics/Tiddlers/Prompt: Numero di frammenti -Basics/Title/Prompt: Il titolo di questo ~TiddlyWiki: +Basics/Title/Prompt: Titolo di questo ~TiddlyWiki: Basics/Username/Prompt: Nome utente con cui firmare le modifiche Basics/Version/Prompt: Versione di ~TiddlyWiki: -Cascades/Caption: Cascate +Cascades/Caption: Sequenze Cascades/Hint: Queste regole globali vengono utilizzate per scegliere dinamicamente determinati modelli. Il risultato della sequenza è il risultato del primo filtro nella sequenza che restituisce un risultato -Cascades/TagPrompt: Filtri etichettati <$macrocall $name="tag" tag=<<currentTiddler>>/> +Cascades/TagPrompt: Filtri etichettati con <$macrocall $name="tag" tag=<<currentTiddler>>/> EditorTypes/Caption: Tipi di editor EditorTypes/Editor/Caption: Editor EditorTypes/Hint: Questi frammenti definiscono quale editor utilizzare per modificare tipi specifici di frammenti. @@ -80,6 +80,7 @@ Plugins/ClosePluginLibrary: Chiudi la libreria dei plugin Plugins/Disable/Caption: Disabilita Plugins/Disable/Hint: Disabilita questo plugin al ricaricamento della pagina Plugins/Disabled/Status: (disabilitato) +Plugins/Downgrade/Caption: Downgrade Plugins/Empty/Hint: Nessuno Plugins/Enable/Caption: Abilita Plugins/Enable/Hint: Abilita questo plugin al ricaricamento della pagina @@ -97,7 +98,6 @@ Plugins/Plugins/Hint: Plugin Plugins/PluginWillRequireReload: (richiede il ricaricamento) Plugins/Reinstall/Caption: Reinstalla Plugins/SubPluginPrompt: Con <<count>> sub-plugin disponibili -Plugins/Theme/Prompt: Temi Plugins/Themes/Caption: Temi Plugins/Themes/Hint: Plugin dei temi Plugins/Update/Caption: Aggiornamento @@ -105,10 +105,10 @@ Plugins/Updates/Caption: Aggiornamenti Plugins/Updates/Hint: Aggiornamenti disponibili per i plugin installati Plugins/Updates/UpdateAll/Caption: Aggiorna <<update-count>> plugin Saving/Caption: Salvataggio -Saving/DownloadSaver/AutoSave/Description: Consenti il salvataggio automatico per il Saver scaricato -Saving/DownloadSaver/AutoSave/Hint: Abilita il salvataggio automatico per il Saver di download -Saving/DownloadSaver/Caption: Saver di download -Saving/DownloadSaver/Hint: Queste impostazioni si applicano al Saver di download compatibile con HTML-5 +Saving/DownloadSaver/AutoSave/Description: Consenti il salvataggio automatico per il Saver Download +Saving/DownloadSaver/AutoSave/Hint: Abilita il salvataggio automatico per il Saver Download +Saving/DownloadSaver/Caption: Saver Download +Saving/DownloadSaver/Hint: Queste impostazioni si applicano al Saver Download compatibile con HTML-5 Saving/General/Caption: Generale Saving/General/Hint: Queste impostazioni si applicano a tutti i Saver caricati Saving/GitService/Branch: Ramo di destinazione per il salvataggio @@ -127,18 +127,18 @@ Saving/GitService/UserName: Nome utente Saving/Heading: Salvataggio Saving/Hint: Impostazioni utilizzate per salvare l'intero TiddlyWiki come un singolo file tramite un modulo di salvataggio (Saver) Saving/TiddlySpot/Advanced/Heading: Impostazioni avanzate -Saving/TiddlySpot/BackupDir: Directory di backup +Saving/TiddlySpot/BackupDir: Cartella di backup Saving/TiddlySpot/Backups: Backups Saving/TiddlySpot/Caption: Saver ~TiddlySpot Saving/TiddlySpot/ControlPanel: Pannello di controllo ~TiddlySpot -Saving/TiddlySpot/Description: Queste impostazioni sono usate solo per il salvataggio su [[TiddlySpot|http://tiddlyspot.com]] o su un server remoto compatibile. Vedi [[qui|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] per informazioni sulla configurazione di salvataggio di ~TiddlySpot e ~TiddlyHost. +Saving/TiddlySpot/Description: Queste impostazioni sono usate solo per salvare su [[TiddlySpot|http://tiddlyspot.com]] o su un server remoto compatibile. Vedi [[qui|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] per informazioni sulla configurazione di salvataggio di ~TiddlySpot e ~TiddlyHost. Saving/TiddlySpot/Filename: Nome del file di upload Saving/TiddlySpot/Heading: ~TiddlySpot Saving/TiddlySpot/Hint: //L'indirizzo del server di default è `http://<wikiname>.tiddlyspot.com/store.cgi` e può essere modificato per utilizzare un indirizzo server personalizzato, p.es. `http://example.com/store.php`.// Saving/TiddlySpot/Password: Password Saving/TiddlySpot/ReadOnly: Tieni presente che [[TiddlySpot|http://tiddlyspot.com]] non consente più la creazione di nuovi siti. Per i nuovi siti, puoi utilizzare [[TiddlyHost|https://tiddlyhost.com]], un nuovo servizio di hosting che sostituisce ~TiddlySpot. Saving/TiddlySpot/ServerURL: Indirizzo server -Saving/TiddlySpot/UploadDir: Directory di upload +Saving/TiddlySpot/UploadDir: Cartella di upload Saving/TiddlySpot/UserName: Nome Wiki Settings/AutoSave/Caption: Salvataggio automatico Settings/AutoSave/Disabled/Description: Non salvare le modifiche in automatico @@ -186,9 +186,9 @@ Settings/PerformanceInstrumentation/Caption: Strumentazione delle prestazioni Settings/PerformanceInstrumentation/Description: Abilita la strumentazione delle prestazioni Settings/PerformanceInstrumentation/Hint: Visualizza le statistiche sulle prestazioni nella console per sviluppatori del browser. Richiede la ricarica per avere effetto Settings/TitleLinks/Caption: Titoli frammenti -Settings/TitleLinks/Hint: Mostra opzionalmente i titoli dei frammenti come collegamenti -Settings/TitleLinks/No/Description: Non mostrare i titoli dei frammenti come collegamenti -Settings/TitleLinks/Yes/Description: Mostra i titoli dei frammenti come collegamenti +Settings/TitleLinks/Hint: Mostra opzionalmente i titoli dei frammenti come link +Settings/TitleLinks/No/Description: Non mostrare i titoli dei frammenti come link +Settings/TitleLinks/Yes/Description: Mostra i titoli dei frammenti come link Settings/ToolbarButtons/Caption: Pulsanti della barra strumenti Settings/ToolbarButtons/Hint: Aspetto predefinito dei pulsanti della barra strumenti: Settings/ToolbarButtons/Icons/Description: Mostra icona @@ -198,7 +198,7 @@ Settings/ToolbarButtonStyle/Hint: Scegli lo stile dei pulsanti della barra strum Settings/ToolbarButtonStyle/Styles/Borderless: Senza bordi Settings/ToolbarButtonStyle/Styles/Boxed: Incorniciati Settings/ToolbarButtonStyle/Styles/Rounded: Arrotondati -StoryTiddler/Caption: Tiddler storia +StoryTiddler/Caption: Frammento cronologia StoryTiddler/Hint: Questa sequenza di regole viene utilizzata per scegliere dinamicamente il modello per la visualizzazione di un frammento nella cronologia. StoryView/Caption: Vista cronologia StoryView/Prompt: Vista corrente: @@ -209,7 +209,7 @@ Stylesheets/Restore/Caption: Ripristina Theme/Caption: Tema Theme/Prompt: Tema corrente: TiddlerColour/Caption: Colore frammento -TiddlerColour/Hint: Questa sequenza di regole viene utilizzata per scegliere dinamicamente il colore di un frammento (utilizzato per l'icona e l'etichetta associate). +TiddlerColour/Hint: Questa sequenza di regole viene utilizzata per scegliere dinamicamente il colore di un frammento (utilizzato per l'icona e per l'etichetta associate). TiddlerFields/Caption: Campi frammento TiddlerFields/Hint: Questa è la serie completa dei TiddlerFields utilizzati in questo wiki (sono inclusi i frammenti di sistema ed esclusi i frammenti nascosti). TiddlerIcon/Caption: Icona frammento @@ -217,10 +217,10 @@ TiddlerIcon/Hint: Questa sequenza di regole viene utilizzata per scegliere dinam Toolbars/Caption: Barre degli strumenti Toolbars/EditorToolbar/Caption: Barra strumenti editor Toolbars/EditorToolbar/Hint: Scegli quali pulsanti mostrare nella barra degli strumenti dell'editor. Nota che alcuni pulsanti appariranno solo durante la modifica di frammenti di un certo tipo. Trascina e rilascia per modificare l'ordine -Toolbars/EditToolbar/Caption: Barra strumenti di modifica +Toolbars/EditToolbar/Caption: Barra strumenti modifica Toolbars/EditToolbar/Hint: Scegli quali pulsanti mostrare nella modalità modifica frammenti. Trascina e rilascia per modificare l'ordine Toolbars/Hint: Scegli quali pulsanti mostrare nella barra strumenti -Toolbars/PageControls/Caption: Barra strumenti di pagina +Toolbars/PageControls/Caption: Barra strumenti pagina Toolbars/PageControls/Hint: Scegli quali pulsanti mostrare nella barra strumenti della pagina principale. Trascina e rilascia per modificare l'ordine Toolbars/ViewToolbar/Caption: Barra strumenti visualizzazione Toolbars/ViewToolbar/Hint: Scegli quali pulsanti mostrare per i frammenti in modalità visualizzazione. Trascina e rilascia per modificare l'ordine diff --git a/languages/it-IT/CoreReadMe.tid b/languages/it-IT/CoreReadMe.tid index 3401d61b0..78ebd0d8d 100644 --- a/languages/it-IT/CoreReadMe.tid +++ b/languages/it-IT/CoreReadMe.tid @@ -5,4 +5,4 @@ Questo plugin contiene componenti del nucleo di TiddlyWiki tra cui: * Moduli codice JavaScript * Icone * Modelli necessari per creare l'interfaccia utente di TiddlyWiki -* Traduzione Inglese (en-GB) per le stringhe di testo utilizzate dal nucleo +* Traduzione Inglese (''en-GB'') per le stringhe di testo utilizzate dal nucleo diff --git a/languages/it-IT/Docs/ModuleTypes.multids b/languages/it-IT/Docs/ModuleTypes.multids index 73a9fe6b9..c3e1a2c7a 100644 --- a/languages/it-IT/Docs/ModuleTypes.multids +++ b/languages/it-IT/Docs/ModuleTypes.multids @@ -1,15 +1,15 @@ title: $:/language/Docs/ModuleTypes/ -allfilteroperator: Un sottooperatore per l'operatore di filtro ''tutti''. +allfilteroperator: Un sottooperatore per l'operatore di filtro ''all''. animation: Animazioni che possono essere utilizzate con RevealWidget. authenticator: Definisce il modo in cui le richieste vengono autenticate dal server HTTP integrato. bitmapeditoroperation: Un'operazione della barra degli strumenti dell'editor bitmap. command: Comandi che possono essere eseguiti sotto Node.js. -config: Data da inserire nel `$tw.config`. +config: Dati da inserire in `$tw.config`. filteroperator: I singoli metodi degli operatori di filtro. -global: Data globale da inserire in `$tw`. +global: Dati globali da inserire in `$tw`. info: Pubblica informazioni di sistema tramite lo pseudo-plugin [[$:/temp/info-plugin]]. -isfilteroperator: Operandi per l'operatore di filtro ''è''. +isfilteroperator: Operandi per l'operatore di filtro ''is''. library: Tipo di modulo generico per moduli JavaScript generici. macro: Definizioni macro JavaScript. parser: Parser per differenti tipi di contenuto. diff --git a/languages/it-IT/Docs/PaletteColours.multids b/languages/it-IT/Docs/PaletteColours.multids index af83739fe..af937dee8 100644 --- a/languages/it-IT/Docs/PaletteColours.multids +++ b/languages/it-IT/Docs/PaletteColours.multids @@ -3,7 +3,7 @@ title: $:/language/Docs/PaletteColours/ alert-background: Sfondo allarme alert-border: Bordo allarme alert-highlight: Evidenziazione allarme -alert-muted-foreground: Primo piano allarme disattivato +alert-muted-foreground: Primo piano allarme attenuato background: Sfondo generale blockquote-bar: Barra blocco citazione button-background: Default sfondo pulsante @@ -34,13 +34,13 @@ menubar-foreground: Primo piano barra dei menu message-background: Sfondo casella messaggio message-border: Bordo casella messaggio message-foreground: Primo piano casella messaggio -modal-backdrop: Backdrop wizard -modal-background: Sfondo wizard -modal-border: Bordo wizard -modal-footer-background: Sfondo piè di pagina wizard -modal-footer-border: Bordo piè di pagina wizard -modal-header-border: Bordo intestazione wizard -muted-foreground: Primo piano generale muto +modal-backdrop: Backdrop finestra modale +modal-background: Sfondo finestra modale +modal-border: Bordo finestra modale +modal-footer-background: Sfondo piè di pagina finestra modale +modal-footer-border: Bordo piè di pagina finestra modale +modal-header-border: Bordo intestazione finestra modale +muted-foreground: Primo piano generale attenuato notification-background: Sfondo notifica notification-border: Bordo notifica page-background: Sfondo pagina @@ -54,8 +54,8 @@ sidebar-controls-foreground: Primo piano controlli barra laterale sidebar-controls-foreground-hover: Primo piano controlli barra laterale hover sidebar-foreground: Primo piano barra laterale sidebar-foreground-shadow: Primo piano barra laterale ombra -sidebar-muted-foreground: Primo piano barra laterale muto -sidebar-muted-foreground-hover: Primo piano barra laterale muto hover +sidebar-muted-foreground: Primo piano barra laterale attenuato +sidebar-muted-foreground-hover: Primo piano barra laterale attenuato hover sidebar-tab-background: Sfondo tab barra laterale sidebar-tab-background-selected: Sfondo tab barra laterale per tab selezionati sidebar-tab-border: Bordo tab barra laterale @@ -63,8 +63,8 @@ sidebar-tab-border-selected: Bordo tab barra laterale per tab selezionati sidebar-tab-divider: Separatore tab barra laterale sidebar-tab-foreground: Primo piano tab barra laterale sidebar-tab-foreground-selected: Primo piano tab barra laterale per tab selezionati -sidebar-tiddler-link-foreground: Primo piano collegamento frammento barra laterale -sidebar-tiddler-link-foreground-hover: Primo piano collegamento frammento barra laterale hover +sidebar-tiddler-link-foreground: Primo piano link frammento barra laterale +sidebar-tiddler-link-foreground-hover: Primo piano link frammento barra laterale hover site-title-foreground: Sfondo titolo sito static-alert-foreground: Primo piano alert statico tab-background: Sfondo tab @@ -92,8 +92,8 @@ tiddler-editor-fields-odd: Sfondo editor frammenti per campi dispari tiddler-info-background: Sfondo pannello informazioni frammenti tiddler-info-border: Bordo pannello informazioni frammenti tiddler-info-tab-background: Sfondo tab pannello informazioni frammenti -tiddler-link-background: Sfondo collegamenti frammenti -tiddler-link-foreground: Primo piano collegamenti frammenti +tiddler-link-background: Sfondo link frammenti +tiddler-link-foreground: Primo piano link frammenti tiddler-subtitle-foreground: Primo piano sottotitolo frammenti tiddler-title-foreground: Primo piano titolo frammenti toolbar-cancel-button: Primo piano pulsante 'annulla' barra strumenti @@ -105,3 +105,5 @@ toolbar-info-button: Primo piano pulsante 'info' barra strumenti toolbar-new-button: Primo piano pulsante 'nuovo frammento' barra strumenti toolbar-options-button: Primo piano pulsante 'impostazioni' barra strumenti toolbar-save-button: Primo piano pulsante 'salva' barra strumenti +untagged-background: Sfondo pillola non etichettato +very-muted-foreground: Primo piano molto attenuato diff --git a/languages/it-IT/EditTemplate.multids b/languages/it-IT/EditTemplate.multids index 122cdb284..3f5ad75cb 100644 --- a/languages/it-IT/EditTemplate.multids +++ b/languages/it-IT/EditTemplate.multids @@ -4,10 +4,12 @@ Body/External/Hint: Questo è un frammento esterno memorizzato al di fuori Body/Placeholder: Digita il testo di questo frammento Body/Preview/Type/DiffCurrent: Differenze rispetto all'attuale Body/Preview/Type/DiffShadow: Differenze rispetto al nascosto (se presenti) +Body/Preview/Type/Output: Output +Caption: Editor Field/Dropdown/Caption: Lista di campi Field/Dropdown/Hint: Mostra la lista di campi Field/Remove/Caption: Rimuovi campo -Field/Remove/Hint: Rimuovi campo +Field/Remove/Hint: Rimuovi il campo Fields/Add/Button: Aggiungi Fields/Add/Button/Hint: Aggiungi il nuovo campo al frammento Fields/Add/Dropdown/System: Campi di sistema diff --git a/languages/it-IT/Fields.multids b/languages/it-IT/Fields.multids index 793946f34..b9c3b17de 100644 --- a/languages/it-IT/Fields.multids +++ b/languages/it-IT/Fields.multids @@ -14,7 +14,7 @@ dependents: Per un plugin, elenca i titoli dei plugin dipendenti description: Il testo descrittivo per un plugin o per una modalità a dialogo draft.of: Per i frammenti bozza, contiene il titolo del frammento di cui questo è una bozza draft.title: Per i frammenti bozza, contiene la proposta di nuovo titolo per il frammento -footer: Il testo del footer per un wizard +footer: Il testo del footer per una finestra modale hide-body: Il modello di visualizzazione nasconderà i corpi dei frammenti se impostato su ''sì'' icon: Il titolo del frammento che contiene l'icona associata con il frammento library: Indica che il frammento deve essere salvato come una libreria JavaScript se impostato su ''sì'' @@ -29,7 +29,7 @@ plugin-type: Il tipo di plugin di un frammento plugin released: La data di rilascio di un TiddlyWiki revision: La revisione del frammento mantenuta sul server source: L'indirizzo URL sorgente associato con un frammento -subtitle: Il testo del sottotitolo per un wizard +subtitle: Il testo del sottotitolo per una finestra modale tags: Una lista di etichette associate con un frammento text: Il corpo del testo di un frammento throttle.refresh: Se presente, rallenta gli aggiornamenti di questo tiddler diff --git a/languages/it-IT/Import.multids b/languages/it-IT/Import.multids index 9fe6a4360..25529b10f 100644 --- a/languages/it-IT/Import.multids +++ b/languages/it-IT/Import.multids @@ -7,10 +7,11 @@ Listing/Cancel/Warning: Vuoi annullare l'importazione? Listing/Hint: Questi frammenti sono pronti per essere importati: Listing/Import/Caption: Importa Listing/Preview: Anteprima: +Listing/Preview/Diff: Diff Listing/Preview/DiffFields: Diff (Campi) Listing/Preview/Fields: Campi Listing/Preview/Text: Testo -Listing/Preview/TextRaw: testo (non formattato) +Listing/Preview/TextRaw: Testo (non formattato) Listing/Rename/CancelRename: Annulla Listing/Rename/ConfirmRename: Rinomina frammento Listing/Rename/OverwriteWarning: Un frammento con questo nome esiste già. diff --git a/languages/it-IT/Misc.multids b/languages/it-IT/Misc.multids index e69f0895f..f1cd732bb 100644 --- a/languages/it-IT/Misc.multids +++ b/languages/it-IT/Misc.multids @@ -8,19 +8,19 @@ CloseAll/Button: Chiudi tutto ColourPicker/Recent: Recenti: ConfirmAction: Vuoi procedere? ConfirmCancelTiddler: Vuoi annullare le modifiche al frammento "<$text text=<<title>>/>"? -ConfirmDeleteTiddler: Vuoi cancellare il frammento "<$text text=<<title>>/>"? -ConfirmDeleteTiddlers: Sei sicuro di voler eliminare <<resultCount>> tiddler(s)? +ConfirmDeleteTiddler: Vuoi eliminare il frammento "<$text text=<<title>>/>"? +ConfirmDeleteTiddlers: Sei sicuro di voler eliminare <<resultCount>> frammento/i? ConfirmEditShadowTiddler: Stai per editare un frammento nascosto. Ogni modifica dei default di sistema renderà i futuri aggiornamenti non semplici. Sei sicuro di voler editare "<$text text=<<title>>/>"? ConfirmOverwriteTiddler: Vuoi sovrascrivere il frammento "<$text text=<<title>>/>"? Count: Conteggio DefaultNewTiddlerTitle: Nuovo frammento Diffs/CountMessage: <<diff-count>> differenze -DropMessage: Rilascia qui (o usa il tasto 'Escape' per annullare) +DropMessage: Rilascia ora (o usa il tasto 'Escape' per annullare) Encryption/Cancel: Annulla Encryption/ConfirmClearPassword: Vuoi cancellare la password? Questa operazione rimuoverà la crittografia applicata quando salverai questo wiki Encryption/Password: Password Encryption/PasswordNoMatch: Le password non corrispondono -Encryption/PromptSetPassword: Imposta una nuova pasword per questo TiddlyWiki +Encryption/PromptSetPassword: Imposta una nuova password per questo TiddlyWiki Encryption/RepeatPassword: Ripeti password Encryption/SetPassword: Imposta password Encryption/Username: Nome utente @@ -28,8 +28,8 @@ Error/Caption: Errore Error/Filter: Errore filtro Error/FilterRunPrefix: Errore filtro: prefisso sconosciuto per l'esecuzione del filtro Error/FilterSyntax: Errore di sintassi nell'espressione del filtro -Error/FormatFilterOperator: Errore filtro: suffisso sconosciuto per l'operatore di filtro 'formato'. -Error/IsFilterOperator: Errore filtro: operando sconosciuto per l'operatore di filtro 'è'. +Error/FormatFilterOperator: Errore filtro: suffisso sconosciuto per l'operatore di filtro 'format'. +Error/IsFilterOperator: Errore filtro: operando sconosciuto per l'operatore di filtro 'is'. Error/LoadingPluginLibrary: Errore durante il caricamento della libreria dei plug-in Error/NetworkErrorAlert: `<h2>''Errore di rete''</h2>Sembra che la connessione al server sia stata persa. Ciò potrebbe indicare un problema con la connessione di rete. Prova a ripristinare la connettività di rete prima di continuare.<br><br>''Tutte le modifiche non salvate verranno sincronizzate automaticamente al ripristino della connettività''.` Error/PutEditConflict: File modificato sul server @@ -45,8 +45,8 @@ InternalJavaScriptError/Title: Errore JavaScript interno LayoutSwitcher/Description: Apri il pannello di selezione del layout LazyLoadingWarning: <p>Tentativo di caricare contenuto esterno da ''<$text text={{!!_canonical_uri}}/>''</p><p>Se questo messaggio non scompare, il tipo di contenuto del frammento non corrisponde al tipo di contenuto esterno oppure potresti utilizzare un browser che non supporta il contenuto esterno per i wiki caricati come file autonomi. Vedi https://tiddlywiki.com/#ExternalText</p> LoginToTiddlySpace: Login su TiddlySpace -Manager/Controls/FilterByTag/None: (nessuno) -Manager/Controls/FilterByTag/Prompt: Filtro per etichetta: +Manager/Controls/FilterByTag/None: (nessuna) +Manager/Controls/FilterByTag/Prompt: Filtra per etichetta: Manager/Controls/Order/Prompt: Ordine inverso Manager/Controls/Search/Placeholder: Cerca Manager/Controls/Search/Prompt: Cerca: @@ -60,8 +60,10 @@ Manager/Item/Icon: Icone Manager/Item/Icon/None: (nessuno) Manager/Item/RawText: Testo non formattato Manager/Item/Tags: Etichette +Manager/Item/Tools: Strumenti Manager/Item/WikifiedText: Testo wikificato MissingTiddler/Hint: Frammento mancante "<$text text=<<currentTiddler>>/>" -- clicca {{||$:/core/ui/Buttons/edit}} per crearlo +No: No OfficialPluginLibrary: Libreria ufficiale plugin ~TiddlyWiki OfficialPluginLibrary/Hint: La libreria ufficiale di plugin ~TiddlyWiki su tiddlywiki.com. Plugin, temi e language pack sono mantenuti dal core team. PageTemplate/Description: il layout predefinito di ~TiddlyWiki @@ -86,7 +88,7 @@ SystemTiddlers/Include/Prompt: Includi i frammenti di sistema TagManager/Colour/Heading: Colore TagManager/Count/Heading: Conteggio TagManager/Icon/Heading: Icona -TagManager/Icons/None: Nessuno +TagManager/Icons/None: Nessuna TagManager/Info/Heading: Info TagManager/Tag/Heading: Etichetta Tiddler/DateFormat: DD MMM YYYY alle hh12:0mmam diff --git a/languages/it-IT/Modals/Download.tid b/languages/it-IT/Modals/Download.tid index da49c74b6..fad788eb2 100644 --- a/languages/it-IT/Modals/Download.tid +++ b/languages/it-IT/Modals/Download.tid @@ -1,5 +1,4 @@ title: $:/language/Modals/Download -type: text/vnd.tiddlywiki subtitle: Download changes footer: <$button message="tm-close-tiddler">Chiudi</$button> help: https://tiddlywiki.com/static/DownloadingChanges.html @@ -10,4 +9,4 @@ Per salvare le modifiche al tuo wiki, clicca con il tasto destro del mouse sul l //Puoi velocizzare l'operazione cliccando il link con il tasto control (Windows) o il tasto options/alt (Mac OS X). Non ti verrà chiesto il nome della cartella e del file, ma il tuo browser non è in grado di assegnare un nome riconoscibile -- potrebbe essere necessario rinominare il file per aggiungere l'estensione `.html` prima di poter fare qualcosa di utile.// -Sugli smartphone che non consentono di scaricare file, puoi memorizzare nei bookmark il link, successivamente sincronizzare i bookmark con un computer desktop su cui poi salvare il file normalmente. \ No newline at end of file +Sugli smartphone che non consentono di scaricare file, puoi memorizzare nei bookmark il link, successivamente sincronizzare i bookmark con un computer desktop su cui poi salvare il file normalmente. diff --git a/languages/it-IT/Modals/SaveInstructions.tid b/languages/it-IT/Modals/SaveInstructions.tid index f2a5f6d92..d8bee5640 100644 --- a/languages/it-IT/Modals/SaveInstructions.tid +++ b/languages/it-IT/Modals/SaveInstructions.tid @@ -1,5 +1,4 @@ title: $:/language/Modals/SaveInstructions -type: text/vnd.tiddlywiki subtitle: Save your work footer: <$button message="tm-close-tiddler">Chiudi</$button> help: https://tiddlywiki.com/static/SavingChanges.html diff --git a/languages/it-IT/NewJournal.multids b/languages/it-IT/NewJournal.multids index 9bcec5d14..15acef613 100644 --- a/languages/it-IT/NewJournal.multids +++ b/languages/it-IT/NewJournal.multids @@ -1,4 +1,4 @@ title: $:/config/NewJournal/ -Tags: Diario Title: DD MMM YYYY +Text: diff --git a/languages/it-IT/NewJournalTags.tid b/languages/it-IT/NewJournalTags.tid new file mode 100644 index 000000000..8a3fa5bf8 --- /dev/null +++ b/languages/it-IT/NewJournalTags.tid @@ -0,0 +1,3 @@ +title: $:/config/NewJournal/Tags + +Diario diff --git a/languages/it-IT/Search.multids b/languages/it-IT/Search.multids index efcf9385a..24f9ef79e 100644 --- a/languages/it-IT/Search.multids +++ b/languages/it-IT/Search.multids @@ -1,6 +1,5 @@ title: $:/language/Search/ -Advanced/Matches: //<small><<resultCount>> corrispondenze</small>// DefaultResults/Caption: Lista Filter/Caption: Filtro Filter/Hint: Cerca attraverso un [[filtro|https://tiddlywiki.com/static/Filters.html]] diff --git a/languages/it-IT/SideBar.multids b/languages/it-IT/SideBar.multids index 523a2e805..ba951776e 100644 --- a/languages/it-IT/SideBar.multids +++ b/languages/it-IT/SideBar.multids @@ -4,6 +4,7 @@ All/Caption: Tutti Caption: Barra laterale Contents/Caption: Indice Drafts/Caption: Bozze +Explorer/Caption: Explorer Missing/Caption: Mancanti More/Caption: Altro Open/Caption: Aperti diff --git a/languages/it-IT/ThemeTweaks.multids b/languages/it-IT/ThemeTweaks.multids index 9cdfea069..1d17e8fcd 100644 --- a/languages/it-IT/ThemeTweaks.multids +++ b/languages/it-IT/ThemeTweaks.multids @@ -2,9 +2,9 @@ title: $:/language/ThemeTweaks/ Metrics: Dimensioni Metrics/BodyFontSize: Dimensione carattere per il corpo dei frammenti -Metrics/BodyLineHeight: Altezza linea per il corpo dei frammenti +Metrics/BodyLineHeight: Altezza riga per il corpo dei frammenti Metrics/FontSize: Dimensione carattere -Metrics/LineHeight: Altezza linea +Metrics/LineHeight: Altezza riga Metrics/SidebarBreakpoint: Punto di interruzione della barra laterale Metrics/SidebarBreakpoint/Hint: la larghezza minima della pagina alla quale la cronologia<br>e la barra laterale appariranno fianco a fianco Metrics/SidebarWidth: Larghezza barra laterale @@ -28,10 +28,11 @@ Options/StickyTitles: Titoli fissi Options/StickyTitles/Hint: Fa in modo che i titoli dei frammenti "si fissino" alla parte superiore della finestra del browser Settings: Impostazioni Settings/BackgroundImage: Immagine di sfondo della pagina -Settings/BackgroundImageAttachment: Allegato immagine di sfondo della pagina -Settings/BackgroundImageAttachment/Fixed: Fissato alla finestra +Settings/BackgroundImageAttachment: Immagine di sfondo della pagina +Settings/BackgroundImageAttachment/Fixed: Fissata alla finestra Settings/BackgroundImageAttachment/Scroll: Scorre con i frammenti -Settings/BackgroundImageSize: Dimensioni dell'immagine di sfondo della pagina +Settings/BackgroundImageSize: Dimensione immagine di sfondo della pagina +Settings/BackgroundImageSize/Auto: Auto Settings/BackgroundImageSize/Contain: Contiene Settings/BackgroundImageSize/Cover: Copre Settings/CodeFontFamily: Famiglia di caratteri del codice diff --git a/languages/it-IT/TiddlerInfo.multids b/languages/it-IT/TiddlerInfo.multids index 9bb53be2e..04bd6b798 100644 --- a/languages/it-IT/TiddlerInfo.multids +++ b/languages/it-IT/TiddlerInfo.multids @@ -17,5 +17,5 @@ Listed/Empty: Questo frammento non è elencato da nessun altro References/Caption: Riferimenti References/Empty: Nessun frammento è collegato a questo Tagging/Caption: Etichetta -Tagging/Empty: Non ci sono frammenti categorizzati con questa etichetta +Tagging/Empty: Non ci sono frammenti con questa etichetta Tools/Caption: Strumenti diff --git a/languages/it-IT/Types/application%2Fjavascript.tid b/languages/it-IT/Types/application_javascript.tid similarity index 90% rename from languages/it-IT/Types/application%2Fjavascript.tid rename to languages/it-IT/Types/application_javascript.tid index b66f6d07d..3ab266d32 100644 --- a/languages/it-IT/Types/application%2Fjavascript.tid +++ b/languages/it-IT/Types/application_javascript.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/javascript description: Codice JavaScript name: application/javascript group: Sviluppatore +group-sort: 2 diff --git a/languages/it-IT/Types/application%2Fjson.tid b/languages/it-IT/Types/application_json.tid similarity index 88% rename from languages/it-IT/Types/application%2Fjson.tid rename to languages/it-IT/Types/application_json.tid index 76aa36e70..e93bbdea5 100644 --- a/languages/it-IT/Types/application%2Fjson.tid +++ b/languages/it-IT/Types/application_json.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/json description: Dati JSON name: application/json group: Sviluppatore +group-sort: 2 diff --git a/languages/it-IT/Types/application%2Fx-tiddler-dictionary.tid b/languages/it-IT/Types/application_x_tiddler_dictionary.tid similarity index 91% rename from languages/it-IT/Types/application%2Fx-tiddler-dictionary.tid rename to languages/it-IT/Types/application_x_tiddler_dictionary.tid index 4dd1fe6f8..613cdb827 100644 --- a/languages/it-IT/Types/application%2Fx-tiddler-dictionary.tid +++ b/languages/it-IT/Types/application_x_tiddler_dictionary.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/x-tiddler-dictionary description: Dizionario dati name: application/x-tiddler-dictionary group: Sviluppatore +group-sort: 2 diff --git a/languages/it-IT/Types/image%2Fgif.tid b/languages/it-IT/Types/image_gif.tid similarity index 87% rename from languages/it-IT/Types/image%2Fgif.tid rename to languages/it-IT/Types/image_gif.tid index 365116c4c..5a1da5927 100644 --- a/languages/it-IT/Types/image%2Fgif.tid +++ b/languages/it-IT/Types/image_gif.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/gif description: Immagine GIF name: image/gif group: Immagine +group-sort: 1 diff --git a/languages/it-IT/Types/image%2Fjpeg.tid b/languages/it-IT/Types/image_jpeg.tid similarity index 87% rename from languages/it-IT/Types/image%2Fjpeg.tid rename to languages/it-IT/Types/image_jpeg.tid index d702d394f..44c827415 100644 --- a/languages/it-IT/Types/image%2Fjpeg.tid +++ b/languages/it-IT/Types/image_jpeg.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/jpeg description: Immagine JPEG name: image/jpeg group: Immagine +group-sort: 1 diff --git a/languages/it-IT/Types/image%2Fpng.tid b/languages/it-IT/Types/image_png.tid similarity index 87% rename from languages/it-IT/Types/image%2Fpng.tid rename to languages/it-IT/Types/image_png.tid index 3198a26bc..82ba64651 100644 --- a/languages/it-IT/Types/image%2Fpng.tid +++ b/languages/it-IT/Types/image_png.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/png description: Immagine PNG name: image/png group: Immagine +group-sort: 1 diff --git a/languages/it-IT/Types/image%2Fsvg%2Bxml.tid b/languages/it-IT/Types/image_svg_xml.tid similarity index 90% rename from languages/it-IT/Types/image%2Fsvg%2Bxml.tid rename to languages/it-IT/Types/image_svg_xml.tid index 3753af9fa..0eaec0c40 100644 --- a/languages/it-IT/Types/image%2Fsvg%2Bxml.tid +++ b/languages/it-IT/Types/image_svg_xml.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/svg+xml description: Immagine SVG (Structured Vector Graphics) name: image/svg+xml group: Immagine +group-sort: 1 diff --git a/languages/it-IT/Types/image%2Fx-icon.tid b/languages/it-IT/Types/image_x-icon.tid similarity index 65% rename from languages/it-IT/Types/image%2Fx-icon.tid rename to languages/it-IT/Types/image_x-icon.tid index 507aade37..f0c922f95 100644 --- a/languages/it-IT/Types/image%2Fx-icon.tid +++ b/languages/it-IT/Types/image_x-icon.tid @@ -1,4 +1,5 @@ title: $:/language/Docs/Types/image/x-icon -description: File icona formato ICO +description: File icona ICO name: image/x-icon group: Immagine +group-sort: 1 diff --git a/languages/it-IT/Types/text%2Fcss.tid b/languages/it-IT/Types/text_css.tid similarity index 59% rename from languages/it-IT/Types/text%2Fcss.tid rename to languages/it-IT/Types/text_css.tid index c32ee22e4..e4167eca2 100644 --- a/languages/it-IT/Types/text%2Fcss.tid +++ b/languages/it-IT/Types/text_css.tid @@ -1,4 +1,5 @@ title: $:/language/Docs/Types/text/css -description: Stylesheet statico +description: Foglio di stile statico name: text/css group: Sviluppatore +group-sort: 2 diff --git a/languages/it-IT/Types/text%2Fhtml.tid b/languages/it-IT/Types/text_html.tid similarity index 87% rename from languages/it-IT/Types/text%2Fhtml.tid rename to languages/it-IT/Types/text_html.tid index 27492428e..4f3b7198e 100644 --- a/languages/it-IT/Types/text%2Fhtml.tid +++ b/languages/it-IT/Types/text_html.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/html description: Markup HTML name: text/html group: Testo +group-sort: 0 diff --git a/languages/it-IT/Types/text%2Fplain.tid b/languages/it-IT/Types/text_plain.tid similarity index 63% rename from languages/it-IT/Types/text%2Fplain.tid rename to languages/it-IT/Types/text_plain.tid index 49ef1a86e..f40b85a40 100644 --- a/languages/it-IT/Types/text%2Fplain.tid +++ b/languages/it-IT/Types/text_plain.tid @@ -1,4 +1,5 @@ title: $:/language/Docs/Types/text/plain -description: Text normale +description: Testo normale name: text/plain group: Testo +group-sort: 0 diff --git a/languages/it-IT/Types/text%2Fvnd.tiddlywiki.tid b/languages/it-IT/Types/text_vnd.tiddlywiki.tid similarity index 66% rename from languages/it-IT/Types/text%2Fvnd.tiddlywiki.tid rename to languages/it-IT/Types/text_vnd.tiddlywiki.tid index 65a591075..e13553d24 100644 --- a/languages/it-IT/Types/text%2Fvnd.tiddlywiki.tid +++ b/languages/it-IT/Types/text_vnd.tiddlywiki.tid @@ -1,4 +1,5 @@ title: $:/language/Docs/Types/text/vnd.tiddlywiki -description: TiddlyWiki versione 5 wikitext +description: TiddlyWiki 5 name: text/vnd.tiddlywiki group: Testo +group-sort: 0 diff --git a/languages/it-IT/Types/text%2Fx-tiddlywiki.tid b/languages/it-IT/Types/text_x-tiddlywiki.tid similarity index 64% rename from languages/it-IT/Types/text%2Fx-tiddlywiki.tid rename to languages/it-IT/Types/text_x-tiddlywiki.tid index 91911281f..86d947be9 100644 --- a/languages/it-IT/Types/text%2Fx-tiddlywiki.tid +++ b/languages/it-IT/Types/text_x-tiddlywiki.tid @@ -1,4 +1,5 @@ title: $:/language/Docs/Types/text/x-tiddlywiki -description: TiddlyWiki Classic wikitext +description: TiddlyWiki Classic name: text/x-tiddlywiki group: Testo +group-sort: 0 From 6f9cf20e7737fc992ea9d11947ccdd8aadf8b6ce Mon Sep 17 00:00:00 2001 From: btheado <brian.theado@gmail.com> Date: Tue, 3 Jan 2023 07:48:20 -0600 Subject: [PATCH 199/937] Fixes reduce, filter, and sortsub operators undefined variable exception (#7156) * Added failing tests for #7155 * Pass getVariable options through to the widget method. Fixes #7155 * Whitespace fix * Added tests to verify macro parameters work inside filter, reduce, and sortsub operators --- core/modules/filters/filter.js | 5 +++-- core/modules/filters/reduce.js | 5 +++-- core/modules/filters/sortsub.js | 5 +++-- editions/test/tiddlers/tests/test-filters.js | 6 ++++++ editions/test/tiddlers/tests/test-prefixes-filter.js | 12 ++++++++++++ 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/core/modules/filters/filter.js b/core/modules/filters/filter.js index 8284929a7..9b69fd83a 100644 --- a/core/modules/filters/filter.js +++ b/core/modules/filters/filter.js @@ -21,14 +21,15 @@ exports.filter = function(source,operator,options) { target = operator.prefix !== "!"; source(function(tiddler,title) { var list = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]),{ - getVariable: function(name) { + getVariable: function(name,opts) { + opts = opts || {}; switch(name) { case "currentTiddler": return "" + title; case "..currentTiddler": return options.widget.getVariable("currentTiddler"); default: - return options.widget.getVariable(name); + return options.widget.getVariable(name,opts); } } }); diff --git a/core/modules/filters/reduce.js b/core/modules/filters/reduce.js index 831b354a1..50c501f08 100644 --- a/core/modules/filters/reduce.js +++ b/core/modules/filters/reduce.js @@ -27,7 +27,8 @@ exports.reduce = function(source,operator,options) { for(var index=0; index<results.length; index++) { var title = results[index], list = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]),{ - getVariable: function(name) { + getVariable: function(name,opts) { + opts = opts || {}; switch(name) { case "currentTiddler": return "" + title; @@ -42,7 +43,7 @@ exports.reduce = function(source,operator,options) { case "length": return "" + results.length; default: - return options.widget.getVariable(name); + return options.widget.getVariable(name,opts); } } }); diff --git a/core/modules/filters/sortsub.js b/core/modules/filters/sortsub.js index a926362e3..e9f676daa 100644 --- a/core/modules/filters/sortsub.js +++ b/core/modules/filters/sortsub.js @@ -26,14 +26,15 @@ exports.sortsub = function(source,operator,options) { var r = filterFn.call(options.wiki,function(iterator) { iterator(options.wiki.getTiddler(title),title); },{ - getVariable: function(name) { + getVariable: function(name,opts) { + opts = opts || {}; switch(name) { case "currentTiddler": return "" + title; case "..currentTiddler": return options.widget.getVariable("currentTiddler"); default: - return options.widget.getVariable(name); + return options.widget.getVariable(name,opts); } } }); diff --git a/editions/test/tiddlers/tests/test-filters.js b/editions/test/tiddlers/tests/test-filters.js index 4699e96c6..a7113ce28 100644 --- a/editions/test/tiddlers/tests/test-filters.js +++ b/editions/test/tiddlers/tests/test-filters.js @@ -983,6 +983,9 @@ Tests the filtering mechanism. rootWidget.setVariable("sort2","[get[text]else[]length[]]"); rootWidget.setVariable("sort3","[{!!value}divide{!!cost}]"); rootWidget.setVariable("sort4","[{!!title}]"); + rootWidget.setVariable("undefined-variable","[<doesnotexist>]"); + rootWidget.setVariable("echo","$text$",[{name:"text"}],true); + rootWidget.setVariable("sort4-macro-param","[subfilter<echo '[{!!title}]'>]"); expect(wiki.filterTiddlers("[sortsub:number<sort1>]",anchorWidget).join(",")).toBe("one,hasList,has filter,TiddlerOne,$:/TiddlerTwo,Tiddler Three,$:/ShadowPlugin,a fourth tiddler,filter regexp test"); expect(wiki.filterTiddlers("[!sortsub:number<sort1>]",anchorWidget).join(",")).toBe("filter regexp test,a fourth tiddler,$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,has filter,TiddlerOne,hasList,one"); expect(wiki.filterTiddlers("[sortsub:string<sort1>]",anchorWidget).join(",")).toBe("has filter,TiddlerOne,$:/TiddlerTwo,Tiddler Three,$:/ShadowPlugin,a fourth tiddler,filter regexp test,one,hasList"); @@ -993,6 +996,9 @@ Tests the filtering mechanism. expect(wiki.filterTiddlers("[!sortsub:string<sort2>]",anchorWidget).join(",")).toBe("filter regexp test,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,$:/ShadowPlugin,has filter,hasList,TiddlerOne,one"); expect(wiki.filterTiddlers("[[TiddlerOne]] [[$:/TiddlerTwo]] [[Tiddler Three]] [[a fourth tiddler]] +[!sortsub:number<sort3>]",anchorWidget).join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne,a fourth tiddler"); expect(wiki.filterTiddlers("a1 a10 a2 a3 b10 b3 b1 c9 c11 c1 +[sortsub:alphanumeric<sort4>]",anchorWidget).join(",")).toBe("a1,a2,a3,a10,b1,b3,b10,c1,c9,c11"); + // #7155. The order of the output is the same as the input when an undefined variable is used in the subfitler + expect(wiki.filterTiddlers("a2 a10 a1 +[sortsub:alphanumeric<undefined-variable>]",anchorWidget).join(",")).toBe("a2,a10,a1"); + expect(wiki.filterTiddlers("a1 a10 a2 a3 b10 b3 b1 c9 c11 c1 +[sortsub:alphanumeric<sort4-macro-param>]",anchorWidget).join(",")).toBe("a1,a2,a3,a10,b1,b3,b10,c1,c9,c11"); }); it("should handle the toggle operator", function() { diff --git a/editions/test/tiddlers/tests/test-prefixes-filter.js b/editions/test/tiddlers/tests/test-prefixes-filter.js index e32827f9f..62f329d66 100644 --- a/editions/test/tiddlers/tests/test-prefixes-filter.js +++ b/editions/test/tiddlers/tests/test-prefixes-filter.js @@ -343,6 +343,9 @@ describe("'reduce' and 'intersection' filter prefix tests", function() { rootWidget.setVariable("add-price","[get[price]multiply{!!quantity}add<accumulator>]"); rootWidget.setVariable("num-items","[get[quantity]add<accumulator>]"); rootWidget.setVariable("join-with-commas","[<index>compare:number:gt[0]then<accumulator>addsuffix[, ]addsuffix<currentTiddler>else<currentTiddler>]"); + rootWidget.setVariable("undefined-variable","[<doesnotexist>]"); + rootWidget.setVariable("echo","$text$",[{name:"text"}],true); + rootWidget.setVariable("num-items-macro-param","[subfilter<echo '[get[quantity]]'>add<accumulator>]"); expect(wiki.filterTiddlers("[tag[shopping]reduce<num-items>]",anchorWidget).join(",")).toBe("22"); expect(wiki.filterTiddlers("[tag[shopping]reduce<add-price>]",anchorWidget).join(",")).toBe("27.75"); @@ -351,6 +354,9 @@ describe("'reduce' and 'intersection' filter prefix tests", function() { expect(wiki.filterTiddlers("[tag[non-existent]reduce<add-price>,[0]]",anchorWidget).join(",")).not.toBe("0"); expect(wiki.filterTiddlers("[tag[non-existent]reduce<add-price>,[0]]",anchorWidget).length).toBe(0); expect(wiki.filterTiddlers("[tag[non-existent]reduce<add-price>else[0]]",anchorWidget).join(",")).toBe("0"); + // #7155 + expect(wiki.filterTiddlers("a +[reduce<undefined-variable>]",anchorWidget).join(",")).toBe(""); + expect(wiki.filterTiddlers("[tag[shopping]reduce<num-items-macro-param>]",anchorWidget).join(",")).toBe("22"); }); it("should handle the average operator", function() { @@ -392,10 +398,16 @@ describe("'reduce' and 'intersection' filter prefix tests", function() { rootWidget.setVariable("larger-than-18","[get[text]length[]compare:integer:gteq[18]]"); rootWidget.setVariable("nr","18"); rootWidget.setVariable("larger-than-18-with-var","[get[text]length[]compare:integer:gteq<nr>]"); + rootWidget.setVariable("undefined-variable","[<doesnotexist>]"); + rootWidget.setVariable("echo","$text$",[{name:"text"}],true); + rootWidget.setVariable("larger-than-18-macro-param","[subfilter<echo '[get[text]length[]compare:integer:gteq[18]]'>]"); expect(wiki.filterTiddlers("[tag[textexample]] :filter[get[text]length[]compare:integer:gteq[18]]",anchorWidget).join(",")).toBe("Cheesecake,Chocolate Cake,Red wine"); expect(wiki.filterTiddlers("[tag[textexample]]",anchorWidget).join(",")).toBe("Cheesecake,Chocolate Cake,Red wine,Sparkling water"); expect(wiki.filterTiddlers("[tag[textexample]filter<larger-than-18>]",anchorWidget).join(",")).toBe("Cheesecake,Chocolate Cake,Red wine"); expect(wiki.filterTiddlers("[tag[textexample]filter<larger-than-18-with-var>]",anchorWidget).join(",")).toBe("Cheesecake,Chocolate Cake,Red wine"); + // #7155 + expect(wiki.filterTiddlers("a +[filter<undefined-variable>]",anchorWidget).join(",")).toBe("a"); + expect(wiki.filterTiddlers("[tag[textexample]filter<larger-than-18-macro-param>]",anchorWidget).join(",")).toBe("Cheesecake,Chocolate Cake,Red wine"); }); it("should handle the :sort prefix", function() { From 8ca0bf10e4eebd11c47d5d6eda2fa7dd967a80ed Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 3 Jan 2023 14:28:48 +0000 Subject: [PATCH 200/937] Lazy loading a tiddler should trigger a sync Fixes #7138 --- core/modules/syncer.js | 1 + 1 file changed, 1 insertion(+) diff --git a/core/modules/syncer.js b/core/modules/syncer.js index 595f35a7f..c06fcb143 100644 --- a/core/modules/syncer.js +++ b/core/modules/syncer.js @@ -402,6 +402,7 @@ Syncer.prototype.handleLazyLoadEvent = function(title) { // Mark the tiddler as needing loading, and having already been lazily loaded this.titlesToBeLoaded[title] = true; this.titlesHaveBeenLazyLoaded[title] = true; + this.processTaskQueue(); } } }; From 67beafe3599baf97f83f49fdc67af444c506f153 Mon Sep 17 00:00:00 2001 From: Scott Sauyet <scott@sauyet.com> Date: Thu, 5 Jan 2023 03:22:46 -0500 Subject: [PATCH 201/937] Add Scott Sauyet (CrossEye) to the CLA (#7181) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index d3065b376..6822dc7d1 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -513,3 +513,5 @@ Nick Bell, @newmedicine, 2023/01/01 Frank Kmiec, @fkmiec, 2023-01-01 Pippo Peppo, @pippep, 2023-01-03 + +Scott Sauye, @CrossEye, 2023-01-04 From f3ebb258f79fdd03478bd5a27060f9ac4ec8a59d Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Thu, 5 Jan 2023 11:21:02 +0000 Subject: [PATCH 202/937] Remove obsolete content from v5.2.6 release note Should have been included in 44de7918ab92da3917434adcbdcad6d85fca7a63 --- .../prerelease/tiddlers/Release 5.2.6.tid | 73 ++----------------- 1 file changed, 8 insertions(+), 65 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.6.tid b/editions/prerelease/tiddlers/Release 5.2.6.tid index 6a9908852..d1b1343bc 100644 --- a/editions/prerelease/tiddlers/Release 5.2.6.tid +++ b/editions/prerelease/tiddlers/Release 5.2.6.tid @@ -9,96 +9,39 @@ type: text/vnd.tiddlywiki ! Major Improvements -New [ext[Twitter Archivist|./editions/twitter-archivist]] plugin to import the tweets and associated media from a Twitter Archive as individual tiddlers. - -<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6961">> new GenesisWidget that allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance - -<<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6936">> (and <<.link-badge-here "https://github.com/Jermolene/TiddlyWiki5/pull/7105">>) new operators for reading and formatting JSON data: [[jsonget Operator]], [[jsonindexes Operator]], [[jsontype Operator]], [[jsonextract Operator]] and [[format Operator]] - ! Translation Improvements Improvements to the following translations: -* Chinese -* French -* German -* Polish -* Spanish -* Japanese - -Improvements to the translation features of TiddlyWiki itself: - -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6882">> the [[Translators Edition|Translate TiddlyWiki into your language]] to add an option to display the original English text underneath the text area -* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6933">> "delete" button text in $:/AdvancedSearch so that it is translatable +* ! Usability Improvements -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d62a16ee464fb9984b766b48504829a1a3eb143b">> problem with long presses on tiddler links triggering a preview on iOS/iPadOS -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6910">> consistency of button and input elements across browsers -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d825f1c875f5e46158c9c41c8c66471138c162d1">> edit preview to use the [[View Template Body Cascade]] -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/36896c3db8c9678c0385a561996248a6f00a45ff">> opening a tiddler in a new window to use the [[View Template Body Cascade]] -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6970">> detection of infinite recursion errors in widgets and filters -* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6877">> default styles for [[styled runs|Styles and Classes in WikiText]] -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6881">> upgrade wizard to make the version number more prominent -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7042">> parsing of tiddlers containing CSV data for greater compatibility -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7076">> new page control button to summon the layout switcher -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7084">> folded tiddlers to ensure that the unfold button is always visible -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7072">> handling of [[Modals]] to optionally allow them to be dismissed by clicking on the background +* ! Widget Improvements -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/127f660c91020dcbb43897d954066b31af729e74">> EditTextWidget to remove the default text "Type the text for the tiddler 'foo'" -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7081">> ''focus'' attribute to SelectWidget -* <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/commit/1df4c29d73073788ba3859668112e8bb46171a6c">> restriction of the LetWidget being unable to create variables whose names begin with a dollar sign +* ! Filter improvements -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/6303">> issue with availability of variables within filter runs -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7065">> issue with removing multiple items from a linked list during filter processing +* ! Hackability Improvements -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7004">> support for nested [[macro definitions|Macro Definitions in WikiText]] -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6976">> support for [[SystemTag: $:/tags/ClassFilters/TiddlerTemplate]] and [[SystemTag: $:/tags/ClassFilters/PageTemplate]] to assign dynamic CSS classes to both tiddler frames and the page template -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/c5d3d4c26e8fe27f272dda004aec27d6b66c4f60">> safe mode to disable wiki store indexers -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/166a1565843878083fb1eba47c73b8e67b78400d">> safe mode to prevent globally disabling parser rules -* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/6735">> keyboard shortcut handling to allow to global shortcuts to override all other shortcuts -* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/965bd090a905f5756e79124b698c894f7f72ad5b">> [[list-links Macro]] to allow the rendered field to be overriden -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6913">> [[Table-of-Contents Macros]] to allow the default icons to be overridden -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6939">> ''data-tags-*'' and ''data-tiddler-title'' attributes to the edit preview area -* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/5947">> [[timeline Macro]] to override the link template -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7043">> support for Unix epoch timestamps in [[date format strings|DateFormat]] -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7064">> the "big green download button" to use the defined palette colour -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7063">> new hidden setting [[to use horizontal tabs for the "more" sidebar tab|Hidden Setting: More Tabs Horizontal]] -* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/bef11fe6a25fb849dee40c4aa4337d6a30daf0b4">> the [[external JavaScript templates|Using the external JavaScript template]] to allow the URL of the external script file to be configured +* ! Bug Fixes -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7099">> truncated search results on small screens -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7010">> table contents overflow on small screens -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/fb34df84ed41882c1c2a6ff54f0e908b43ef95a3">> "new image" keyboard shortcut not to assign journal tags -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6987">> SelectWidget class to update if it uses a filter -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7017">> issue with wikification within the advanced search filter dropdown -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7057">> the table in $:/Import to avoid creating hidden empty rows -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7008">> advanced search keyboard shortcut not navigating correctly -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7083">> erroneous display of drafts within the advanced search filter dropdown -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7092">> backwards compatibility of new field editor cascade introduced in v5.2.3 +* ! Node.js Improvements -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7073">> new CommandsCommand to enable command tokens to be dynamically generated from a filter -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6947">> console logging to avoid spaces and `<empty string>` message -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7014">> problem with lazy loading deleting tiddler bodies under certain circumstances -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/344110e2890caf711ab8f3c4f4deaa7d86771231">> handling of ".mp4" file extension so that it defaults to video not audio -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/6588">> test server to the plugin library edition -* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7049">> [[Hidden Setting: Sync Logging]] to control logging of sync-related messages -* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6944">> Jasmine plugin to require the explicit use of the `--test` command in order to cause the tests to be run +* ! Performance Improvements -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/53d229592df76c6dd607e40be5bea4d5e063c48e">> performance of `wiki.getTiddler()` -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/81ac9874846b3ead275f67010fcfdb49f3d2f43c">> performance of variable prototype chain handling -* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/6056">> performance of list handling during filter processing +* ! Acknowledgements From 7b7063a7b20111a3a2cd9f0908c8ed90ecab0e21 Mon Sep 17 00:00:00 2001 From: Cameron Fischer <fischer.cameron@gmail.com> Date: Sun, 8 Jan 2023 08:13:04 -0500 Subject: [PATCH 203/937] Added documentation for neglected core fields (#7191) --- core/language/en-GB/Fields.multids | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/language/en-GB/Fields.multids b/core/language/en-GB/Fields.multids index c094580d5..1330e60a0 100644 --- a/core/language/en-GB/Fields.multids +++ b/core/language/en-GB/Fields.multids @@ -1,11 +1,13 @@ title: $:/language/Docs/Fields/ _canonical_uri: The full URI of an external image tiddler +author: Name of the author of a plugin bag: The name of the bag from which a tiddler came caption: The text to be displayed on a tab or button code-body: The view template will display the tiddler as code if set to ''yes'' color: The CSS color value associated with a tiddler component: The name of the component responsible for an [[alert tiddler|AlertMechanism]] +core-version: For a plugin, indicates what version of TiddlyWiki with which it is compatible current-tiddler: Used to cache the top tiddler in a [[history list|HistoryMechanism]] created: The date a tiddler was created creator: The name of the person who created a tiddler @@ -22,7 +24,9 @@ list-before: If set, the title of a tiddler before which this tiddler should be list-after: If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty modified: The date and time at which a tiddler was last modified modifier: The tiddler title associated with the person who last modified a tiddler +module-type: For javascript tiddlers, specifies what kind of module it is name: The human readable name associated with a plugin tiddler +parent-plugin: For a plugin, specifies which plugin of which it is a sub-plugin plugin-priority: A numerical value indicating the priority of a plugin tiddler plugin-type: The type of plugin in a plugin tiddler revision: The revision of the tiddler held at the server From dd6e00687b218ecc3091af2612c46593933d57ac Mon Sep 17 00:00:00 2001 From: Saq Imtiaz <saq.imtiaz@gmail.com> Date: Sun, 8 Jan 2023 14:17:01 +0100 Subject: [PATCH 204/937] Adds support for indenting pragmas with whitespace (#7185) * feat: first pass at allowing pragmas to be indented * Added documentation --- .../parsers/wikiparser/rules/import.js | 2 +- .../parsers/wikiparser/rules/macrodef.js | 4 +-- .../parsers/wikiparser/rules/parsermode.js | 2 +- .../modules/parsers/wikiparser/rules/rules.js | 2 +- .../parsers/wikiparser/rules/whitespace.js | 2 +- .../data/macros/NestedMacros-indented.tid | 36 +++++++++++++++++++ .../data/macros/NestedMacros-indented2.tid | 36 +++++++++++++++++++ .../data/pragmas/Parsermode-indented.tid | 36 +++++++++++++++++++ editions/tw5.com/tiddlers/concepts/Pragma.tid | 4 ++- 9 files changed, 117 insertions(+), 7 deletions(-) create mode 100644 editions/test/tiddlers/tests/data/macros/NestedMacros-indented.tid create mode 100644 editions/test/tiddlers/tests/data/macros/NestedMacros-indented2.tid create mode 100644 editions/test/tiddlers/tests/data/pragmas/Parsermode-indented.tid diff --git a/core/modules/parsers/wikiparser/rules/import.js b/core/modules/parsers/wikiparser/rules/import.js index 9556c7af5..a66df7057 100644 --- a/core/modules/parsers/wikiparser/rules/import.js +++ b/core/modules/parsers/wikiparser/rules/import.js @@ -25,7 +25,7 @@ Instantiate parse rule exports.init = function(parser) { this.parser = parser; // Regexp to match - this.matchRegExp = /^\\import[^\S\n]/mg; + this.matchRegExp = /\\import[^\S\n]/mg; }; /* diff --git a/core/modules/parsers/wikiparser/rules/macrodef.js b/core/modules/parsers/wikiparser/rules/macrodef.js index 22a7b5ba7..1d7ac9211 100644 --- a/core/modules/parsers/wikiparser/rules/macrodef.js +++ b/core/modules/parsers/wikiparser/rules/macrodef.js @@ -27,7 +27,7 @@ Instantiate parse rule exports.init = function(parser) { this.parser = parser; // Regexp to match - this.matchRegExp = /^\\define\s+([^(\s]+)\(\s*([^)]*)\)(\s*\r?\n)?/mg; + this.matchRegExp = /\\define\s+([^(\s]+)\(\s*([^)]*)\)(\s*\r?\n)?/mg; }; /* @@ -58,7 +58,7 @@ exports.parse = function() { var reEnd; if(this.match[3]) { // If so, the end of the body is marked with \end - reEnd = new RegExp("(\\r?\\n\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[1]) + ")?(?:$|\\r?\\n))","mg"); + reEnd = new RegExp("(\\r?\\n\\s*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[1]) + ")?(?:$|\\r?\\n))","mg"); } else { // Otherwise, the end of the definition is marked by the end of the line reEnd = /($|\r?\n)/mg; diff --git a/core/modules/parsers/wikiparser/rules/parsermode.js b/core/modules/parsers/wikiparser/rules/parsermode.js index ad4287f99..72a6de067 100644 --- a/core/modules/parsers/wikiparser/rules/parsermode.js +++ b/core/modules/parsers/wikiparser/rules/parsermode.js @@ -26,7 +26,7 @@ Instantiate parse rule exports.init = function(parser) { this.parser = parser; // Regexp to match - this.matchRegExp = /^\\parsermode[^\S\n]/mg; + this.matchRegExp = /\\parsermode[^\S\n]/mg; }; /* diff --git a/core/modules/parsers/wikiparser/rules/rules.js b/core/modules/parsers/wikiparser/rules/rules.js index cfc03330b..1d0f80f29 100644 --- a/core/modules/parsers/wikiparser/rules/rules.js +++ b/core/modules/parsers/wikiparser/rules/rules.js @@ -26,7 +26,7 @@ Instantiate parse rule exports.init = function(parser) { this.parser = parser; // Regexp to match - this.matchRegExp = /^\\rules[^\S\n]/mg; + this.matchRegExp = /\\rules[^\S\n]/mg; }; /* diff --git a/core/modules/parsers/wikiparser/rules/whitespace.js b/core/modules/parsers/wikiparser/rules/whitespace.js index e3b0c8e3f..5fd9d4b83 100644 --- a/core/modules/parsers/wikiparser/rules/whitespace.js +++ b/core/modules/parsers/wikiparser/rules/whitespace.js @@ -26,7 +26,7 @@ Instantiate parse rule exports.init = function(parser) { this.parser = parser; // Regexp to match - this.matchRegExp = /^\\whitespace[^\S\n]/mg; + this.matchRegExp = /\\whitespace[^\S\n]/mg; }; /* diff --git a/editions/test/tiddlers/tests/data/macros/NestedMacros-indented.tid b/editions/test/tiddlers/tests/data/macros/NestedMacros-indented.tid new file mode 100644 index 000000000..e040deaf7 --- /dev/null +++ b/editions/test/tiddlers/tests/data/macros/NestedMacros-indented.tid @@ -0,0 +1,36 @@ +title: Macros/NestedMacros-indented +description: Nested Macros-indented +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim + +\define outer() + \whitespace trim + + \define middle() + \whitespace trim + + \define inner() + \whitespace trim + + Jaguar + + \end inner + + <<inner>> + + \end middle + + <<middle>> + +\end outer + +<<outer>> + ++ +title: ExpectedResult + +<p>Jaguar</p> \ No newline at end of file diff --git a/editions/test/tiddlers/tests/data/macros/NestedMacros-indented2.tid b/editions/test/tiddlers/tests/data/macros/NestedMacros-indented2.tid new file mode 100644 index 000000000..36a3cc8a3 --- /dev/null +++ b/editions/test/tiddlers/tests/data/macros/NestedMacros-indented2.tid @@ -0,0 +1,36 @@ +title: Macros/NestedMacros-indented2 +description: Nested Macros-indented with spaces +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim + +\define outer() + \whitespace trim + + \define middle() + \whitespace trim + + \define inner() + \whitespace trim + + Jaguar + + \end inner + + <<inner>> + + \end middle + + <<middle>> + +\end outer + +<<outer>> + ++ +title: ExpectedResult + +<p>Jaguar</p> \ No newline at end of file diff --git a/editions/test/tiddlers/tests/data/pragmas/Parsermode-indented.tid b/editions/test/tiddlers/tests/data/pragmas/Parsermode-indented.tid new file mode 100644 index 000000000..10747735f --- /dev/null +++ b/editions/test/tiddlers/tests/data/pragmas/Parsermode-indented.tid @@ -0,0 +1,36 @@ +title: Pragmas/Parsermode-indented +description: parsermode pragma +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +{{AlwaysInline}} + +{{AlwaysBlock}} + +{{AlwaysInline}}{{AlwaysBlock}} + ++ +title: AlwaysInline + + \parsermode inline +! Not Heading + +Text with ''bold'' ++ +title: AlwaysBlock + + \parsermode block +! Heading + +Text with ''bold'' ++ +title: ExpectedResult + +! Not Heading + +Text with <strong>bold</strong><h1 class="">Heading</h1><p>Text with <strong>bold</strong></p><p>! Not Heading + +Text with <strong>bold</strong><h1 class="">Heading</h1><p>Text with <strong>bold</strong></p> +</p> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/concepts/Pragma.tid b/editions/tw5.com/tiddlers/concepts/Pragma.tid index 05a29a2cc..b8c37149a 100644 --- a/editions/tw5.com/tiddlers/concepts/Pragma.tid +++ b/editions/tw5.com/tiddlers/concepts/Pragma.tid @@ -1,5 +1,5 @@ created: 20150219175930000 -modified: 20220122182842041 +modified: 20230107165037493 tags: Concepts [[WikiText Parser Modes]] title: Pragma type: text/vnd.tiddlywiki @@ -7,6 +7,8 @@ type: text/vnd.tiddlywiki A <<.def pragma>> is a special component of WikiText that provides control over the way the remaining text is parsed. Pragmas occupy lines that start with `\`. They can only appear at the start of the text, but blank lines are allowed between them. If a pragma line appears in the main body of the text, it is treated as if it was ordinary text. +<<.from-version "5.2.6">> Pragmas can have preceding optional whitespace characters. + The following pragmas are available: From c5ce1d78a2c0c527ad28e716a9579e9bfa469074 Mon Sep 17 00:00:00 2001 From: yaisog <m@rcuswinter.de> Date: Sun, 8 Jan 2023 14:18:53 +0100 Subject: [PATCH 205/937] Update cla-individual.md (#7189) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 6822dc7d1..3ffb6e552 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -515,3 +515,5 @@ Frank Kmiec, @fkmiec, 2023-01-01 Pippo Peppo, @pippep, 2023-01-03 Scott Sauye, @CrossEye, 2023-01-04 + +Marcus Winter, @yaisog, 2023-01-07 From 51acc24b0aa05eae04322bef2dcebbcd081a10c8 Mon Sep 17 00:00:00 2001 From: TonyM <31584658+AnthonyMuscio@users.noreply.github.com> Date: Mon, 9 Jan 2023 00:20:17 +1100 Subject: [PATCH 206/937] Remove the tag to itself on the "Open collective" tiddler (#7187) Remove [[Open Collective]] from the tags of itself. This breaks the heirachy of the TOC and produces an entry that will not open its own list see HelloThere > Open Collective --- editions/tw5.com/tiddlers/about/Open Collective.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/about/Open Collective.tid b/editions/tw5.com/tiddlers/about/Open Collective.tid index 1113535c3..3a98ab274 100644 --- a/editions/tw5.com/tiddlers/about/Open Collective.tid +++ b/editions/tw5.com/tiddlers/about/Open Collective.tid @@ -1,7 +1,7 @@ title: Open Collective modified: 20221204165636777 created: 20221204165636777 -tags: About HelloThere [[Open Collective]] +tags: About HelloThere Open Collective is a platform for transparent fundraising and expenses for projects like TiddlyWiki. It is the official TiddlyWiki community fundraising space. From c7612ff4ce71120117dd952556a54754d6acb81e Mon Sep 17 00:00:00 2001 From: Bram Chen <bram.chen@gmail.com> Date: Mon, 9 Jan 2023 17:36:07 +0800 Subject: [PATCH 207/937] Update chinese language files (#7195) * Added documentation for more core fields --- languages/zh-Hans/Fields.multids | 4 ++++ languages/zh-Hant/Fields.multids | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/languages/zh-Hans/Fields.multids b/languages/zh-Hans/Fields.multids index af331b9a4..fc545848d 100644 --- a/languages/zh-Hans/Fields.multids +++ b/languages/zh-Hans/Fields.multids @@ -1,11 +1,13 @@ title: $:/language/Docs/Fields/ _canonical_uri: 外部图像条目的完整的 URI +author: 一个插件作者的姓名 bag: 条目的来源集的名称 caption: 显示于页签或按钮上的标题文字 code-body: 若设置为 ''yes'',视图模板将以程式码形式显示条目 color: 条目的 CSS 颜色值 component: 负责[[提醒条目|AlertMechanism]]的组件名称 +core-version: 对于一个插件,表示与其兼容的 TiddlyWiki 版本 created: 条目的创建日期 creator: 条目的创建者 current-tiddler: 用于缓存[[浏览历史列表|HistoryMechanism]]的最上层条目 @@ -22,7 +24,9 @@ list-before:当前条目名称将被添加到条目排序清单中的设置条 list-after: 当前条目名称将被添加到条目排序清单的设置条目名称之后,或若此字段存在但是空的,则被添加于清单的尾端 modified: 条目的最近修改日期与时间 modifier: 条目的最近修改者 +module-type: 对于 javascript 条目,指定其为何种模组 name: 具可读性的插件条目的名称 +parent-plugin: 对于一个插件,指定其为哪个插件的子插件 plugin-priority: 插件条目的优先级数值 plugin-type: 插件条目的类型 released: TiddlyWiki 的发布日期 diff --git a/languages/zh-Hant/Fields.multids b/languages/zh-Hant/Fields.multids index e4e491c33..ab2962b36 100644 --- a/languages/zh-Hant/Fields.multids +++ b/languages/zh-Hant/Fields.multids @@ -1,11 +1,13 @@ title: $:/language/Docs/Fields/ _canonical_uri: 外部圖片條目的完整的 URI +author: 一個插件作者的姓名 bag: 條目的來源集的名稱 caption: 顯示於頁籤或按鈕上的標題文字 code-body: 若設定為 ''yes'',檢視範本將以程式碼形式顯示條目 color: 條目的 CSS 顏色值 component: 負責[[警示條目|AlertMechanism]]的元件名稱 +core-version: 對於一個插件,表示與其相容的 TiddlyWiki 版本 created: 條目的建立日期 creator: 條目的建立者 current-tiddler: 用於快取[[瀏覽歷史列表|HistoryMechanism]]的最上層條目 @@ -22,7 +24,9 @@ list-before: 當前條目名稱將被新增到條目排序清單中的設定條 list-after: 當前條目名稱將被新增到條目排序清單中的設定條目名稱之後,或若此欄位存在但是空的,則被新增於清單的尾端 modified: 條目的最近修改日期與時間 modifier: 條目的最近修改者 +module-type: 對於 javascript 條目,指定其為何種模組 name: 具可讀性的套件條目的名稱 +parent-plugin: 對於一個插件,指定其為哪個插件的子插件 plugin-priority: 套件條目的優先級數值 plugin-type: 套件條目的類型 released: TiddlyWiki 的釋出日期 From 9c70ee34d4c5da456e01dfc7a012db3643429cc4 Mon Sep 17 00:00:00 2001 From: Marxsal <throaway@yahoo.com> Date: Tue, 10 Jan 2023 14:18:32 -0800 Subject: [PATCH 208/937] Update community resources TiddlyResearch and Drift (#7198) --- ...iddlyResearch by Kebi.tid => _TiddlyStudy_ by Kebi.tid} | 7 ++++--- .../tiddlers/community/editions/Drift by Tony K.tid | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) rename editions/tw5.com/tiddlers/{community/editions/TiddlyResearch by Kebi.tid => _TiddlyStudy_ by Kebi.tid} (79%) diff --git a/editions/tw5.com/tiddlers/community/editions/TiddlyResearch by Kebi.tid b/editions/tw5.com/tiddlers/_TiddlyStudy_ by Kebi.tid similarity index 79% rename from editions/tw5.com/tiddlers/community/editions/TiddlyResearch by Kebi.tid rename to editions/tw5.com/tiddlers/_TiddlyStudy_ by Kebi.tid index 680009c41..c1e50ae0a 100644 --- a/editions/tw5.com/tiddlers/community/editions/TiddlyResearch by Kebi.tid +++ b/editions/tw5.com/tiddlers/_TiddlyStudy_ by Kebi.tid @@ -1,8 +1,9 @@ created: 20210101162308245 -modified: 20210101201435693 +modified: 20230110220417543 tags: [[Community Editions]] -title: "TiddlyResearch" by Kebi -url: https://kebifurai.github.io/TiddlyResearch/ +title: "TiddlyStudy" by Kebi +type: text/vnd.tiddlywiki +url: https://postkevone.github.io/tiddlystudy/ A adaptation of TiddlyWiki perfect for using as a Notebook sysetem. diff --git a/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid b/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid index 7c4112db7..542a21bf8 100644 --- a/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid +++ b/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid @@ -1,8 +1,9 @@ created: 20210101161529206 -modified: 20210101201435693 +modified: 20230110220010665 tags: [[Community Editions]] title: "Drift - Collect, Organise, Grow." by Tony K -url: https://akhater.github.io/drift/ +type: text/vnd.tiddlywiki +url: https://github.com/bmann/drift-tiddlywiki-template/tree/master/drift A adaptation of TiddlyWiki perfect for using as a Notebook sysetem. From 494ee984f8ab3bbba0fa85779759c7417d50c3b8 Mon Sep 17 00:00:00 2001 From: Mohammad Rahmani <830394+kookma@users.noreply.github.com> Date: Wed, 11 Jan 2023 22:27:21 +0330 Subject: [PATCH 209/937] Update Macro Definitions in WikiText.tid (#7201) Ref: https://talk.tiddlywiki.org/t/requesting-macro-massage-willing-to-donate-50-to-tw/5833/17 Add explanation for single line nested macro --- .../wikitext/Macro Definitions in WikiText.tid | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid index cae2b2009..eb74ead1a 100644 --- a/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Macro Definitions in WikiText.tid @@ -98,5 +98,17 @@ Note that the textual substitution of macro parameters that occurs when the oute Parameters of nested macros can also be accessed via the `<<__variablename__>>` syntax. As ordinary variables, these parameters are available within nested child macros (and grandchildren etc). +For the one-liner macro definition, the `\end` remains unnecessary for the inner macro. For example + +<<wikitext-example-without-html src:"""\define special-button(caption:"Click me") +\define actions() <$action-sendmessage $message="tm-notify" $param="HelloThere"/> +<$button actions=<<actions>>> +$caption$ +</$button> +\end special-button + +<<special-button>> +""">> + A more formal [[presentation|Macro Definition Syntax]] of this syntax is also available. From a52da675635e78a382d88fda320eec95b4b71a05 Mon Sep 17 00:00:00 2001 From: btheado <brian.theado@gmail.com> Date: Thu, 12 Jan 2023 12:24:32 -0600 Subject: [PATCH 210/937] Use decodeURIComponent in share plugin rawmarkup (#7204) --- plugins/tiddlywiki/share/rawmarkup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tiddlywiki/share/rawmarkup.js b/plugins/tiddlywiki/share/rawmarkup.js index 4286126a7..c0ab77659 100644 --- a/plugins/tiddlywiki/share/rawmarkup.js +++ b/plugins/tiddlywiki/share/rawmarkup.js @@ -17,7 +17,7 @@ var rawHash = document.location.hash.substring(1); if(rawHash.charAt(0) === "#") { var hash; try{ - hash = $tw.utils.decodeURIComponentSafe(rawHash.substring(1)); + hash = decodeURIComponent(rawHash.substring(1)); } catch(ex) { console.log("Share plugin: Error decoding location hash",ex); } From 0ee53bbc01225d7a7aae1cf7a892a33dd874805f Mon Sep 17 00:00:00 2001 From: Wincent Balin <wincent.balin@gmail.com> Date: Thu, 12 Jan 2023 21:59:34 +0100 Subject: [PATCH 211/937] Use British English (#7180) Fixed some typos too. --- editions/d3demo/tiddlers/HelloThere.tid | 2 +- .../Microkernel Architecture.tid | 2 +- .../tiddlers/from Heigele and Jurke/Syncadaptor.tid | 2 +- .../Tiddler as Basic Element.tid | 4 ++-- .../tiddlers/from tw5.com/mechanisms/BootMechanism.tid | 2 +- .../tiddlers/documentation/Making a new section.tid | 2 +- editions/test/tiddlers/tests/test-widget.js | 2 +- .../tiddlers/community/editions/Drift by Tony K.tid | 2 +- .../editions/_Noteself_ by Danielo Rodriguez.tid | 10 +++++----- .../tiddlers/community/examples/A Thesis Notebook.tid | 2 +- .../tiddlers/community/plugins/Plugins by TheDiveO.tid | 4 ++-- .../tiddlers/community/plugins/Shiraz by Mohammad.tid | 4 ++-- .../community/plugins/TiddlyMap by Felix Kuppers.tid | 6 +++--- .../community/plugins/TiddlyWiki for Scholars.tid | 2 +- .../community/plugins/Tiddlyshow by Mohammad.tid | 2 +- .../community/plugins/Todolist by Mohammad.tid | 2 +- .../community/plugins/_Slides and Stories_ by Jan.tid | 2 +- .../resources/Semantic Colors by Mohammad.tid | 4 ++-- ...iddlyWiki5 for Google Firebase by Peter Neumark.tid | 2 +- .../resources/TiddlyServer by Arlen Beiler.tid | 2 +- .../community/resources/_Dropboard_ by Reid Gould.tid | 2 +- editions/tw5.com/tiddlers/concepts/Wiki.tid | 2 +- editions/tw5.com/tiddlers/features/Modals.tid | 2 +- .../tiddlers/messages/WidgetMessage_ tm-modal.tid | 2 +- .../tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid | 2 +- .../Using the external JavaScript template.tid | 8 ++++---- .../tiddlers/webserver/WebServer Anonymous Access.tid | 2 +- .../webserver/WebServer Parameter_ username.tid | 2 +- 28 files changed, 41 insertions(+), 41 deletions(-) diff --git a/editions/d3demo/tiddlers/HelloThere.tid b/editions/d3demo/tiddlers/HelloThere.tid index 8891b4543..492337346 100644 --- a/editions/d3demo/tiddlers/HelloThere.tid +++ b/editions/d3demo/tiddlers/HelloThere.tid @@ -1,6 +1,6 @@ title: HelloThere -This is a demo of TiddlyWiki5 incorporating a plugin for the [[D3.js]] visualization library. +This is a demo of TiddlyWiki5 incorporating a plugin for the [[D3.js]] visualisation library. ! Word Cloud diff --git a/editions/dev/tiddlers/from Heigele and Jurke/Microkernel Architecture.tid b/editions/dev/tiddlers/from Heigele and Jurke/Microkernel Architecture.tid index 84d53c348..6232885f2 100644 --- a/editions/dev/tiddlers/from Heigele and Jurke/Microkernel Architecture.tid +++ b/editions/dev/tiddlers/from Heigele and Jurke/Microkernel Architecture.tid @@ -5,7 +5,7 @@ sectionnumber: 2 tags: section doc title: Microkernel Architecture -This section describes the architecture of the ~TiddlyWiki-kernel. ~TiddlyWiki is based on a micro-kernel which provides only a small stack of functions. This design decision was made to introduce a cleaner mechanism for customization of ~TiddlyWiki. This section also describes the data-model of ~TiddlyWiki called tiddler. And it gives a overview to the modul system which developers can use to extend the functionality of the ~TiddlyWiki application. +This section describes the architecture of the ~TiddlyWiki-kernel. ~TiddlyWiki is based on a micro-kernel which provides only a small stack of functions. This design decision was made to introduce a cleaner mechanism for customisation of ~TiddlyWiki. This section also describes the data-model of ~TiddlyWiki called tiddler. And it gives a overview to the module system which developers can use to extend the functionality of the ~TiddlyWiki application. <$list filter="[!has[draft.of]has[chapter.of]chapter.of[Microkernel Architecture]tag[doc]sort[sub.num]]"> diff --git a/editions/dev/tiddlers/from Heigele and Jurke/Syncadaptor.tid b/editions/dev/tiddlers/from Heigele and Jurke/Syncadaptor.tid index 37c4558d9..b7c3ff76d 100644 --- a/editions/dev/tiddlers/from Heigele and Jurke/Syncadaptor.tid +++ b/editions/dev/tiddlers/from Heigele and Jurke/Syncadaptor.tid @@ -5,6 +5,6 @@ sub.num: 3 tags: doc title: Syncadaptor -A module with ``module-type: syncadaptor`` provides functionality to get a list of tiddlers (this list is provided as ~SkinnyTiddlers, which are normal tiddlers without the text field) and to load, save and delete single tiddlers. A syncadaptor can also provide functions to login and logout so that syncadaptor modules can be used to synchronize tiddlers with a remote server. +A module with ``module-type: syncadaptor`` provides functionality to get a list of tiddlers (this list is provided as ~SkinnyTiddlers, which are normal tiddlers without the text field) and to load, save and delete single tiddlers. A syncadaptor can also provide functions to login and logout so that syncadaptor modules can be used to synchronise tiddlers with a remote server. The syncer module only uses one syncadaptor and honours a special [[system tiddler|System Tiddlers]] [[$:/config/SyncFilter]] containing a [[filter string|Tags and Filter Mechanism]]. Tiddlers matching this filter string are saved to the server with a syncadapter. It uses the [[WebServer API|https://tiddlywiki.com/#WebServer%20API%3A%20Get%20All%20Tiddlers]] to load modified tiddlers from the server, which returns only non-system tiddlers. diff --git a/editions/dev/tiddlers/from Heigele and Jurke/Tiddler as Basic Element.tid b/editions/dev/tiddlers/from Heigele and Jurke/Tiddler as Basic Element.tid index b1d8edaf9..543e60814 100644 --- a/editions/dev/tiddlers/from Heigele and Jurke/Tiddler as Basic Element.tid +++ b/editions/dev/tiddlers/from Heigele and Jurke/Tiddler as Basic Element.tid @@ -27,10 +27,10 @@ On a different level, a tiddler is also the basic unit of work for the wiki user This makes sense for multiple reasons: Because the UI of TiddlyWiki is build from tiddlers, the wiki user is able to edit the interface of his own TiddlyWiki just by editing a wiki page. For example to add a list of tiddler links to the sidebar, the user just needs to create a new tiddler, put the links into this tiddler and tag this tiddler with ``$:/tags/SideBar``. -This way the user can customize his work environment just by using mechanisms he already uses to manage his wiki pages. +This way the user can customise his work environment just by using mechanisms he already uses to manage his wiki pages. Tiddlers consist of fields. When using a tiddler as wiki page, the user can use these fields to store meta information, like tags. -Because fields for metadata and especially tags are an easy way for the user to organize his wiki pages, TiddlyWiki provides a special filter mechanism to choose tiddlers using their metadata. +Because fields for metadata and especially tags are an easy way for the user to organise his wiki pages, TiddlyWiki provides a special filter mechanism to choose tiddlers using their metadata. A filter string like ``[tag[learncard]topic[math]!tag[successful]]`` would filter all tiddlers tagged with "learncard", with the value "math" in the topic-field and are not tagged with "successful". A user could use this filter together with the ``<$list>`` widget to display a list of all math learncards which are not yet answered successfully in a wiki page. diff --git a/editions/dev/tiddlers/from tw5.com/mechanisms/BootMechanism.tid b/editions/dev/tiddlers/from tw5.com/mechanisms/BootMechanism.tid index fa92358d0..eb274974c 100644 --- a/editions/dev/tiddlers/from tw5.com/mechanisms/BootMechanism.tid +++ b/editions/dev/tiddlers/from tw5.com/mechanisms/BootMechanism.tid @@ -23,7 +23,7 @@ The boot kernel includes: * Several short shared utility functions * A handful of methods implementing the module mechanism * The `$tw.Tiddler` class (and field definition plugins) -* The `$tw.Wiki` class (and tiddler deserialization methods) +* The `$tw.Wiki` class (and tiddler deserialisation methods) * Code for the browser to load tiddlers from the HTML DOM * Code for the server to load tiddlers from the file system diff --git a/editions/resumebuilder/tiddlers/documentation/Making a new section.tid b/editions/resumebuilder/tiddlers/documentation/Making a new section.tid index e787beb92..c6f81c8f7 100644 --- a/editions/resumebuilder/tiddlers/documentation/Making a new section.tid +++ b/editions/resumebuilder/tiddlers/documentation/Making a new section.tid @@ -15,7 +15,7 @@ You can have multiple template tiddlers that use the same input and options tidd !!Display tiddler -This is the container used to display the section in the résumé itself, there isn't any customization here. +This is the container used to display the section in the résumé itself, there isn't any customisation here. ''Required tags'': `Section Display`<br> ''Required name format'': `$:/display/(section name) Display`<br> diff --git a/editions/test/tiddlers/tests/test-widget.js b/editions/test/tiddlers/tests/test-widget.js index 19848e761..2614d6f52 100755 --- a/editions/test/tiddlers/tests/test-widget.js +++ b/editions/test/tiddlers/tests/test-widget.js @@ -268,7 +268,7 @@ describe("Widget module", function() { expect(wrapper.innerHTML).toBe("<p>Happy Result</p>"); // This is important. $Let needs to be aware enough not to let its - // own variables interfere with its ability to recognize no change. + // own variables interfere with its ability to recognise no change. // Doesn't matter that nothing has changed, we just need to make sure // it recognizes that that its outward facing variables are unchanged // EVEN IF some intermediate variables did change, there's no need to diff --git a/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid b/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid index 542a21bf8..2f3876929 100644 --- a/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid +++ b/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid @@ -10,7 +10,7 @@ A adaptation of TiddlyWiki perfect for using as a Notebook sysetem. {{!!url}} <<< -Drift is an adaptation of TiddlyWiki with the goal of helping you Collect. Organize. and Grow. your ideas while keeping tab on how they interconnect together and fluidly Drift from one to another. +Drift is an adaptation of TiddlyWiki with the goal of helping you Collect. Organise. and Grow. your ideas while keeping tab on how they interconnect together and fluidly Drift from one to another. The 2 main components of Drift are TWCrosslinks and DailyNotes so you never miss an idea diff --git a/editions/tw5.com/tiddlers/community/editions/_Noteself_ by Danielo Rodriguez.tid b/editions/tw5.com/tiddlers/community/editions/_Noteself_ by Danielo Rodriguez.tid index 8c088ba9c..6333856d5 100644 --- a/editions/tw5.com/tiddlers/community/editions/_Noteself_ by Danielo Rodriguez.tid +++ b/editions/tw5.com/tiddlers/community/editions/_Noteself_ by Danielo Rodriguez.tid @@ -11,7 +11,7 @@ title: "Noteself" by Danielo Rodríguez type: text/vnd.tiddlywiki url: https://noteself.github.io/ -~NoteSelf is your personal, private, customizable, Evernote-like experience. +~NoteSelf is your personal, private, customisable, Evernote-like experience. You want cloud? Fine! You don't? Fine too! It's all yours, It's your decision! Why not be a bit selfish? @@ -26,9 +26,9 @@ You already know and love Evernote, we know it. It is comfortable, it syncs, has Wow, it's almost perfect, but what about: * Privacy - Everything is stored on the Evernote's servers! -* Customization - If you don't like the interface of Evernote, there's nothing you can do +* Customisation - If you don't like the interface of Evernote, there's nothing you can do -~NoteSelf is built on top of ~TiddlyWiki, a powerful, free, highly customizable and open-source personal wiki. -We took the best of it, it's powerful customization system, and mixed it with one of the best -embedded databases available, [[PouchDb|http://www.pouchdb.com]], for bringing the synchronization capabilities you need. +~NoteSelf is built on top of ~TiddlyWiki, a powerful, free, highly customisable and open-source personal wiki. +We took the best of it, it's powerful customisation system, and mixed it with one of the best +embedded databases available, [[PouchDb|http://www.pouchdb.com]], for bringing the synchronisation capabilities you need. <<< diff --git a/editions/tw5.com/tiddlers/community/examples/A Thesis Notebook.tid b/editions/tw5.com/tiddlers/community/examples/A Thesis Notebook.tid index c43fb1475..0107eeba3 100644 --- a/editions/tw5.com/tiddlers/community/examples/A Thesis Notebook.tid +++ b/editions/tw5.com/tiddlers/community/examples/A Thesis Notebook.tid @@ -11,7 +11,7 @@ A thesis notebook based on TiddlyWiki. <<< This is an example of a thesis notebook powered by TiddlyWiki 5.0.8-beta. -TiddlyWiki is a great piece of software created by Jeremy Ruston. It allows you, among other things, to take notes, organize ideas, store information, and display all your stuff the way you want. It is an incredibly flexible tool you can adapt to fit almost all your needs. +TiddlyWiki is a great piece of software created by Jeremy Ruston. It allows you, among other things, to take notes, organise ideas, store information, and display all your stuff the way you want. It is an incredibly flexible tool you can adapt to fit almost all your needs. This TiddlyWiki has been customized to serve as a philosophy notebook centered around authors, books and papers, concepts and theories, and personal notes. I use it along with Zotero, which is a dedicated bibliography software. Both are free, open source projects. TiddlyWiki can be downloaded at https://tiddlywiki.com. <<< diff --git a/editions/tw5.com/tiddlers/community/plugins/Plugins by TheDiveO.tid b/editions/tw5.com/tiddlers/community/plugins/Plugins by TheDiveO.tid index e65332804..c81cbbb35 100644 --- a/editions/tw5.com/tiddlers/community/plugins/Plugins by TheDiveO.tid +++ b/editions/tw5.com/tiddlers/community/plugins/Plugins by TheDiveO.tid @@ -12,11 +12,11 @@ A collection of plugins from TheDiveO. [[TheDiveO's Third Flow|http://thediveo.github.io/ThirdFlow/]] plugin construction system: <<< -The ~ThirdFlow plugin brings to you another way to develop customization plugins for TiddlyWiki 5. It is not enforcing a specific development flow, it simply tries to help you. Otherwise, it tries to stay out of your way. +The ~ThirdFlow plugin brings to you another way to develop customisation plugins for TiddlyWiki 5. It is not enforcing a specific development flow, it simply tries to help you. Otherwise, it tries to stay out of your way. <<< [[TheDiveO's FontAwesome|http://thediveo.github.io/TW5FontAwesome/]] plugin: <<< -The FontAwesome plugin supports embedding Font Awesome in TiddlyWiki 5. There is no need to install this font into your operating system in order to use it with TiddlyWiki 5. The font is already embedded in this TiddlyWiki 5 customization plugin instead, so nothing else to install. +The FontAwesome plugin supports embedding Font Awesome in TiddlyWiki 5. There is no need to install this font into your operating system in order to use it with TiddlyWiki 5. The font is already embedded in this TiddlyWiki 5 customisation plugin instead, so nothing else to install. <<< diff --git a/editions/tw5.com/tiddlers/community/plugins/Shiraz by Mohammad.tid b/editions/tw5.com/tiddlers/community/plugins/Shiraz by Mohammad.tid index a8691284d..2f81a10e5 100644 --- a/editions/tw5.com/tiddlers/community/plugins/Shiraz by Mohammad.tid +++ b/editions/tw5.com/tiddlers/community/plugins/Shiraz by Mohammad.tid @@ -9,7 +9,7 @@ Shiraz plugin is a very small in size and framework to create stylish contents i {{!!url}} -Shiraz plugin contains extended markups, macros, styles, and many customization to empty Tiddlywiki and can be used as a ''starter kit''. +Shiraz plugin contains extended markups, macros, styles, and many customisation to empty Tiddlywiki and can be used as a ''starter kit''. Some of Shiraz features are: @@ -18,7 +18,7 @@ Some of Shiraz features are: * Sortable tables * Display on demand, slider, and details * Images, basic image macros, slidein, and overlay images, polaroid and pretty images -* Table customization tools +* Table customisation tools * Sticky footer * Multi columns tiddler * Multi column story river diff --git a/editions/tw5.com/tiddlers/community/plugins/TiddlyMap by Felix Kuppers.tid b/editions/tw5.com/tiddlers/community/plugins/TiddlyMap by Felix Kuppers.tid index 9e8cc8283..b111a248b 100644 --- a/editions/tw5.com/tiddlers/community/plugins/TiddlyMap by Felix Kuppers.tid +++ b/editions/tw5.com/tiddlers/community/plugins/TiddlyMap by Felix Kuppers.tid @@ -11,8 +11,8 @@ An interactive network visualisation plugin based on [[Vis.js|http://visjs.org]] ~TiddlyMap is a TiddlyWiki plugin that allows you to link your wiki-topics (tiddlers) in order to create clickable graphs. By creating relations between your topics you can easily do the following: * Create concept maps and quickly manifest your ideas in tiddlers. -* Create task-dependency graphs to organize and describe your tasks. -* Visualize your topic structures to get an immediate grasp of topics and relations. +* Create task-dependency graphs to organise and describe your tasks. +* Visualise your topic structures to get an immediate grasp of topics and relations. -In general you may create, visualize and describe any network-structure you have in mind. +In general you may create, visualise and describe any network-structure you have in mind. <<< diff --git a/editions/tw5.com/tiddlers/community/plugins/TiddlyWiki for Scholars.tid b/editions/tw5.com/tiddlers/community/plugins/TiddlyWiki for Scholars.tid index f53bf3d21..3bdc1c269 100644 --- a/editions/tw5.com/tiddlers/community/plugins/TiddlyWiki for Scholars.tid +++ b/editions/tw5.com/tiddlers/community/plugins/TiddlyWiki for Scholars.tid @@ -10,5 +10,5 @@ An early release of an edition of TiddlyWiki customised for rigorous, academic n {{!!url}} <<< -TiddlyWiki for Scholars is a personal customization of TiddlyWiki 5.0.13-beta I made for note-taking from readings, but it can be useful for other purposes. The idea behind this adaptation is to show and to allow creating relevant data related to the current tiddler without leaving the tiddler. +TiddlyWiki for Scholars is a personal customisation of TiddlyWiki 5.0.13-beta I made for note-taking from readings, but it can be useful for other purposes. The idea behind this adaptation is to show and to allow creating relevant data related to the current tiddler without leaving the tiddler. <<< diff --git a/editions/tw5.com/tiddlers/community/plugins/Tiddlyshow by Mohammad.tid b/editions/tw5.com/tiddlers/community/plugins/Tiddlyshow by Mohammad.tid index a9e588a4b..d7364fce3 100644 --- a/editions/tw5.com/tiddlers/community/plugins/Tiddlyshow by Mohammad.tid +++ b/editions/tw5.com/tiddlers/community/plugins/Tiddlyshow by Mohammad.tid @@ -13,4 +13,4 @@ Tiddlyshow contains the following features * Tools for preparing slides * Shortcut keys for navigation (forward and backward) -* Themes to colorify and customize the slideshow +* Themes to colorify and customise the slideshow diff --git a/editions/tw5.com/tiddlers/community/plugins/Todolist by Mohammad.tid b/editions/tw5.com/tiddlers/community/plugins/Todolist by Mohammad.tid index 5d9d9646b..7e395814b 100644 --- a/editions/tw5.com/tiddlers/community/plugins/Todolist by Mohammad.tid +++ b/editions/tw5.com/tiddlers/community/plugins/Todolist by Mohammad.tid @@ -9,6 +9,6 @@ Todolist is a small pure wikitext plugin, contain all tools to work with todo l {{!!url}} -With Todolist, easily organize and prioritize your tasks and projects so you’ll always know exactly what to work on next. +With Todolist, easily organise and prioritise your tasks and projects so you’ll always know exactly what to work on next. Todolist creates custom UI and lets you to add new items, set priority, done/undone items, archive, delete. Using Todolist plugin it is possible to create several todo lists in one Tiddlywiki. diff --git a/editions/tw5.com/tiddlers/community/plugins/_Slides and Stories_ by Jan.tid b/editions/tw5.com/tiddlers/community/plugins/_Slides and Stories_ by Jan.tid index 2a794305d..b8167db1b 100644 --- a/editions/tw5.com/tiddlers/community/plugins/_Slides and Stories_ by Jan.tid +++ b/editions/tw5.com/tiddlers/community/plugins/_Slides and Stories_ by Jan.tid @@ -5,7 +5,7 @@ title: "Slides and Stories" by Jan type: text/vnd.tiddlywiki url: http://slidesnstories.tiddlyspot.com -Slides and Stories is a repository of the tools to optimize TW for scientific research and for presenting and publishing results. +Slides and Stories is a repository of the tools to optimise TW for scientific research and for presenting and publishing results. {{!!url}} diff --git a/editions/tw5.com/tiddlers/community/resources/Semantic Colors by Mohammad.tid b/editions/tw5.com/tiddlers/community/resources/Semantic Colors by Mohammad.tid index a552f8314..d2ff0400e 100644 --- a/editions/tw5.com/tiddlers/community/resources/Semantic Colors by Mohammad.tid +++ b/editions/tw5.com/tiddlers/community/resources/Semantic Colors by Mohammad.tid @@ -5,14 +5,14 @@ title: Semantic Colors by Mohammad type: text/vnd.tiddlywiki url: https://kookma.github.io/TW-Semantic-Colors/ -Semantic colors are set of CSS to apply colorful theme to individual tiddlers for categorization purpose. +Semantic colors are set of CSS to apply colorful theme to individual tiddlers for categorisation purpose. {{!!url}} Tiddlywiki "semantic colors" has two objectives: # How it is simply possible to apply theme to an individual tiddler -# Use semantic colors for categorization +# Use semantic colors for categorisation ;Some use cases :Learning materials (each topic, category can have dedicated semantic color, like learning a foreign language) diff --git a/editions/tw5.com/tiddlers/community/resources/TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid b/editions/tw5.com/tiddlers/community/resources/TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid index 0458b4a55..1e1dc2b92 100644 --- a/editions/tw5.com/tiddlers/community/resources/TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid +++ b/editions/tw5.com/tiddlers/community/resources/TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid @@ -20,7 +20,7 @@ I've been using TiddlyWiki5 with Google Firebase for over a year now. It's stabl Please consider this version a proof of concept rather than a polished product! My focus was on multi-device or small-team collaboration: -* Basic authorization (bags have an access policy determining who can read / write them). +* Basic authorisation (bags have an access policy determining who can read / write them). * Multiple wikis can be hosted under a single firebase account. * It uses Firebase's built-in social auth to log in users. * Tiddlers are written individually with locking, preventing users overwriting each others' updates. diff --git a/editions/tw5.com/tiddlers/community/resources/TiddlyServer by Arlen Beiler.tid b/editions/tw5.com/tiddlers/community/resources/TiddlyServer by Arlen Beiler.tid index 88c0bf623..9cb1f5272 100644 --- a/editions/tw5.com/tiddlers/community/resources/TiddlyServer by Arlen Beiler.tid +++ b/editions/tw5.com/tiddlers/community/resources/TiddlyServer by Arlen Beiler.tid @@ -18,7 +18,7 @@ An extension to the Node.js configuration of TiddlyWiki that adds support for st <<< TiddlyServer 2.0 takes the server command of TiddlyWiki on NodeJS and adds it to a static file server. This means you can load and serve any TiddlyWiki data folder in the same way you can serve a single file TiddlyWiki. -But you don't need to serve files and folders from just one place, you can serve them from multiple places anywhere on your harddrive (literally anywhere NodeJS can stat, readdir, and readFile). You can even organize them into virtual folders (aka aliases in Apache and mounts in Express). +But you don't need to serve files and folders from just one place, you can serve them from multiple places anywhere on your harddrive (literally anywhere NodeJS can stat, readdir, and readFile). You can even organise them into virtual folders (aka aliases in Apache and mounts in Express). The main point, of course, is that you can actually edit your files, not just look at them. Single file TiddlyWikis use the put saver, which needs to be patched using a bookmarklet included on the index page. The instructions for this are below under the heading "One thing that needs to be noted". diff --git a/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid b/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid index efda31cbe..5c528b083 100644 --- a/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid +++ b/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid @@ -5,7 +5,7 @@ title: "Dropboard" by Reid Gould type: text/vnd.tiddlywiki url: https://github.com/reidgould/tiddlywiki-dropboard -A TiddlyWiki plugin for kanban-like organization in the style of Trello™ using boards, lists, and cards. +A TiddlyWiki plugin for kanban-like organisation in the style of Trello™ using boards, lists, and cards. {{!!url}} diff --git a/editions/tw5.com/tiddlers/concepts/Wiki.tid b/editions/tw5.com/tiddlers/concepts/Wiki.tid index f1bd49505..107dc6a4c 100644 --- a/editions/tw5.com/tiddlers/concepts/Wiki.tid +++ b/editions/tw5.com/tiddlers/concepts/Wiki.tid @@ -3,4 +3,4 @@ tags: Concepts Groups of uniquely titled tiddlers are contained in WikiStore objects. -The WikiStore also manages the plugin modules used for widgets, and operations like serializing, deserializing, parsing and rendering tiddlers. +The WikiStore also manages the plugin modules used for widgets, and operations like serialising, deserialising, parsing and rendering tiddlers. diff --git a/editions/tw5.com/tiddlers/features/Modals.tid b/editions/tw5.com/tiddlers/features/Modals.tid index 045822958..9cf663845 100644 --- a/editions/tw5.com/tiddlers/features/Modals.tid +++ b/editions/tw5.com/tiddlers/features/Modals.tid @@ -6,7 +6,7 @@ type: text/vnd.tiddlywiki Modals (or "wizards") fade the main TiddlyWiki window to display an isolated tiddler that must be explicitly dismissed by the user. -The tiddler to be displayed can contain the following optional fields that are used to customize the modal: +The tiddler to be displayed can contain the following optional fields that are used to customise the modal: |!Field |!Description | |footer|The footer text for the modal| diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid index 9a5d8ccd1..9b459fb7b 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid @@ -12,7 +12,7 @@ type: text/vnd.tiddlywiki The modal message is usually generated with the ButtonWidget. The modal message is handled by the TiddlyWiki core. -[[Fields within the tiddler|Modals]] being displayed in the modal can be used to customize its appearance. +[[Fields within the tiddler|Modals]] being displayed in the modal can be used to customise its appearance. !! paramObject diff --git a/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid b/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid index 8199073b8..6086dfebc 100644 --- a/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid +++ b/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid @@ -52,7 +52,7 @@ Directory specifications in the `directories` array may take the following forms ** ''filesRegExp'' - (optional) a [[regular expression|https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions]] that matches the filenames of the files that should be processed within the directory ** ''isTiddlerFile'' - (required) if `true`, the file will be treated as a [[tiddler file|TiddlerFiles]] and deserialised to extract the tiddlers. Otherwise, the raw content of the file is assigned to the `text` field without any parsing ** ''isEditableFile'' - <<.from-version "5.1.23">> (optional) if `true`, changes to the tiddler be saved back to the original file. The tiddler will be saved back to the original filepath as long as it does not generate a result from the $:/config/FileSystemPath filters, which will override the final filepath generated if a result is returned from a filter. -** ''searchSubdirectories'' - <<.from-version "5.1.23">> (optional) if `true`, all subdirectories of the //path// are searched recursively for files that match the (optional) //filesRegExp//. If no //filesRegExp// is provided, all files in all subdirectoies of the //path// are loaded. Tiddler titles generated via a //source// attribute (see above) will only include the filename, not any of the subdirectories of the path. If this results in multiple files with loaded with the same tiddler title, then only the last file loaded under that tiddler title will be in memory. In order to prevent this, you must have multiple directory objects listed and customize the title field with a //prefix// or //suffix// alongside the //source// attribute. +** ''searchSubdirectories'' - <<.from-version "5.1.23">> (optional) if `true`, all subdirectories of the //path// are searched recursively for files that match the (optional) //filesRegExp//. If no //filesRegExp// is provided, all files in all subdirectories of the //path// are loaded. Tiddler titles generated via a //source// attribute (see above) will only include the filename, not any of the subdirectories of the path. If this results in multiple files with loaded with the same tiddler title, then only the last file loaded under that tiddler title will be in memory. In order to prevent this, you must have multiple directory objects listed and customise the title field with a //prefix// or //suffix// alongside the //source// attribute. ** ''fields'' - (required) an object containing values that override or customise the fields provided in the tiddler file (see above) Fields can also be overridden for particular files by creating a file with the same name plus the suffix `.meta` -- see TiddlerFiles. diff --git a/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid b/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid index 918878b0d..1aa61e86a 100644 --- a/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid +++ b/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid @@ -26,7 +26,7 @@ tiddlywiki YOUR_WIKI_FOLDER --listen 'root-tiddler=$:/core/save/all-external-js' <<.tip """On Windows, Command Prompt (CMD) users need to replace single quotes `'` with double quotation marks `"`.""">> -!! Initializing a new wiki +!! Initialising a new wiki The provided edition `server-external-js` contains all the configuration necessary to use the external ~JavaScript template. Here is an example: @@ -37,10 +37,10 @@ tiddlywiki ./myNewWiki --build listen The above commands perform the following: -* Create a new wiki with external JavaScript customization included. +* Create a new wiki with external JavaScript customisation included. * Start the server with external ~JavaScript enabled. The server listens on port 8080. Visit http://localhost:8080 in your browser. -To customize your `--build listen` command, see [[tiddlywiki.info Files]] and [[ListenCommand]]. +To customise your `--build listen` command, see [[tiddlywiki.info Files]] and [[ListenCommand]]. ! Using the external ~JavaScript template with the single file configuration @@ -52,7 +52,7 @@ You can use the "external-js" template with your single file wiki, but this requ If you start your ~TiddlyWiki server in the "external-js" configuration, snapshots you save from the wiki will also have the external-js configuration. -You can click on the "cloud" button and choose <<.icon $:/core/images/download-button>> ''Save snapshot for offline use''. The html wiki you saved will have a reduced file size compared to a regular snapshot because the ~TiddlyWiki core code has been externalized. However, to be able to use this wiki, you ''must'' also have a copy of ~TiddlyWiki's core ~JavaScript in the same directory; see below for instructions for obtaining it +You can click on the "cloud" button and choose <<.icon $:/core/images/download-button>> ''Save snapshot for offline use''. The html wiki you saved will have a reduced file size compared to a regular snapshot because the ~TiddlyWiki core code has been externalised. However, to be able to use this wiki, you ''must'' also have a copy of ~TiddlyWiki's core ~JavaScript in the same directory; see below for instructions for obtaining it The "server-external-js" edition lets you save the snapshot from the command line: diff --git a/editions/tw5.com/tiddlers/webserver/WebServer Anonymous Access.tid b/editions/tw5.com/tiddlers/webserver/WebServer Anonymous Access.tid index 1453154f9..893c6094a 100644 --- a/editions/tw5.com/tiddlers/webserver/WebServer Anonymous Access.tid +++ b/editions/tw5.com/tiddlers/webserver/WebServer Anonymous Access.tid @@ -4,5 +4,5 @@ tags: [[WebServer Authentication]] title: WebServer Anonymous Access type: text/vnd.tiddlywiki -Anonymous access is only permitted if the special ''(anon)'' token is present in the [[readers|WebServer Parameter: readers]] (for reading) and optionally [[writers|WebServer Parameter: writers]] (for writing) authorization parameters. +Anonymous access is only permitted if the special ''(anon)'' token is present in the [[readers|WebServer Parameter: readers]] (for reading) and optionally [[writers|WebServer Parameter: writers]] (for writing) authorisation parameters. diff --git a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ username.tid b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ username.tid index 6b670e6d4..cc457815d 100644 --- a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ username.tid +++ b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ username.tid @@ -8,7 +8,7 @@ type: text/vnd.tiddlywiki The [[web server configuration parameter|WebServer Parameters]] ''username'', in conjunction with its companion [[password|WebServer Parameter: password]]: * Enables [[Basic Authentication|WebServer Basic Authentication]] with the specified username/password combination being added to any credentials specified with the [[credentials|WebServer Parameter: credentials]] parameter -* The specified username is used as a default value for the [[readers|WebServer Parameter: readers]] and [[writers|WebServer Parameter: writers]] authorization parameters if they are not specified +* The specified username is used as a default value for the [[readers|WebServer Parameter: readers]] and [[writers|WebServer Parameter: writers]] authorisation parameters if they are not specified !! Examples From 6e10918a28451fc82cdbb494377bcdcd05a10337 Mon Sep 17 00:00:00 2001 From: btheado <brian.theado@gmail.com> Date: Thu, 12 Jan 2023 17:36:21 -0600 Subject: [PATCH 212/937] Fixes share plugin stale url and prevents wikification of generated json (#7207) * Use tv-action-refresh-policy to ensure generated share url is up-to-date * Use 'text/raw' output to prevent generated json from being wikified --- plugins/tiddlywiki/share/wizard.tid | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/tiddlywiki/share/wizard.tid b/plugins/tiddlywiki/share/wizard.tid index dab3e1e58..8dbf96989 100644 --- a/plugins/tiddlywiki/share/wizard.tid +++ b/plugins/tiddlywiki/share/wizard.tid @@ -1,7 +1,7 @@ title: $:/plugins/tiddlywiki/share/wizard \define generate-json() -<$macrocall $name="jsontiddlers" filter=<<share-filter>> spaces="" $output="text/vnd.tiddlywiki"/> +<$macrocall $name="jsontiddlers" filter=<<share-filter>> spaces="" $output="text/raw"/> \end \define inner-share-actions() @@ -12,10 +12,12 @@ title: $:/plugins/tiddlywiki/share/wizard \define share-actions() <$set name="base-url" value={{$:/config/plugins/share/base-url}} emptyValue={{$:/info/url/full}}> +<$set name="tv-action-refresh-policy" value="always"> <$set name="share-filter" value={{$:/config/plugins/share/filter}}> <<inner-share-actions>> </$set> </$set> +</$set> \end <div class="tc-sharing-wizard-wrapper"> From b5134951e554df4abce136bf1ae8c8ad130d1fc8 Mon Sep 17 00:00:00 2001 From: btheado <brian.theado@gmail.com> Date: Fri, 13 Jan 2023 04:48:51 -0600 Subject: [PATCH 213/937] Allow attribute override in innerwiki widget (#7176) --- plugins/tiddlywiki/innerwiki/innerwiki.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tiddlywiki/innerwiki/innerwiki.js b/plugins/tiddlywiki/innerwiki/innerwiki.js index e1c25f8fa..983128a26 100644 --- a/plugins/tiddlywiki/innerwiki/innerwiki.js +++ b/plugins/tiddlywiki/innerwiki/innerwiki.js @@ -295,7 +295,7 @@ InnerWikiWidget.prototype.readTiddlerDataWidget = function(dataWidget) { if(tiddler) { fields = tiddler.getFieldStrings(); } - results.push($tw.utils.extend({},item,fields)); + results.push($tw.utils.extend({},fields,item)); }) return results; } else { From 0c328a1696bb01282203fb1a10d3495eb87974c1 Mon Sep 17 00:00:00 2001 From: cdruan <80615570+cdruan@users.noreply.github.com> Date: Sat, 14 Jan 2023 01:49:04 -0800 Subject: [PATCH 214/937] Revamp markdown plugin (#6528) * Rename markdown to markdown-legacy * Change how default renderWikiTextPragma value is displayed To prevent out-of-sync, dynamically display the default value of renderWikiTextPragma from the shadow tiddler instead of hard coding the text in the "usage.tid". * Repackage remarkable-based markdown plugin as markdown-legacy - Rename plugin title to $:/plugins/tiddlywiki/markdown-legacy - Add support for "text/markdown" MIME type and set that as the default when creating new markdown tiddlers * Create new markdown plugin * add support to text/markdown MIME type * remove linkify and linkNewWindow config options - linkify feature should be controlled by "extlink" TW parser rule; enabling markdown's linkify option will interfere with parsing - remove the possibility to open external links in the same tab/window to match TW's behavior * Ignore latex-parser wikirule in rednerWikiTextPragma * Prevent camel-case link text from generating a link * Update editions/markdowndemo * Produce better parse tree * Improve markdown/tiddlywiki integration - widget block should not interrupt paragraph - ignore tw-syntax links inside markdown-syntax links - remove repeated renderWikiTextPragma parsing - more efficient findNextMatch when examining tw rules * Update user docs * Replace includes() with indexOf() for legacy browsers --- .../markdowndemo/tiddlers/DefaultTiddlers.tid | 5 +- editions/markdowndemo/tiddlers/HelloThere.tid | 6 +- ...rkdownExample.tid => MarkdownTutorial.tid} | 6 +- editions/markdowndemo/tiddlers/QuickDemo.tid | 220 +++++++ .../markdowndemo/tiddlers/QuickDemoSource.tid | 5 + editions/markdowndemo/tiddlywiki.info | 4 +- .../codemirror/EditorTypeMappings.multids | 1 + .../codemirror/files/mode/tw-meta.js | 2 +- .../highlight-legacy/TypeMappings.multids | 1 + .../tiddlywiki/highlight/TypeMappings.multids | 1 + .../markdown-legacy/EditorToolbar/bold.tid | 15 + .../EditorToolbar/heading-1.tid | 15 + .../EditorToolbar/heading-2.tid | 15 + .../EditorToolbar/heading-3.tid | 15 + .../EditorToolbar/heading-4.tid | 15 + .../EditorToolbar/heading-5.tid | 15 + .../EditorToolbar/heading-6.tid | 15 + .../markdown-legacy/EditorToolbar/italic.tid | 15 + .../EditorToolbar/link-dropdown.tid | 73 +++ .../markdown-legacy/EditorToolbar/link.tid | 11 + .../markdown-legacy/EditorToolbar/linkify.tid | 15 + .../EditorToolbar/list-bullet.tid | 15 + .../EditorToolbar/list-number.tid | 15 + .../EditorToolbar/mono-block.tid | 17 + .../EditorToolbar/mono-line.tid | 15 + .../markdown-legacy/EditorToolbar/quote.tid | 15 + .../new-markdown-tiddler.tid | 8 + .../tiddlywiki/markdown-legacy/config.multids | 5 + .../config_breaks.tid | 0 .../config_linkNewWindow.tid | 0 .../config_linkify.tid | 0 .../config_quotes.tid | 0 .../config_renderWikiText.tid | 0 .../config_renderWikiTextPragma.tid | 0 .../config_typographer.tid | 0 .../markdown-legacy/docs_type_markdown.tid | 4 + .../editor-operations/make-markdown-link.js | 37 ++ .../files/remarkable-katex-license.txt | 0 .../files/remarkable-katex.js | 0 .../files/remarkable-katex.min.js | 0 .../files/remarkable-license.txt | 0 .../files/remarkable.js | 0 .../markdown-legacy/files/tiddlywiki.files | 36 ++ .../images/markdown-linkify.tid | 6 + .../images/new-markdown-button.tid | 10 + .../markdown-legacy/new-markdown.tid | 16 + .../tiddlywiki/markdown-legacy/plugin.info | 6 + plugins/tiddlywiki/markdown-legacy/readme.tid | 7 + .../{markdown => markdown-legacy}/usage.tid | 4 +- plugins/tiddlywiki/markdown-legacy/wrapper.js | 341 +++++++++++ .../markdown/EditorToolbar/bold.tid | 2 +- .../markdown/EditorToolbar/heading-1.tid | 2 +- .../markdown/EditorToolbar/heading-2.tid | 2 +- .../markdown/EditorToolbar/heading-3.tid | 2 +- .../markdown/EditorToolbar/heading-4.tid | 2 +- .../markdown/EditorToolbar/heading-5.tid | 2 +- .../markdown/EditorToolbar/heading-6.tid | 2 +- .../markdown/EditorToolbar/italic.tid | 2 +- .../markdown/EditorToolbar/list-bullet.tid | 2 +- .../markdown/EditorToolbar/list-number.tid | 2 +- .../markdown/EditorToolbar/mono-line.tid | 2 +- .../markdown/EditorToolbar/quote.tid | 2 +- .../new-markdown-tiddler.tid | 2 +- plugins/tiddlywiki/markdown/config.multids | 6 + plugins/tiddlywiki/markdown/config.tid | 80 +++ .../markdown/docs_type_markdown.tid | 4 +- .../editor-operations/make-markdown-link.js | 18 +- plugins/tiddlywiki/markdown/files/LICENSE | 22 + .../markdown/files/markdown-it-deflist.min.js | 7 + .../files/markdown-it-footnote.min.js | 1 + .../markdown/files/markdown-it-ins.min.js | 2 + .../markdown/files/markdown-it-mark.min.js | 2 + .../markdown/files/markdown-it-sub.min.js | 2 + .../markdown/files/markdown-it-sup.min.js | 2 + .../markdown/files/markdown-it.min.js | 3 + .../markdown/files/tiddlywiki.files | 55 +- .../tiddlywiki/markdown/markdown-it-katex.js | 170 ++++++ .../markdown/markdown-it-tiddlywiki.js | 522 +++++++++++++++++ plugins/tiddlywiki/markdown/new-markdown.tid | 2 +- plugins/tiddlywiki/markdown/plugin.info | 4 +- plugins/tiddlywiki/markdown/readme.tid | 31 +- plugins/tiddlywiki/markdown/styles.tid | 50 ++ plugins/tiddlywiki/markdown/syntax.tid | 224 ++++++++ plugins/tiddlywiki/markdown/wrapper.js | 542 ++++++++---------- 84 files changed, 2443 insertions(+), 359 deletions(-) rename editions/markdowndemo/tiddlers/{MarkdownExample.tid => MarkdownTutorial.tid} (97%) create mode 100644 editions/markdowndemo/tiddlers/QuickDemo.tid create mode 100644 editions/markdowndemo/tiddlers/QuickDemoSource.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/bold.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-1.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-2.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-3.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-4.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-5.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-6.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/italic.tid create mode 100644 plugins/tiddlywiki/markdown-legacy/EditorToolbar/link-dropdown.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/link.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/linkify.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-bullet.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-number.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-block.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-line.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/EditorToolbar/quote.tid create mode 100644 plugins/tiddlywiki/markdown-legacy/KeyboardShortcuts/new-markdown-tiddler.tid create mode 100644 plugins/tiddlywiki/markdown-legacy/config.multids rename plugins/tiddlywiki/{markdown => markdown-legacy}/config_breaks.tid (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/config_linkNewWindow.tid (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/config_linkify.tid (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/config_quotes.tid (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/config_renderWikiText.tid (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/config_renderWikiTextPragma.tid (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/config_typographer.tid (100%) create mode 100755 plugins/tiddlywiki/markdown-legacy/docs_type_markdown.tid create mode 100644 plugins/tiddlywiki/markdown-legacy/editor-operations/make-markdown-link.js rename plugins/tiddlywiki/{markdown => markdown-legacy}/files/remarkable-katex-license.txt (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/files/remarkable-katex.js (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/files/remarkable-katex.min.js (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/files/remarkable-license.txt (100%) rename plugins/tiddlywiki/{markdown => markdown-legacy}/files/remarkable.js (100%) create mode 100755 plugins/tiddlywiki/markdown-legacy/files/tiddlywiki.files create mode 100644 plugins/tiddlywiki/markdown-legacy/images/markdown-linkify.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/images/new-markdown-button.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/new-markdown.tid create mode 100755 plugins/tiddlywiki/markdown-legacy/plugin.info create mode 100755 plugins/tiddlywiki/markdown-legacy/readme.tid rename plugins/tiddlywiki/{markdown => markdown-legacy}/usage.tid (84%) create mode 100755 plugins/tiddlywiki/markdown-legacy/wrapper.js create mode 100755 plugins/tiddlywiki/markdown/config.tid create mode 100644 plugins/tiddlywiki/markdown/files/LICENSE create mode 100644 plugins/tiddlywiki/markdown/files/markdown-it-deflist.min.js create mode 100644 plugins/tiddlywiki/markdown/files/markdown-it-footnote.min.js create mode 100644 plugins/tiddlywiki/markdown/files/markdown-it-ins.min.js create mode 100644 plugins/tiddlywiki/markdown/files/markdown-it-mark.min.js create mode 100644 plugins/tiddlywiki/markdown/files/markdown-it-sub.min.js create mode 100644 plugins/tiddlywiki/markdown/files/markdown-it-sup.min.js create mode 100644 plugins/tiddlywiki/markdown/files/markdown-it.min.js create mode 100644 plugins/tiddlywiki/markdown/markdown-it-katex.js create mode 100644 plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js create mode 100644 plugins/tiddlywiki/markdown/styles.tid create mode 100644 plugins/tiddlywiki/markdown/syntax.tid diff --git a/editions/markdowndemo/tiddlers/DefaultTiddlers.tid b/editions/markdowndemo/tiddlers/DefaultTiddlers.tid index 0f4e00095..bd7c63120 100644 --- a/editions/markdowndemo/tiddlers/DefaultTiddlers.tid +++ b/editions/markdowndemo/tiddlers/DefaultTiddlers.tid @@ -1,4 +1,7 @@ title: $:/DefaultTiddlers [[HelloThere]] -[[MarkdownExample]] +$:/plugins/tiddlywiki/markdown +[[MarkdownTutorial]] +[[QuickDemo]] +[[QuickDemo Source]] diff --git a/editions/markdowndemo/tiddlers/HelloThere.tid b/editions/markdowndemo/tiddlers/HelloThere.tid index e818ddb59..c536d83ee 100644 --- a/editions/markdowndemo/tiddlers/HelloThere.tid +++ b/editions/markdowndemo/tiddlers/HelloThere.tid @@ -1,11 +1,9 @@ title: HelloThere -This is a demo of TiddlyWiki5 incorporating a plugin for parsing tiddlers written in the Markdown language. The plugin uses the [[Remarkable|https://github.com/jonschlinkert/remarkable]] Markdown parser internally. The MarkdownExample tiddler below is written in Markdown. +This is a demo of TiddlyWiki5 incorporating a plugin for parsing tiddlers written in the Markdown language. The plugin uses the [[markdown-it|https://github.com/markdown-it/markdown-it]] Markdown parser internally. The MarkdownTutorial tiddler below is written in Markdown. ! Installation To add the plugin to your own TiddlyWiki5, just drag this link to the browser window: -[[$:/plugins/tiddlywiki/markdown]] - -{{$:/plugins/tiddlywiki/markdown/usage}} \ No newline at end of file +[[$:/plugins/tiddlywiki/markdown]] \ No newline at end of file diff --git a/editions/markdowndemo/tiddlers/MarkdownExample.tid b/editions/markdowndemo/tiddlers/MarkdownTutorial.tid similarity index 97% rename from editions/markdowndemo/tiddlers/MarkdownExample.tid rename to editions/markdowndemo/tiddlers/MarkdownTutorial.tid index 9d8144c5f..a1d4b791c 100644 --- a/editions/markdowndemo/tiddlers/MarkdownExample.tid +++ b/editions/markdowndemo/tiddlers/MarkdownTutorial.tid @@ -1,4 +1,4 @@ -title: MarkdownExample +title: MarkdownTutorial type: text/x-markdown Markdown: Basics @@ -8,13 +8,13 @@ Getting the Gist of Markdown's Formatting Syntax ------------------------------------------------ This page offers a brief overview of what it's like to use Markdown. -The [syntax page] [s] provides complete, detailed documentation for +The [syntax page][s] provides complete, detailed documentation for every feature, but Markdown should be very easy to pick up simply by looking at a few examples of it in action. The examples on this page are written in a before/after style, showing example syntax and the HTML output produced by Markdown. -It's also helpful to simply try Markdown out; the [Dingus] [d] is a +It's also helpful to simply try Markdown out; the [Dingus][d] is a web application that allows you type your own Markdown-formatted text and translate it to XHTML. diff --git a/editions/markdowndemo/tiddlers/QuickDemo.tid b/editions/markdowndemo/tiddlers/QuickDemo.tid new file mode 100644 index 000000000..0bd83f5ed --- /dev/null +++ b/editions/markdowndemo/tiddlers/QuickDemo.tid @@ -0,0 +1,220 @@ +title: QuickDemo +type: text/markdown + +<style> +.tc-image-loaded { + width: 35%; +} +</style> +# h1 Heading +## h2 Heading +### h3 Heading +#### h4 Heading +##### h5 Heading +###### h6 Heading + + +## Horizontal Rules + +____ + +--- + +**** + + +## Emphasis + + +**This is bold text** + +__This is bold text__ + +*This is italic text* + +_This is italic text_ + +~~Strikethrough~~ + + +## Blockquotes + + +> Blockquotes can also be nested... +>> ...by using additional greater-than signs right next to each other... +> > > ...or with spaces between arrows. + + +## Unordered List + + ++ Create a list by starting a line with `+`, `-`, or `*` ++ Sub-lists are made by indenting 2 spaces: + - Marker character change forces new list start: + * Ac tristique libero volutpat at + + Facilisis in pretium nisl aliquet + - Nulla volutpat aliquam velit ++ Very easy! + + +## Ordered List + + +1. Lorem ipsum dolor sit amet +2. Consectetur adipiscing elit +3. Integer molestie lorem at massa + + +1. You can use sequential numbers... +1. ...or keep all the numbers as `1.` + +Start numbering with offset: + +57. foo +1. bar + + +## Code + + +Inline `code` + +Indented code + + // Some comments + line 1 of code + line 2 of code + line 3 of code + +Block code "fences" + +``` +Sample text here... +``` + + +## Syntax highlighting + +``` js +var foo = function (bar) { + return bar++; +}; + +console.log(foo(5)); +``` + + +## ~KaTeX + + +Equation $c = \pm\sqrt{a^2 + b^2}$ is typeset in inline mode. + +Display style: $$c = \pm\sqrt{a^2 + b^2}$$ + + +## Tables + + +| Attribute | Description | +| --------- | ----------- | +| multiple | select multiple files to download | +| param | parameter to be passed with the message | +| tooltip | optional tooltip text | + +Aligning columns: + +| Column A | Column B | Column C | +| :---- | :----: | ----: | +| is | is | is | +| left | nicely | right | +| aligned | centered | aligned | + + +## Links + + +[link text](http://google.com) + +[link with title](http://nodeca.github.io/pica/demo/ "title text!") + +link to tiddler [QuickDemo Source](#QuickDemo%20Source) + +URL can contain spaces if enclosed in brackets `<>`: [QuickDemo Source](<#QuickDemo Source>) + + +## Images + + +![Minion](https://octodex.github.com/images/minion.png) +![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat") + +Like links, images also have a reference style syntax + +![Alt text][id] + +with a link reference defined later in the document. + +[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat" + + +## Subscript & Superscript + + +- 19^th^ +- H~2~O + + +## \<ins\> + + +++Inserted text++ + + +## \<mark\> + + +==Marked text== + + +## Footnotes + + +Footnote 1 link[^first]. + +Footnote 2 link[^second]. + +Inline footnote^[Text of inline footnote] definition. + +Duplicated footnote reference[^second]. + +[^first]: Footnote **can have markup** + + and multiple paragraphs. + +[^second]: Footnote text. + + +## Definition Lists + + +Term 1 + +: Definition 1 +with lazy continuation. + +Term 2 with *inline markup* + +: Definition 2 + + { some code, part of Definition 2 } + + Third paragraph of definition 2. + +_Compact style:_ + +Term 1 + ~ Definition 1 + +Term 2 + ~ Definition 2a + ~ Definition 2b diff --git a/editions/markdowndemo/tiddlers/QuickDemoSource.tid b/editions/markdowndemo/tiddlers/QuickDemoSource.tid new file mode 100644 index 000000000..c0d9167f8 --- /dev/null +++ b/editions/markdowndemo/tiddlers/QuickDemoSource.tid @@ -0,0 +1,5 @@ +title: QuickDemo Source + +<$let tiddler="QuickDemo"> +<$codeblock code={{{ [<tiddler>get[text]] }}} language={{{ [<tiddler>get[type]else[text/vnd.tiddlywiki]] }}}/> +</$let> \ No newline at end of file diff --git a/editions/markdowndemo/tiddlywiki.info b/editions/markdowndemo/tiddlywiki.info index 39298101c..575c1e416 100644 --- a/editions/markdowndemo/tiddlywiki.info +++ b/editions/markdowndemo/tiddlywiki.info @@ -1,7 +1,9 @@ { "description": "Demo of the Markdown plugin", "plugins": [ - "tiddlywiki/markdown" + "tiddlywiki/markdown", + "tiddlywiki/highlight", + "tiddlywiki/katex" ], "themes": [ "tiddlywiki/vanilla", diff --git a/plugins/tiddlywiki/codemirror/EditorTypeMappings.multids b/plugins/tiddlywiki/codemirror/EditorTypeMappings.multids index c3bbcd35d..7d7dd1811 100755 --- a/plugins/tiddlywiki/codemirror/EditorTypeMappings.multids +++ b/plugins/tiddlywiki/codemirror/EditorTypeMappings.multids @@ -8,4 +8,5 @@ text/html: codemirror text/plain: codemirror text/vnd.tiddlywiki: codemirror text/x-markdown: codemirror +text/markdown: codemirror text/x-tiddlywiki: codemirror diff --git a/plugins/tiddlywiki/codemirror/files/mode/tw-meta.js b/plugins/tiddlywiki/codemirror/files/mode/tw-meta.js index 552d6deea..5af90fc24 100755 --- a/plugins/tiddlywiki/codemirror/files/mode/tw-meta.js +++ b/plugins/tiddlywiki/codemirror/files/mode/tw-meta.js @@ -1 +1 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.modeInfo=[{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists.txt$/},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history).md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"TiddlyWiki ",mime:"text/x-tiddlywiki",mode:"tiddlywiki"}];for(var t=0;t<e.modeInfo.length;t++){var m=e.modeInfo[t];m.mimes&&(m.mime=m.mimes[0])}e.findModeByMIME=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.mime==t)return i;if(i.mimes)for(var a=0;a<i.mimes.length;a++)if(i.mimes[a]==t)return i}return/\+xml$/.test(t)?e.findModeByMIME("application/xml"):/\+json$/.test(t)?e.findModeByMIME("application/json"):void 0},e.findModeByExtension=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.ext)for(var a=0;a<i.ext.length;a++)if(i.ext[a]==t)return i}},e.findModeByFileName=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.file&&i.file.test(t))return i}var a=t.lastIndexOf("."),o=a>-1&&t.substring(a+1,t.length);if(o)return e.findModeByExtension(o)},e.findModeByName=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.name.toLowerCase()==t)return i;if(i.alias)for(var a=0;a<i.alias.length;a++)if(i.alias[a].toLowerCase()==t)return i}}}); +!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.modeInfo=[{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists.txt$/},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history).md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mimes:["text/x-markdown","text/markdown"],mode:"markdown",ext:["markdown","md","mkd"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"TiddlyWiki ",mime:"text/x-tiddlywiki",mode:"tiddlywiki"}];for(var t=0;t<e.modeInfo.length;t++){var m=e.modeInfo[t];m.mimes&&(m.mime=m.mimes[0])}e.findModeByMIME=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.mime==t)return i;if(i.mimes)for(var a=0;a<i.mimes.length;a++)if(i.mimes[a]==t)return i}return/\+xml$/.test(t)?e.findModeByMIME("application/xml"):/\+json$/.test(t)?e.findModeByMIME("application/json"):void 0},e.findModeByExtension=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.ext)for(var a=0;a<i.ext.length;a++)if(i.ext[a]==t)return i}},e.findModeByFileName=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.file&&i.file.test(t))return i}var a=t.lastIndexOf("."),o=a>-1&&t.substring(a+1,t.length);if(o)return e.findModeByExtension(o)},e.findModeByName=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.name.toLowerCase()==t)return i;if(i.alias)for(var a=0;a<i.alias.length;a++)if(i.alias[a].toLowerCase()==t)return i}}}); diff --git a/plugins/tiddlywiki/highlight-legacy/TypeMappings.multids b/plugins/tiddlywiki/highlight-legacy/TypeMappings.multids index 9e07d07bd..27cace3a9 100644 --- a/plugins/tiddlywiki/highlight-legacy/TypeMappings.multids +++ b/plugins/tiddlywiki/highlight-legacy/TypeMappings.multids @@ -6,3 +6,4 @@ text/css: css text/html: html image/svg+xml: xml text/x-markdown: markdown +text/markdown: markdown \ No newline at end of file diff --git a/plugins/tiddlywiki/highlight/TypeMappings.multids b/plugins/tiddlywiki/highlight/TypeMappings.multids index 9e07d07bd..6054f922b 100644 --- a/plugins/tiddlywiki/highlight/TypeMappings.multids +++ b/plugins/tiddlywiki/highlight/TypeMappings.multids @@ -6,3 +6,4 @@ text/css: css text/html: html image/svg+xml: xml text/x-markdown: markdown +text/markdown: markdown diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/bold.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/bold.tid new file mode 100755 index 000000000..6ddd06bc4 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/bold.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/bold +list-after: $:/core/ui/EditorToolbar/bold +tags: $:/tags/EditorToolbar +icon: $:/core/images/bold +caption: {{$:/language/Buttons/Bold/Caption}} (Markdown) +description: {{$:/language/Buttons/Bold/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((bold)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="wrap-selection" + prefix="**" + suffix="**" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-1.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-1.tid new file mode 100755 index 000000000..b438d21ed --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-1.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-1 +list-after: $:/core/ui/EditorToolbar/heading-1 +tags: $:/tags/EditorToolbar +icon: $:/core/images/heading-1 +caption: {{$:/language/Buttons/Heading1/Caption}} (Markdown) +description: {{$:/language/Buttons/Heading1/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((heading-1)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="prefix-lines" + character="#" + count="1" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-2.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-2.tid new file mode 100755 index 000000000..0337929d7 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-2.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-2 +list-after: $:/core/ui/EditorToolbar/heading-2 +tags: $:/tags/EditorToolbar +icon: $:/core/images/heading-2 +caption: {{$:/language/Buttons/Heading2/Caption}} (Markdown) +description: {{$:/language/Buttons/Heading2/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((heading-2)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="prefix-lines" + character="#" + count="2" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-3.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-3.tid new file mode 100755 index 000000000..550ee4c9d --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-3.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-3 +list-after: $:/core/ui/EditorToolbar/heading-3 +tags: $:/tags/EditorToolbar +icon: $:/core/images/heading-3 +caption: {{$:/language/Buttons/Heading3/Caption}} (Markdown) +description: {{$:/language/Buttons/Heading3/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((heading-3)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="prefix-lines" + character="#" + count="3" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-4.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-4.tid new file mode 100755 index 000000000..fc3f85bcc --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-4.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-4 +list-after: $:/core/ui/EditorToolbar/heading-4 +tags: $:/tags/EditorToolbar +icon: $:/core/images/heading-4 +caption: {{$:/language/Buttons/Heading4/Caption}} (Markdown) +description: {{$:/language/Buttons/Heading4/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((heading-4)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="prefix-lines" + character="#" + count="4" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-5.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-5.tid new file mode 100755 index 000000000..6a61d03e8 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-5.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-5 +list-after: $:/core/ui/EditorToolbar/heading-5 +tags: $:/tags/EditorToolbar +icon: $:/core/images/heading-5 +caption: {{$:/language/Buttons/Heading5/Caption}} (Markdown) +description: {{$:/language/Buttons/Heading5/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((heading-5)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="prefix-lines" + character="#" + count="5" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-6.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-6.tid new file mode 100755 index 000000000..576161f6d --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-6.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-6 +list-after: $:/core/ui/EditorToolbar/heading-6 +tags: $:/tags/EditorToolbar +icon: $:/core/images/heading-6 +caption: {{$:/language/Buttons/Heading6/Caption}} (Markdown) +description: {{$:/language/Buttons/Heading6/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((heading-6)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="prefix-lines" + character="#" + count="6" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/italic.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/italic.tid new file mode 100755 index 000000000..280b0e6eb --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/italic.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/italic +list-after: $:/core/ui/EditorToolbar/italic +tags: $:/tags/EditorToolbar +icon: $:/core/images/italic +caption: {{$:/language/Buttons/Italic/Caption}} (Markdown) +description: {{$:/language/Buttons/Italic/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((italic)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="wrap-selection" + prefix="*" + suffix="*" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link-dropdown.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link-dropdown.tid new file mode 100644 index 000000000..fc4f1b197 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link-dropdown.tid @@ -0,0 +1,73 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link-dropdown + +\define lingo-base() $:/language/Buttons/Link/ + +\define add-link-actions() +\whitespace trim +<$action-sendmessage $message="tm-edit-text-operation" $param="make-markdown-link" text={{$(linkTiddler)$}} /> +<$action-deletetiddler $filter="[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]"/> +\end + +\define get-focus-selector() [data-tiddler-title="$(cssEscapedTitle)$"] .tc-create-wikitext-link input + +\define cancel-search-actions-inner() +<$set name="userInput" value={{{ [<storeTitle>get[text]] }}}><$list filter="[<searchTiddler>get[text]!match<userInput>]" emptyMessage="<$action-deletetiddler $filter='[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]'/>"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text="yes"/></$list></$set> +\end + +\define cancel-search-actions() <$list filter="[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]" emptyMessage="<<cancel-search-actions-inner>>"><$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/></$list> + +\define external-link() +\whitespace trim +<$button class="tc-btn-invisible" style="width: auto; display: inline-block; background-colour: inherit;" actions=<<add-link-actions>>> +{{$:/core/images/chevron-right}} +</$button> +\end + +\define set-next-input-tab(beforeafter:"after") <$macrocall $name="change-input-tab" stateTitle="$:/state/tab/search-results/sidebar" tag="$:/tags/SearchResults" beforeafter="$beforeafter$" defaultState={{$:/config/SearchResults/Default}} actions="<$action-setfield $tiddler='$:/state/search/currentTab' text=<<nextTab>>/>"/> + +\define body(config-title) +\whitespace trim +''<<lingo Hint>>'' + +<$vars searchTiddler="""$config-title$/search""" linkTiddler="""$config-title$/link""" linktext="" searchListState=<<qualify "$:/temp/link-search/selected-item">> refreshTitle=<<qualify "$:/temp/link-search/refresh">> storeTitle=<<qualify "$:/temp/link-search/input">>> + +<$vars linkTiddler=<<searchTiddler>>> +<$keyboard key="((input-tab-right))" actions=<<set-next-input-tab>>> +<$keyboard key="((input-tab-left))" actions=<<set-next-input-tab "before">> class="tc-create-wikitext-link"> +<$macrocall $name="keyboard-driven-input" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>> + selectionStateTitle=<<searchListState>> refreshTitle=<<refreshTitle>> type="search" filterMinLength="1" + tag="input" focus="true" class="tc-popup-handle" inputCancelActions=<<cancel-search-actions>> + inputAcceptActions=<<add-link-actions>> placeholder={{$:/language/Search/Search}} default="" + configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]" /> +</$keyboard> +</$keyboard> + +<$reveal tag="span" state=<<storeTitle>> type="nomatch" text=""> +<<external-link>> + +<$button class="tc-btn-invisible" style="width: auto; display: inline-block; background-colour: inherit;"> +<<cancel-search-actions>><$set name="cssEscapedTitle" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<<get-focus-selector>>/></$set> +{{$:/core/images/close-button}} +</$button> +</$reveal> +</$vars> + +<$reveal tag="div" state=<<storeTitle>> type="nomatch" text=""> + +<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>> + +<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}> + +{{$:/core/ui/SearchResults}} + +</$vars> + +</$linkcatcher> + +</$reveal> + +</$vars> + +\end + +<$macrocall $name="body" config-title=<<qualify "$:/state/Link/">>/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link.tid new file mode 100755 index 000000000..ee95a82a3 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link.tid @@ -0,0 +1,11 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link +list-after: $:/core/ui/EditorToolbar/link +tags: $:/tags/EditorToolbar +icon: $:/core/images/link +caption: {{$:/language/Buttons/Link/Caption}} +description: {{$:/language/Buttons/Link/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +button-classes: tc-text-editor-toolbar-item-start-group +shortcuts: ((link)) +dropdown: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link-dropdown + diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/linkify.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/linkify.tid new file mode 100755 index 000000000..14ca3bc7b --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/linkify.tid @@ -0,0 +1,15 @@ +caption: {{$:/language/Buttons/Linkify/Caption}} (Markdown) +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +description: {{$:/language/Buttons/Linkify/Hint}} +icon: $:/plugins/tiddlywiki/markdown-legacy/images/markdown-linkify +list-after: $:/core/ui/EditorToolbar/linkify +shortcuts: ((linkify)) +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/linkify +tags: $:/tags/EditorToolbar + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="wrap-selection" + prefix="[" + suffix="]()" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-bullet.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-bullet.tid new file mode 100755 index 000000000..69f9451de --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-bullet.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-bullet +list-after: $:/core/ui/EditorToolbar/list-bullet +tags: $:/tags/EditorToolbar +icon: $:/core/images/list-bullet +caption: {{$:/language/Buttons/ListBullet/Caption}} (Markdown) +description: {{$:/language/Buttons/ListBullet/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((list-bullet)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="prefix-lines" + character="*" + count="1" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-number.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-number.tid new file mode 100755 index 000000000..f3c86aeb6 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-number.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-number +list-after: $:/core/ui/EditorToolbar/list-number +tags: $:/tags/EditorToolbar +icon: $:/core/images/list-number +caption: {{$:/language/Buttons/ListNumber/Caption}} (Markdown) +description: {{$:/language/Buttons/ListNumber/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((list-number)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="prefix-lines" + character="1." + count="1" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-block.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-block.tid new file mode 100755 index 000000000..1759ee590 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-block.tid @@ -0,0 +1,17 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-block +list-after: $:/core/ui/EditorToolbar/mono-block +tags: $:/tags/EditorToolbar +icon: $:/core/images/mono-block +caption: {{$:/language/Buttons/MonoBlock/Caption}} (Markdown) +description: {{$:/language/Buttons/MonoBlock/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +button-classes: tc-text-editor-toolbar-item-start-group +shortcuts: ((mono-block)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="wrap-lines" + prefix=" +```" + suffix="```" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-line.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-line.tid new file mode 100755 index 000000000..69a05b061 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-line.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-line +list-after: $:/core/ui/EditorToolbar/mono-line +tags: $:/tags/EditorToolbar +icon: $:/core/images/mono-line +caption: {{$:/language/Buttons/MonoLine/Caption}} (Markdown) +description: {{$:/language/Buttons/MonoLine/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((mono-line)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="wrap-selection" + prefix="`" + suffix="`" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/EditorToolbar/quote.tid b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/quote.tid new file mode 100755 index 000000000..d283ea256 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/EditorToolbar/quote.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/EditorToolbar/quote +list-after: $:/core/ui/EditorToolbar/quote +tags: $:/tags/EditorToolbar +icon: $:/core/images/quote +caption: {{$:/language/Buttons/Quote/Caption}} (Markdown) +description: {{$:/language/Buttons/Quote/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((quote)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="prefix-lines" + character=">" + count="1" +/> diff --git a/plugins/tiddlywiki/markdown-legacy/KeyboardShortcuts/new-markdown-tiddler.tid b/plugins/tiddlywiki/markdown-legacy/KeyboardShortcuts/new-markdown-tiddler.tid new file mode 100644 index 000000000..ba8ad540a --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/KeyboardShortcuts/new-markdown-tiddler.tid @@ -0,0 +1,8 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/KeyboardShortcuts/new-markdown-tiddler +tags: $:/tags/KeyboardShortcut +key: ((new-markdown-tiddler)) + +\whitespace trim +<$navigator story="$:/StoryList" history="$:/HistoryList" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}> +<$action-sendmessage $message="tm-new-tiddler" type="text/markdown"/> +</$navigator> diff --git a/plugins/tiddlywiki/markdown-legacy/config.multids b/plugins/tiddlywiki/markdown-legacy/config.multids new file mode 100644 index 000000000..1f142c8b4 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/config.multids @@ -0,0 +1,5 @@ +title: $:/config/ + +ShortcutInfo/new-markdown-tiddler: {{$:/language/Buttons/NewMarkdown/Hint}} +shortcuts-mac/new-markdown-tiddler: ctrl-M +shortcuts-not-mac/new-markdown-tiddler: alt-M diff --git a/plugins/tiddlywiki/markdown/config_breaks.tid b/plugins/tiddlywiki/markdown-legacy/config_breaks.tid similarity index 100% rename from plugins/tiddlywiki/markdown/config_breaks.tid rename to plugins/tiddlywiki/markdown-legacy/config_breaks.tid diff --git a/plugins/tiddlywiki/markdown/config_linkNewWindow.tid b/plugins/tiddlywiki/markdown-legacy/config_linkNewWindow.tid similarity index 100% rename from plugins/tiddlywiki/markdown/config_linkNewWindow.tid rename to plugins/tiddlywiki/markdown-legacy/config_linkNewWindow.tid diff --git a/plugins/tiddlywiki/markdown/config_linkify.tid b/plugins/tiddlywiki/markdown-legacy/config_linkify.tid similarity index 100% rename from plugins/tiddlywiki/markdown/config_linkify.tid rename to plugins/tiddlywiki/markdown-legacy/config_linkify.tid diff --git a/plugins/tiddlywiki/markdown/config_quotes.tid b/plugins/tiddlywiki/markdown-legacy/config_quotes.tid similarity index 100% rename from plugins/tiddlywiki/markdown/config_quotes.tid rename to plugins/tiddlywiki/markdown-legacy/config_quotes.tid diff --git a/plugins/tiddlywiki/markdown/config_renderWikiText.tid b/plugins/tiddlywiki/markdown-legacy/config_renderWikiText.tid similarity index 100% rename from plugins/tiddlywiki/markdown/config_renderWikiText.tid rename to plugins/tiddlywiki/markdown-legacy/config_renderWikiText.tid diff --git a/plugins/tiddlywiki/markdown/config_renderWikiTextPragma.tid b/plugins/tiddlywiki/markdown-legacy/config_renderWikiTextPragma.tid similarity index 100% rename from plugins/tiddlywiki/markdown/config_renderWikiTextPragma.tid rename to plugins/tiddlywiki/markdown-legacy/config_renderWikiTextPragma.tid diff --git a/plugins/tiddlywiki/markdown/config_typographer.tid b/plugins/tiddlywiki/markdown-legacy/config_typographer.tid similarity index 100% rename from plugins/tiddlywiki/markdown/config_typographer.tid rename to plugins/tiddlywiki/markdown-legacy/config_typographer.tid diff --git a/plugins/tiddlywiki/markdown-legacy/docs_type_markdown.tid b/plugins/tiddlywiki/markdown-legacy/docs_type_markdown.tid new file mode 100755 index 000000000..0e5c1edef --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/docs_type_markdown.tid @@ -0,0 +1,4 @@ +title: $:/language/Docs/Types/text/markdown +description: Markdown +name: text/markdown +group: Text diff --git a/plugins/tiddlywiki/markdown-legacy/editor-operations/make-markdown-link.js b/plugins/tiddlywiki/markdown-legacy/editor-operations/make-markdown-link.js new file mode 100644 index 000000000..13f5026a7 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/editor-operations/make-markdown-link.js @@ -0,0 +1,37 @@ +/*\ +title: $:/plugins/tiddlywiki/markdown-legacy/editor-operations/make-markdown-link.js +type: application/javascript +module-type: texteditoroperation + +Text editor operation to make a markdown link + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +exports["make-markdown-link"] = function(event,operation) { + if(operation.selection) { + if(event.paramObject.text.indexOf("://") !== -1) { + operation.replacement = "[" + operation.selection + "](" + event.paramObject.text + ")"; + } else { + operation.replacement = "[" + operation.selection + "](#" + event.paramObject.text.replaceAll(" ", "%20") + ")"; + } + operation.cutStart = operation.selStart; + operation.cutEnd = operation.selEnd; + } else { + if(event.paramObject.text.indexOf("://") !== -1) { + operation.replacement = "<" + event.paramObject.text + ">"; + } else { + operation.replacement = "[](#" + event.paramObject.text.replaceAll(" ", "%20") + ")"; + } + operation.cutStart = operation.selStart; + operation.cutEnd = operation.selEnd; + } + operation.newSelStart = operation.selStart + operation.replacement.length; + operation.newSelEnd = operation.newSelStart; +}; + +})(); diff --git a/plugins/tiddlywiki/markdown/files/remarkable-katex-license.txt b/plugins/tiddlywiki/markdown-legacy/files/remarkable-katex-license.txt similarity index 100% rename from plugins/tiddlywiki/markdown/files/remarkable-katex-license.txt rename to plugins/tiddlywiki/markdown-legacy/files/remarkable-katex-license.txt diff --git a/plugins/tiddlywiki/markdown/files/remarkable-katex.js b/plugins/tiddlywiki/markdown-legacy/files/remarkable-katex.js similarity index 100% rename from plugins/tiddlywiki/markdown/files/remarkable-katex.js rename to plugins/tiddlywiki/markdown-legacy/files/remarkable-katex.js diff --git a/plugins/tiddlywiki/markdown/files/remarkable-katex.min.js b/plugins/tiddlywiki/markdown-legacy/files/remarkable-katex.min.js similarity index 100% rename from plugins/tiddlywiki/markdown/files/remarkable-katex.min.js rename to plugins/tiddlywiki/markdown-legacy/files/remarkable-katex.min.js diff --git a/plugins/tiddlywiki/markdown/files/remarkable-license.txt b/plugins/tiddlywiki/markdown-legacy/files/remarkable-license.txt similarity index 100% rename from plugins/tiddlywiki/markdown/files/remarkable-license.txt rename to plugins/tiddlywiki/markdown-legacy/files/remarkable-license.txt diff --git a/plugins/tiddlywiki/markdown/files/remarkable.js b/plugins/tiddlywiki/markdown-legacy/files/remarkable.js similarity index 100% rename from plugins/tiddlywiki/markdown/files/remarkable.js rename to plugins/tiddlywiki/markdown-legacy/files/remarkable.js diff --git a/plugins/tiddlywiki/markdown-legacy/files/tiddlywiki.files b/plugins/tiddlywiki/markdown-legacy/files/tiddlywiki.files new file mode 100755 index 000000000..c6f07202b --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/files/tiddlywiki.files @@ -0,0 +1,36 @@ +{ + "tiddlers": [ + { + "file": "remarkable.js", + "fields": { + "type": "application/javascript", + "title": "$:/plugins/tiddlywiki/markdown-legacy/remarkable.js", + "module-type": "library" + } + }, + { + "file": "remarkable-license.txt", + "fields": { + "type": "text/plain", + "title": "$:/plugins/tiddlywiki/markdown-legacy/remarkable-license" + } + }, + { + "file": "remarkable-katex.min.js", + "fields": { + "type": "application/javascript", + "title": "$:/plugins/tiddlywiki/markdown-legacy/remarkable-katex.js", + "module-type": "library" + }, + "prefix": "(function(realRequire) {var require = function(m) {if(m===\"katex\"){m = \"$:/plugins/tiddlywiki/katex/katex.min.js\"};return realRequire(m);};", + "suffix": "})(require);\n" + }, + { + "file": "remarkable-katex-license.txt", + "fields": { + "type": "text/plain", + "title": "$:/plugins/tiddlywiki/markdown-legacy/remarkable-katex-license" + } + } + ] +} diff --git a/plugins/tiddlywiki/markdown-legacy/images/markdown-linkify.tid b/plugins/tiddlywiki/markdown-legacy/images/markdown-linkify.tid new file mode 100644 index 000000000..08730bfad --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/images/markdown-linkify.tid @@ -0,0 +1,6 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/images/markdown-linkify +tags: $:/tags/Image + +<svg width="22pt" height="22pt" class="tc-markdown-linkify-button tc-image-button" viewBox="0 0 128 128"> +<path d="M17.031185,32.1989189 L9.04781705,32.1989189 L9.04781705,97.1303119 L17.031185,97.1303119 L17.031185,104.049231 L0,104.049231 L0,25.28 L17.031185,25.28 L17.031185,32.1989189 Z M93.6716009,24.75 C90.4007675,30.8326023 88.0193713,37.1590826 86.5274123,43.7294408 C85.0354532,50.299799 84.2894737,56.9705775 84.2894737,63.7417763 C84.2894737,70.6277412 85.0211075,77.3702485 86.484375,83.9692982 C87.9476425,90.568348 90.314693,96.9952485 93.5855263,103.25 L93.5855263,103.25 L83.4287281,103.25 C79.8135965,97.3395468 77.0161732,91.1134868 75.0364583,84.5718202 C73.0567434,78.0301535 72.066886,71.3737208 72.066886,64.6025219 C72.066886,61.3890716 72.3107639,58.017818 72.7985197,54.488761 C73.2862756,50.9597039 74.0035636,47.4449927 74.9503838,43.9446272 C75.8972039,40.4442617 77.0735563,37.0586623 78.4794408,33.7878289 C79.8853253,30.5169956 81.5350877,27.504386 83.4287281,24.75 L83.4287281,24.75 Z M116.638158,24.75 C120.253289,30.6604532 123.050713,36.9152047 125.030428,43.5142544 C127.010143,50.1133041 128,56.7984284 128,63.5696272 C128,66.7830775 127.770468,70.1543311 127.311404,73.6833882 C126.852339,77.2124452 126.149397,80.7128107 125.202577,84.1844846 C124.255757,87.6561586 123.065058,91.0274123 121.630482,94.2982456 C120.195906,97.5690789 118.531798,100.552997 116.638158,103.25 L116.638158,103.25 L106.48136,103.25 C109.637427,97.1673977 111.975786,90.8696089 113.496436,84.3566338 C115.017087,77.8436586 115.777412,71.2015716 115.777412,64.4303728 C115.777412,57.5444079 115.031433,50.7732091 113.539474,44.1167763 C112.047515,37.4603436 109.723501,31.0047515 106.567434,24.75 L106.567434,24.75 Z M37.1101871,44.1061384 L37.1101871,56.702119 L49.0852391,52.799139 L51.3915454,59.8954661 L39.3277893,63.798446 L46.956341,74.1768244 L40.8357588,78.6120289 L33.2072072,68.1449464 L25.7560638,78.3459166 L19.8128898,73.8220081 L27.4414414,63.798446 L15.2889813,59.6293539 L17.5952876,52.5330268 L29.6590437,56.702119 L29.6590437,44.1061384 L37.1101871,44.1061384 Z M49.6493416,97.1303119 L57.6327096,97.1303119 L57.6327096,32.1989189 L49.6493416,32.1989189 L49.6493416,25.28 L66.6805267,25.28 L66.6805267,104.049231 L49.6493416,104.049231 L49.6493416,97.1303119 Z"></path> +</svg> diff --git a/plugins/tiddlywiki/markdown-legacy/images/new-markdown-button.tid b/plugins/tiddlywiki/markdown-legacy/images/new-markdown-button.tid new file mode 100755 index 000000000..fe800d38d --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/images/new-markdown-button.tid @@ -0,0 +1,10 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/images/new-markdown-button +tags: $:/tags/Image + +<svg class="tc-image-new-markdown-button tc-image-button" viewBox="0 0 128 128" width="22pt" height="22pt"> + <g fill-rule="evenodd"> + <rect x="80" y="96" width="48" height="16" rx="8"></rect> + <rect x="96" y="80" width="16" height="48" rx="8"></rect> + <path d="M3.23876972,39.5396716 C3.23876972,35.9653274 6.13586353,33.0691646 9.7141757,33.0691646 L98.1283744,33.0691646 C101.706101,33.0691646 104.60378,35.9646626 104.60378,39.5396716 L104.60378,84.8296213 C104.60378,88.4039654 101.706687,91.3001282 98.1283744,91.3001282 L9.7141757,91.3001282 C6.13644944,91.3001282 3.23876972,88.4046302 3.23876972,84.8296213 L3.23876972,39.5396716 L3.23876972,39.5396716 Z M-2.15298617,39.5396716 L-2.15298617,84.8296213 C-2.15298617,91.3833243 3.15957363,96.6918841 9.7141757,96.6918841 L98.1283744,96.6918841 C104.684083,96.6918841 109.995536,91.382138 109.995536,84.8296213 L109.995536,39.5396716 C109.995536,32.9859686 104.682977,27.6774087 98.1283744,27.6774087 L9.7141757,27.6774087 C3.15846686,27.6774087 -2.15298617,32.9871549 -2.15298617,39.5396716 Z M14.0222815,80.5166164 L14.0222815,43.8526764 L24.8057933,43.8526764 L35.589305,57.3320661 L46.3728168,43.8526764 L57.1563286,43.8526764 L57.1563286,80.5166164 L46.3728168,80.5166164 L46.3728168,59.4887685 L35.589305,72.9681582 L24.8057933,59.4887685 L24.8057933,80.5166164 L14.0222815,80.5166164 Z M81.4192301,80.5166164 L65.2439624,62.723822 L76.0274742,62.723822 L76.0274742,43.8526764 L86.810986,43.8526764 L86.810986,62.723822 L97.5944978,62.723822 L81.4192301,80.5166164 Z"transform="translate(53.921275, 62.184646) rotate(-60.000000) translate(-53.921275, -62.184646) "></path> + </g> +</svg> \ No newline at end of file diff --git a/plugins/tiddlywiki/markdown-legacy/new-markdown.tid b/plugins/tiddlywiki/markdown-legacy/new-markdown.tid new file mode 100755 index 000000000..507c265a5 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/new-markdown.tid @@ -0,0 +1,16 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/new-markdown-button +tags: $:/tags/PageControls +caption: {{$:/plugins/tiddlywiki/markdown-legacy/images/new-markdown-button}} {{$:/language/Buttons/NewMarkdown/Caption}} +description: {{$:/language/Buttons/NewMarkdown/Hint}} +list-after: $:/core/ui/Buttons/new-tiddler + +\whitespace trim +<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>> +<$action-sendmessage $message="tm-new-tiddler" type="text/markdown"/> +<$list filter="[<tv-config-toolbar-icons>match[yes]]"> +{{$:/plugins/tiddlywiki/markdown-legacy/images/new-markdown-button}} +</$list> +<$list filter="[<tv-config-toolbar-text>match[yes]]"> +<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span> +</$list> +</$button> diff --git a/plugins/tiddlywiki/markdown-legacy/plugin.info b/plugins/tiddlywiki/markdown-legacy/plugin.info new file mode 100755 index 000000000..dc8021cf3 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/plugin.info @@ -0,0 +1,6 @@ +{ + "title": "$:/plugins/tiddlywiki/markdown-legacy", + "name": "Markdown (Legacy)", + "description": "Markdown parser based on remarkable by Jon Schlinkert and remarkable-katex by Brad Howes", + "list": "readme usage remarkable-license remarkable-katex-license" +} diff --git a/plugins/tiddlywiki/markdown-legacy/readme.tid b/plugins/tiddlywiki/markdown-legacy/readme.tid new file mode 100755 index 000000000..1b4d79450 --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/readme.tid @@ -0,0 +1,7 @@ +title: $:/plugins/tiddlywiki/markdown-legacy/readme + +This is a TiddlyWiki plugin for parsing Markdown text, using the [[Remarkable|https://github.com/jonschlinkert/remarkable]] library. If the KaTeX TiddlyWiki plugin is installed, KaTeX support is enabled using the [[remarkable-katex|https://github.com/bradhowes/remarkable-katex]] Remarkable plugin. + +It is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js. + +[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/markdown-legacy]] diff --git a/plugins/tiddlywiki/markdown/usage.tid b/plugins/tiddlywiki/markdown-legacy/usage.tid similarity index 84% rename from plugins/tiddlywiki/markdown/usage.tid rename to plugins/tiddlywiki/markdown-legacy/usage.tid index 90724878a..81fff17f7 100755 --- a/plugins/tiddlywiki/markdown/usage.tid +++ b/plugins/tiddlywiki/markdown-legacy/usage.tid @@ -1,4 +1,4 @@ -title: $:/plugins/tiddlywiki/markdown/usage +title: $:/plugins/tiddlywiki/markdown-legacy/usage ! Plugin Configuration @@ -8,7 +8,7 @@ title: $:/plugins/tiddlywiki/markdown/usage | <code>[[linkNewWindow|$:/config/markdown/linkNewWindow]]</code>| ``true``|For external links, should clicking on them open a new window/tab automatically? | | <code>[[quotes|$:/config/markdown/quotes]]</code>| ``“”‘’``|Remarkable library config: Double + single quotes replacement pairs, when ``typographer`` enabled | | <code>[[renderWikiText|$:/config/markdown/renderWikiText]]</code>| ``true``|After Markdown is parsed, should any text elements be handed off to the ~WikiText parser for further processing? | -| <code>[[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]]</code>| ``\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock``|When handing off to the ~WikiText parser, what pragma rules should it follow? | +| <code>[[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]]</code>|<code><$view tiddler="$:/plugins/tiddlywiki/markdown-legacy" subtiddler="$:/config/markdown/renderWikiTextPragma" mode="inline"/></code>|When handing off to the ~WikiText parser, what pragma rules should it follow? | | <code>[[typographer|$:/config/markdown/typographer]]</code>| ``false``|Remarkable library config: Enable some language-neutral replacement + quotes beautification | ! Creating ~WikiLinks diff --git a/plugins/tiddlywiki/markdown-legacy/wrapper.js b/plugins/tiddlywiki/markdown-legacy/wrapper.js new file mode 100755 index 000000000..6fa56232a --- /dev/null +++ b/plugins/tiddlywiki/markdown-legacy/wrapper.js @@ -0,0 +1,341 @@ +/*\ +title: $:/plugins/tiddlywiki/markdown-legacy/wrapper.js +type: application/javascript +module-type: parser + +Wraps up the remarkable parser for use as a Parser in TiddlyWiki + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var r = require("$:/plugins/tiddlywiki/markdown-legacy/remarkable.js"); + +var Remarkable = r.Remarkable, + linkify = r.linkify, + utils = r.utils; + +///// Set up configuration options ///// +function parseAsBoolean(tiddlerName) { + return $tw.wiki.getTiddlerText(tiddlerName).toLowerCase() === "true"; +} +var pluginOpts = { + linkNewWindow: parseAsBoolean("$:/config/markdown/linkNewWindow"), + renderWikiText: parseAsBoolean("$:/config/markdown/renderWikiText"), + renderWikiTextPragma: $tw.wiki.getTiddlerText("$:/config/markdown/renderWikiTextPragma").trim() +}; +var remarkableOpts = { + breaks: parseAsBoolean("$:/config/markdown/breaks"), + quotes: $tw.wiki.getTiddlerText("$:/config/markdown/quotes"), + typographer: parseAsBoolean("$:/config/markdown/typographer") +}; +var accumulatingTypes = { + "text": true, + "softbreak": true +}; +// If rendering WikiText, we treat katex nodes as text. +if(pluginOpts.renderWikiText) { + accumulatingTypes["katex"] = true; +} + +var md = new Remarkable(remarkableOpts); + +// If tiddlywiki/katex plugin is present, use remarkable-katex to enable katex support. +if($tw.modules.titles["$:/plugins/tiddlywiki/katex/katex.min.js"]) { + var rk = require("$:/plugins/tiddlywiki/markdown-legacy/remarkable-katex.js"); + md = md.use(rk); +} + +if(parseAsBoolean("$:/config/markdown/linkify")) { + md = md.use(linkify); +} + +function findTagWithType(nodes, startPoint, type, level) { + for (var i = startPoint; i < nodes.length; i++) { + if(nodes[i].type === type && nodes[i].level === level) { + return i; + } + } + return false; +} + +/** + * Remarkable creates nodes that look like: + * [ + * { type: 'paragraph_open'}, + * { type: 'inline', content: 'Hello World', children:[{type: 'text', content: 'Hello World'}]}, + * { type: 'paragraph_close'} + * ] + * + * But TiddlyWiki wants the Parser (https://tiddlywiki.com/dev/static/Parser.html) to emit nodes like: + * + * [ + * { type: 'element', tag: 'p', children: [{type: 'text', text: 'Hello World'}]} + * ] + */ +function convertNodes(remarkableTree, isStartOfInline) { + let out = []; + var accumulatedText = ''; + function withChildren(currentIndex, currentLevel, closingType, nodes, callback) { + var j = findTagWithType(nodes, currentIndex + 1, closingType, currentLevel); + if(j === false) { + console.error("Failed to find a " + closingType + " node after position " + currentIndex); + console.log(nodes); + return currentIndex + 1; + } + let children = convertNodes(nodes.slice(currentIndex + 1, j)); + callback(children); + return j; + } + function wrappedElement(elementTag, currentIndex, currentLevel, closingType, nodes) { + return withChildren(currentIndex, currentLevel, closingType, nodes, function(children) { + out.push({ + type: "element", + tag: elementTag, + children: children + }); + }); + } + + for (var i = 0; i < remarkableTree.length; i++) { + var currentNode = remarkableTree[i]; + switch (currentNode.type) { + case "paragraph_open": + // If the paragraph is a "tight" layout paragraph, don't wrap children in a <p> tag. + if(currentNode.tight) { + i = withChildren(i, currentNode.level, "paragraph_close", remarkableTree, function(children) { + Array.prototype.push.apply(out, children); + }); + } else { + i = wrappedElement("p", i, currentNode.level, "paragraph_close", remarkableTree); + } + break; + + case "heading_open": + i = wrappedElement("h" + currentNode.hLevel, i, currentNode.level, "heading_close", remarkableTree); + break; + + case "bullet_list_open": + i = wrappedElement("ul", i, currentNode.level, "bullet_list_close", remarkableTree); + break; + + case "ordered_list_open": + i = wrappedElement('ol', i, currentNode.level,'ordered_list_close', remarkableTree); + break; + + case "list_item_open": + i = wrappedElement("li", i, currentNode.level, "list_item_close", remarkableTree); + break; + + case "link_open": + i = withChildren(i, currentNode.level, "link_close", remarkableTree, function(children) { + if(currentNode.href[0] !== "#") { + // External link + var attributes = { + class: { type: "string", value: "tc-tiddlylink-external" }, + href: { type: "string", value: currentNode.href }, + rel: { type: "string", value: "noopener noreferrer" } + }; + if(pluginOpts.linkNewWindow) { + attributes.target = { type: "string", value: "_blank" }; + } + out.push({ + type: "element", + tag: "a", + attributes: attributes, + children: children + }); + } else { + // Internal link + out.push({ + type: "link", + attributes: { + to: { type: "string", value: $tw.utils.decodeURISafe(currentNode.href.substr(1)) } + }, + children: children + }); + } + }); + break; + + case "code": + out.push({ + type: "element", + tag: currentNode.block ? "pre" : "code", + children: [{ type: "text", text: currentNode.content }] + }); + break; + + case "fence": + out.push({ + type: "codeblock", + attributes: { + language: { type: "string", value: currentNode.params }, + code: { type: "string", value: currentNode.content } + } + }); + break; + + case "image": + out.push({ + type: "image", + attributes: { + tooltip: { type: "string", value: currentNode.alt }, + source: { type: "string", value: $tw.utils.decodeURIComponentSafe(currentNode.src) } + } + }); + break; + + case "softbreak": + if(remarkableOpts.breaks) { + out.push({ + type: "element", + tag: "br", + }); + } else { + accumulatedText = accumulatedText + '\n'; + } + break; + + case "hardbreak": + out.push({ + type: "element", + tag: "br", + }); + break; + + case "th_open": + case "td_open": + var elementTag = currentNode.type.slice(0, 2); + i = withChildren(i, currentNode.level, elementTag + "_close", remarkableTree, function(children) { + var attributes = {}; + if(currentNode.align) { + attributes.style = { type: "string", value: "text-align:" + currentNode.align }; + } + out.push({ + type: "element", + tag: elementTag, + attributes: attributes, + children: children + }); + }); + break; + + case "hr": + out.push({ + type: 'element', + tag: 'hr', + }); + break; + + case "inline": + out = out.concat(convertNodes(currentNode.children, true)); + break; + + case "text": + // We need to merge this text block with the upcoming text block and parse it all together. + accumulatedText = accumulatedText + currentNode.content; + break; + + case "katex": + // If rendering WikiText, convert the katex node back to text for parsing by the WikiText LaTeX parser. + if(pluginOpts.renderWikiText) { + // If this is a block, add a newline to trigger the KaTeX plugins block detection. + var displayModeSuffix = currentNode.block ? "\n" : ""; + accumulatedText = accumulatedText + "$$" + currentNode.content + displayModeSuffix + "$$"; + } else { + out.push({ + type: "latex", + attributes: { + text: { type: "text", value: currentNode.content }, + displayMode: { type: "text", value: currentNode.block ? "true" : "false" } + } + }); + } + break; + + default: + if(currentNode.type.substr(currentNode.type.length - 5) === "_open") { + var tagName = currentNode.type.substr(0, currentNode.type.length - 5); + i = wrappedElement(tagName, i, currentNode.level, tagName + "_close", remarkableTree); + } else { + console.error("Unknown node type: " + currentNode.type, currentNode); + out.push({ + type: "text", + text: currentNode.content + }); + } + break; + } + // We test to see if we process the block now, or if there's + // more to accumulate first. + if(accumulatedText + && ( + remarkableOpts.breaks || + (i+1) >= remarkableTree.length || + !accumulatingTypes[remarkableTree[i+1].type] + ) + ) { + // The Markdown compiler thinks this is just text. + // Hand off to the WikiText parser to see if there's more to render + // But only if it's configured to, and we have more than whitespace + if(!pluginOpts.renderWikiText || accumulatedText.match(/^\s*$/)) { + out.push({ + type: "text", + text: accumulatedText + }); + } else { + // If we're inside a block element (div, p, td, h1), and this is the first child in the tree, + // handle as a block-level parse. Otherwise not. + var parseAsInline = !(isStartOfInline && i === 0); + var textToParse = accumulatedText; + if(pluginOpts.renderWikiTextPragma !== "") { + textToParse = pluginOpts.renderWikiTextPragma + "\n" + textToParse; + } + var wikiParser = $tw.wiki.parseText("text/vnd.tiddlywiki", textToParse, { + parseAsInline: parseAsInline + }); + var rs = wikiParser.tree; + + // If we parsed as a block, but the root element the WikiText parser gave is a paragraph, + // we should discard the paragraph, since the way Remarkable nests its nodes, this "inline" + // node is always inside something else that's a block-level element + if(!parseAsInline + && rs.length === 1 + && rs[0].type === "element" + && rs[0].tag === "p" + ) { + rs = rs[0].children; + } + + // If the original text element started with a space, add it back in + if(rs.length > 0 + && rs[0].type === "text" + && (accumulatedText[0] === " " || accumulatedText[0] === "\n") + ) { + rs[0].text = " " + rs[0].text; + } + out = out.concat(rs); + } + accumulatedText = ''; + } + } + return out; +} + +var MarkdownParser = function(type, text, options) { + var tree = md.parse(text, {}); + //console.debug(tree); + tree = convertNodes(tree); + //console.debug(tree); + + this.tree = tree; +}; + +exports["text/x-markdown"] = MarkdownParser; +exports["text/markdown"] = MarkdownParser; + +})(); diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/bold.tid b/plugins/tiddlywiki/markdown/EditorToolbar/bold.tid index 74cb4c596..fdfefd531 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/bold.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/bold.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/bold caption: {{$:/language/Buttons/Bold/Caption}} (Markdown) description: {{$:/language/Buttons/Bold/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((bold)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/heading-1.tid b/plugins/tiddlywiki/markdown/EditorToolbar/heading-1.tid index c51bfaccc..7215e9c94 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/heading-1.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/heading-1.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/heading-1 caption: {{$:/language/Buttons/Heading1/Caption}} (Markdown) description: {{$:/language/Buttons/Heading1/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((heading-1)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/heading-2.tid b/plugins/tiddlywiki/markdown/EditorToolbar/heading-2.tid index 8a5a86a1c..37e81ff31 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/heading-2.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/heading-2.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/heading-2 caption: {{$:/language/Buttons/Heading2/Caption}} (Markdown) description: {{$:/language/Buttons/Heading2/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((heading-2)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/heading-3.tid b/plugins/tiddlywiki/markdown/EditorToolbar/heading-3.tid index 2c1c24034..7423e0c5c 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/heading-3.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/heading-3.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/heading-3 caption: {{$:/language/Buttons/Heading3/Caption}} (Markdown) description: {{$:/language/Buttons/Heading3/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((heading-3)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/heading-4.tid b/plugins/tiddlywiki/markdown/EditorToolbar/heading-4.tid index 2df2d78f5..0b015d5d2 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/heading-4.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/heading-4.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/heading-4 caption: {{$:/language/Buttons/Heading4/Caption}} (Markdown) description: {{$:/language/Buttons/Heading4/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((heading-4)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/heading-5.tid b/plugins/tiddlywiki/markdown/EditorToolbar/heading-5.tid index e1f9447fe..4f0dedde1 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/heading-5.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/heading-5.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/heading-5 caption: {{$:/language/Buttons/Heading5/Caption}} (Markdown) description: {{$:/language/Buttons/Heading5/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((heading-5)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/heading-6.tid b/plugins/tiddlywiki/markdown/EditorToolbar/heading-6.tid index 34e598066..3ca3bfdab 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/heading-6.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/heading-6.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/heading-6 caption: {{$:/language/Buttons/Heading6/Caption}} (Markdown) description: {{$:/language/Buttons/Heading6/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((heading-6)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/italic.tid b/plugins/tiddlywiki/markdown/EditorToolbar/italic.tid index 921898770..db9434151 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/italic.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/italic.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/italic caption: {{$:/language/Buttons/Italic/Caption}} (Markdown) description: {{$:/language/Buttons/Italic/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((italic)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet.tid b/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet.tid index 166637d03..a04c47103 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/list-bullet caption: {{$:/language/Buttons/ListBullet/Caption}} (Markdown) description: {{$:/language/Buttons/ListBullet/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((list-bullet)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/list-number.tid b/plugins/tiddlywiki/markdown/EditorToolbar/list-number.tid index ce185b42f..a53ee9d07 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/list-number.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/list-number.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/list-number caption: {{$:/language/Buttons/ListNumber/Caption}} (Markdown) description: {{$:/language/Buttons/ListNumber/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((list-number)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/mono-line.tid b/plugins/tiddlywiki/markdown/EditorToolbar/mono-line.tid index c69145e1e..7e07488a3 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/mono-line.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/mono-line.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/mono-line caption: {{$:/language/Buttons/MonoLine/Caption}} (Markdown) description: {{$:/language/Buttons/MonoLine/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((mono-line)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/quote.tid b/plugins/tiddlywiki/markdown/EditorToolbar/quote.tid index 1471a77ba..78121431b 100755 --- a/plugins/tiddlywiki/markdown/EditorToolbar/quote.tid +++ b/plugins/tiddlywiki/markdown/EditorToolbar/quote.tid @@ -4,7 +4,7 @@ tags: $:/tags/EditorToolbar icon: $:/core/images/quote caption: {{$:/language/Buttons/Quote/Caption}} (Markdown) description: {{$:/language/Buttons/Quote/Hint}} -condition: [<targetTiddler>type[text/x-markdown]] +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] shortcuts: ((quote)) <$action-sendmessage diff --git a/plugins/tiddlywiki/markdown/KeyboardShortcuts/new-markdown-tiddler.tid b/plugins/tiddlywiki/markdown/KeyboardShortcuts/new-markdown-tiddler.tid index a629f6227..7015759ed 100644 --- a/plugins/tiddlywiki/markdown/KeyboardShortcuts/new-markdown-tiddler.tid +++ b/plugins/tiddlywiki/markdown/KeyboardShortcuts/new-markdown-tiddler.tid @@ -4,5 +4,5 @@ key: ((new-markdown-tiddler)) \whitespace trim <$navigator story="$:/StoryList" history="$:/HistoryList" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}> -<$action-sendmessage $message="tm-new-tiddler" type="text/x-markdown"/> +<$action-sendmessage $message="tm-new-tiddler" type="text/markdown"/> </$navigator> diff --git a/plugins/tiddlywiki/markdown/config.multids b/plugins/tiddlywiki/markdown/config.multids index 1f142c8b4..bb666812f 100644 --- a/plugins/tiddlywiki/markdown/config.multids +++ b/plugins/tiddlywiki/markdown/config.multids @@ -3,3 +3,9 @@ title: $:/config/ ShortcutInfo/new-markdown-tiddler: {{$:/language/Buttons/NewMarkdown/Hint}} shortcuts-mac/new-markdown-tiddler: ctrl-M shortcuts-not-mac/new-markdown-tiddler: alt-M +markdown/breaks: false +markdown/linkify: false +markdown/quotes: “”‘’ +markdown/renderWikiText: true +markdown/renderWikiTextPragma: \rules only html entity syslink wikilink commentblock commentinline macrocallblock macrocallinline transcludeblock transcludeinline filteredtranscludeblock filteredtranscludeinline +markdown/typographer: false \ No newline at end of file diff --git a/plugins/tiddlywiki/markdown/config.tid b/plugins/tiddlywiki/markdown/config.tid new file mode 100755 index 000000000..c3fb14c0d --- /dev/null +++ b/plugins/tiddlywiki/markdown/config.tid @@ -0,0 +1,80 @@ +title: $:/plugins/tiddlywiki/markdown/config + +! Plugin Configuration + +|!Config |!Default |!Description | +|[[breaks|$:/config/markdown/breaks]]|`false`|markdown-it library config: Convert '\n' in paragraphs into `<br>` | +|[[linkify|$:/config/markdown/linkify]]|`false`|markdown-it library config: Autoconvert URL-like text to links | +|[[renderWikiText|$:/config/markdown/renderWikiText]]|`true`|After Markdown is parsed, should any text elements be handed off to the ~WikiText parser for further processing? | +|[[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]]|<code><$view tiddler="$:/plugins/tiddlywiki/markdown" subtiddler="$:/config/markdown/renderWikiTextPragma" mode="inline"/></code>|When handing off to the ~WikiText parser, what parser rules should it follow? | +|[[typographer|$:/config/markdown/typographer]]|`false`|markdown-it library config: Enable some language-neutral replacement + quotes beautification | +|[[quotes|$:/config/markdown/quotes]]|`“”‘’`|markdown-it library config: Double + single quotes replacement pairs, when `typographer` is enabled | + +''IMPORTANT:'' You must reload your wiki for changes to take effect. + +<h2 style="margin-top:1.5em">~WikiText Pragma</h2> + +The value of [[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]] has been carefully tuned to properly integrate markdown with ~TiddlyWiki. Changing this setting may produce unexpected results, but the inclusion of the following parser rules should be fine: + +; image +: embed images using ~TiddlyWiki's image syntax: + +<p style="margin-left:1em"> + +``` +[img[An explanatory tooltip|TiddlerTitle]] + +[img width=23 class="tc-image" [https://tiddlywiki.com/fractalveg.jpg]] +``` +</p> + +; prettylink +: create links the ~TiddlyWiki way: + +<p style="margin-left:1em"> + +``` +[[TiddlerTitle]] + +[[Displayed Link Title|Tiddler Title]] + +[[TW5|https://tiddlywiki.com/]] +``` +</p> + +; prettyextlink +: create external links using the following syntax: + +<p style="margin-left:1em"> + +``` +[ext[Open file|index.html]] + +[ext[Open file|../README.md]] +``` +</p> + +; wikilink +: auto-link ~CamelCase titles + +; syslink +: auto-link system tiddlers + +<h2 style="margin-top:1.5em">Typographical Replacements</h2> + +When [[typographer|$:/config/markdown/typographer]] is enabled, markdown-it will provide these typographical replacements: + +``` +(c) (C) → © +(tm) (TM) → ™ +(r) (R) → ® ++- → ± +... → … +?.... → ?.. +!.... → !.. +????? → ??? +!!!!! → !!! +,, → , +-- → – +--- → — +``` \ No newline at end of file diff --git a/plugins/tiddlywiki/markdown/docs_type_markdown.tid b/plugins/tiddlywiki/markdown/docs_type_markdown.tid index 229397ed7..0e5c1edef 100755 --- a/plugins/tiddlywiki/markdown/docs_type_markdown.tid +++ b/plugins/tiddlywiki/markdown/docs_type_markdown.tid @@ -1,4 +1,4 @@ -title: $:/language/Docs/Types/text/x-markdown +title: $:/language/Docs/Types/text/markdown description: Markdown -name: text/x-markdown +name: text/markdown group: Text diff --git a/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js b/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js index 6ab90f883..b124325c8 100644 --- a/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js +++ b/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js @@ -13,19 +13,25 @@ Text editor operation to make a markdown link "use strict"; exports["make-markdown-link"] = function(event,operation) { + var rx = /[()\\]/g, rs = '\\$&'; + if(operation.selection) { - if(event.paramObject.text.includes("://")) { - operation.replacement = "[" + operation.selection + "](" + event.paramObject.text + ")"; + var desc = operation.selection.replace(/[\[\]\\]/g, rs); + + if(event.paramObject.text.indexOf("://") !== -1) { + operation.replacement = "[" + desc + "](" + event.paramObject.text.replace(rx, rs) + ")"; } else { - operation.replacement = "[" + operation.selection + "](#" + event.paramObject.text.replaceAll(" ", "%20") + ")"; + operation.replacement = "[" + desc + "](#" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + ")"; } operation.cutStart = operation.selStart; operation.cutEnd = operation.selEnd; } else { - if(event.paramObject.text.includes("://")) { - operation.replacement = "<" + event.paramObject.text + ">"; + if(event.paramObject.text.indexOf("://") !== -1) { + operation.replacement = "<" + event.paramObject.text.replace(/[<>]/g, function(m, offset, str) { + return encodeURI(m); + }) + ">"; } else { - operation.replacement = "[](#" + event.paramObject.text.replaceAll(" ", "%20") + ")"; + operation.replacement = "[](#" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + ")"; } operation.cutStart = operation.selStart; operation.cutEnd = operation.selEnd; diff --git a/plugins/tiddlywiki/markdown/files/LICENSE b/plugins/tiddlywiki/markdown/files/LICENSE new file mode 100644 index 000000000..7ffa058cb --- /dev/null +++ b/plugins/tiddlywiki/markdown/files/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/plugins/tiddlywiki/markdown/files/markdown-it-deflist.min.js b/plugins/tiddlywiki/markdown/files/markdown-it-deflist.min.js new file mode 100644 index 000000000..30ed4e224 --- /dev/null +++ b/plugins/tiddlywiki/markdown/files/markdown-it-deflist.min.js @@ -0,0 +1,7 @@ +/*! + +markdown-it-deflist +https://github.com/markdown-it/markdown-it-deflist + +*/ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).markdownitDeflist=e()}}((function(){return function e(t,n,r){function i(f,d){if(!n[f]){if(!t[f]){var s="function"==typeof require&&require;if(!d&&s)return s(f,!0);if(o)return o(f,!0);var u=new Error("Cannot find module '"+f+"'");throw u.code="MODULE_NOT_FOUND",u}var a=n[f]={exports:{}};t[f][0].call(a.exports,(function(e){return i(t[f][1][e]||e)}),a,a.exports,e,t,n,r)}return n[f].exports}for(var o="function"==typeof require&&require,f=0;f<r.length;f++)i(r[f]);return i}({"/":[function(e,t,n){"use strict";t.exports=function(e){var t=e.utils.isSpace;function n(e,t){var n,r,i=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];return i>=o||126!==(r=e.src.charCodeAt(i++))&&58!==r||i===(n=e.skipSpaces(i))||n>=o?-1:i}e.block.ruler.before("paragraph","deflist",(function(e,r,i,o){var f,d,s,u,a,l,p,k,c,h,b,y,m,g,C,I,v,_,w,x;if(o)return!(e.ddIndent<0)&&n(e,r)>=0;if((c=r+1)>=i)return!1;if(e.isEmpty(c)&&++c>=i)return!1;if(e.sCount[c]<e.blkIndent)return!1;if((d=n(e,c))<0)return!1;p=e.tokens.length,w=!0,(x=e.push("dl_open","dl",1)).map=l=[r,0],u=r,s=c;e:for(;;){for(_=!1,(x=e.push("dt_open","dt",1)).map=[u,u],(x=e.push("inline","",0)).map=[u,u],x.content=e.getLines(u,u+1,e.blkIndent,!1).trim(),x.children=[],x=e.push("dt_close","dt",-1);;){for((x=e.push("dd_open","dd",1)).map=a=[c,0],v=d,k=e.eMarks[s],h=e.sCount[s]+d-(e.bMarks[s]+e.tShift[s]);v<k&&(f=e.src.charCodeAt(v),t(f));)9===f?h+=4-h%4:h++,v++;if(d=v,I=e.tight,b=e.ddIndent,y=e.blkIndent,C=e.tShift[s],g=e.sCount[s],m=e.parentType,e.blkIndent=e.ddIndent=e.sCount[s]+2,e.tShift[s]=d-e.bMarks[s],e.sCount[s]=h,e.tight=!0,e.parentType="deflist",e.md.block.tokenize(e,s,i,!0),e.tight&&!_||(w=!1),_=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=C,e.sCount[s]=g,e.tight=I,e.parentType=m,e.blkIndent=y,e.ddIndent=b,x=e.push("dd_close","dd",-1),a[1]=c=e.line,c>=i)break e;if(e.sCount[c]<e.blkIndent)break e;if((d=n(e,c))<0)break;s=c}if(c>=i)break;if(u=c,e.isEmpty(u))break;if(e.sCount[u]<e.blkIndent)break;if((s=u+1)>=i)break;if(e.isEmpty(s)&&s++,s>=i)break;if(e.sCount[s]<e.blkIndent)break;if((d=n(e,s))<0)break}return x=e.push("dl_close","dl",-1),l[1]=c,e.line=c,w&&function(e,t){var n,r,i=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===i&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,p),!0}),{alt:["paragraph","reference","blockquote"]})}},{}]},{},[])("/")})); diff --git a/plugins/tiddlywiki/markdown/files/markdown-it-footnote.min.js b/plugins/tiddlywiki/markdown/files/markdown-it-footnote.min.js new file mode 100644 index 000000000..87407f930 --- /dev/null +++ b/plugins/tiddlywiki/markdown/files/markdown-it-footnote.min.js @@ -0,0 +1 @@ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).markdownitFootnote=e()}}(function(){return function(){return function e(o,t,n){function r(f,l){if(!t[f]){if(!o[f]){var i="function"==typeof require&&require;if(!l&&i)return i(f,!0);if(s)return s(f,!0);var u=new Error("Cannot find module '"+f+"'");throw u.code="MODULE_NOT_FOUND",u}var a=t[f]={exports:{}};o[f][0].call(a.exports,function(e){return r(o[f][1][e]||e)},a,a.exports,e,o,t,n)}return t[f].exports}for(var s="function"==typeof require&&require,f=0;f<n.length;f++)r(n[f]);return r}}()({1:[function(e,o,t){"use strict";function n(e,o,t,n){var r=Number(e[o].meta.id+1).toString(),s="";return"string"==typeof n.docId&&(s="-"+n.docId+"-"),s+r}function r(e,o){var t=Number(e[o].meta.id+1).toString();return e[o].meta.subId>0&&(t+=":"+e[o].meta.subId),"["+t+"]"}function s(e,o,t,n,r){var s=r.rules.footnote_anchor_name(e,o,t,n,r),f=r.rules.footnote_caption(e,o,t,n,r),l=s;return e[o].meta.subId>0&&(l+=":"+e[o].meta.subId),'<sup class="footnote-ref"><a href="#fn'+s+'" id="fnref'+l+'">'+f+"</a></sup>"}function f(e,o,t){return(t.xhtmlOut?'<hr class="footnotes-sep" />\n':'<hr class="footnotes-sep">\n')+'<section class="footnotes">\n<ol class="footnotes-list">\n'}function l(){return"</ol>\n</section>\n"}function i(e,o,t,n,r){var s=r.rules.footnote_anchor_name(e,o,t,n,r);return e[o].meta.subId>0&&(s+=":"+e[o].meta.subId),'<li id="fn'+s+'" class="footnote-item">'}function u(){return"</li>\n"}function a(e,o,t,n,r){var s=r.rules.footnote_anchor_name(e,o,t,n,r);return e[o].meta.subId>0&&(s+=":"+e[o].meta.subId),' <a href="#fnref'+s+'" class="footnote-backref">\u21a9\ufe0e</a>'}o.exports=function(e){var o=e.helpers.parseLinkLabel,t=e.utils.isSpace;e.renderer.rules.footnote_ref=s,e.renderer.rules.footnote_block_open=f,e.renderer.rules.footnote_block_close=l,e.renderer.rules.footnote_open=i,e.renderer.rules.footnote_close=u,e.renderer.rules.footnote_anchor=a,e.renderer.rules.footnote_caption=r,e.renderer.rules.footnote_anchor_name=n,e.block.ruler.before("reference","footnote_def",function(e,o,n,r){var s,f,l,i,u,a,c,p,d,h,k,b=e.bMarks[o]+e.tShift[o],v=e.eMarks[o];if(b+4>v)return!1;if(91!==e.src.charCodeAt(b))return!1;if(94!==e.src.charCodeAt(b+1))return!1;for(u=b+2;u<v;u++){if(32===e.src.charCodeAt(u))return!1;if(93===e.src.charCodeAt(u))break}if(u===b+2)return!1;if(u+1>=v||58!==e.src.charCodeAt(++u))return!1;if(r)return!0;for(u++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),a=e.src.slice(b+2,u-2),e.env.footnotes.refs[":"+a]=-1,(c=new e.Token("footnote_reference_open","",1)).meta={label:a},c.level=e.level++,e.tokens.push(c),s=e.bMarks[o],f=e.tShift[o],l=e.sCount[o],i=e.parentType,k=u,p=d=e.sCount[o]+u-(e.bMarks[o]+e.tShift[o]);u<v&&(h=e.src.charCodeAt(u),t(h));)9===h?d+=4-d%4:d++,u++;return e.tShift[o]=u-k,e.sCount[o]=d-p,e.bMarks[o]=k,e.blkIndent+=4,e.parentType="footnote",e.sCount[o]<e.blkIndent&&(e.sCount[o]+=e.blkIndent),e.md.block.tokenize(e,o,n,!0),e.parentType=i,e.blkIndent-=4,e.tShift[o]=f,e.sCount[o]=l,e.bMarks[o]=s,(c=new e.Token("footnote_reference_close","",-1)).level=--e.level,e.tokens.push(c),!0},{alt:["paragraph","reference"]}),e.inline.ruler.after("image","footnote_inline",function(e,t){var n,r,s,f,l=e.posMax,i=e.pos;return!(i+2>=l||94!==e.src.charCodeAt(i)||91!==e.src.charCodeAt(i+1)||(n=i+2,(r=o(e,i+1))<0||(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),s=e.env.footnotes.list.length,e.md.inline.parse(e.src.slice(n,r),e.md,e.env,f=[]),e.push("footnote_ref","",0).meta={id:s},e.env.footnotes.list[s]={content:e.src.slice(n,r),tokens:f}),e.pos=r+1,e.posMax=l,0)))}),e.inline.ruler.after("footnote_inline","footnote_ref",function(e,o){var t,n,r,s,f=e.posMax,l=e.pos;if(l+3>f)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(l))return!1;if(94!==e.src.charCodeAt(l+1))return!1;for(n=l+2;n<f;n++){if(32===e.src.charCodeAt(n))return!1;if(10===e.src.charCodeAt(n))return!1;if(93===e.src.charCodeAt(n))break}return!(n===l+2||n>=f||(n++,t=e.src.slice(l+2,n-1),void 0===e.env.footnotes.refs[":"+t]||(o||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[":"+t]<0?(r=e.env.footnotes.list.length,e.env.footnotes.list[r]={label:t,count:0},e.env.footnotes.refs[":"+t]=r):r=e.env.footnotes.refs[":"+t],s=e.env.footnotes.list[r].count,e.env.footnotes.list[r].count++,e.push("footnote_ref","",0).meta={id:r,subId:s,label:t}),e.pos=n,e.posMax=f,0)))}),e.core.ruler.after("inline","footnote_tail",function(e){var o,t,n,r,s,f,l,i,u,a,c=!1,p={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return"footnote_reference_open"===e.type?(c=!0,u=[],a=e.meta.label,!1):"footnote_reference_close"===e.type?(c=!1,p[":"+a]=u,!1):(c&&u.push(e),!c)}),e.env.footnotes.list)){for(f=e.env.footnotes.list,l=new e.Token("footnote_block_open","",1),e.tokens.push(l),o=0,t=f.length;o<t;o++){for((l=new e.Token("footnote_open","",1)).meta={id:o,label:f[o].label},e.tokens.push(l),f[o].tokens?(i=[],(l=new e.Token("paragraph_open","p",1)).block=!0,i.push(l),(l=new e.Token("inline","",0)).children=f[o].tokens,l.content=f[o].content,i.push(l),(l=new e.Token("paragraph_close","p",-1)).block=!0,i.push(l)):f[o].label&&(i=p[":"+f[o].label]),i&&(e.tokens=e.tokens.concat(i)),s="paragraph_close"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,r=f[o].count>0?f[o].count:1,n=0;n<r;n++)(l=new e.Token("footnote_anchor","",0)).meta={id:o,subId:n,label:f[o].label},e.tokens.push(l);s&&e.tokens.push(s),l=new e.Token("footnote_close","",-1),e.tokens.push(l)}l=new e.Token("footnote_block_close","",-1),e.tokens.push(l)}})}},{}]},{},[1])(1)}); diff --git a/plugins/tiddlywiki/markdown/files/markdown-it-ins.min.js b/plugins/tiddlywiki/markdown/files/markdown-it-ins.min.js new file mode 100644 index 000000000..d388dfd3c --- /dev/null +++ b/plugins/tiddlywiki/markdown/files/markdown-it-ins.min.js @@ -0,0 +1,2 @@ +/*! markdown-it-ins 3.0.1 https://github.com/markdown-it/markdown-it-mark @license MIT */ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).markdownitIns=n()}(this,(function(){"use strict";return function(e){function n(e,n){var t,o,s,i,r,l=[],f=n.length;for(t=0;t<f;t++)43===(s=n[t]).marker&&-1!==s.end&&(i=n[s.end],(r=e.tokens[s.token]).type="ins_open",r.tag="ins",r.nesting=1,r.markup="++",r.content="",(r=e.tokens[i.token]).type="ins_close",r.tag="ins",r.nesting=-1,r.markup="++",r.content="","text"===e.tokens[i.token-1].type&&"+"===e.tokens[i.token-1].content&&l.push(i.token-1));for(;l.length;){for(o=(t=l.pop())+1;o<e.tokens.length&&"ins_close"===e.tokens[o].type;)o++;t!==--o&&(r=e.tokens[o],e.tokens[o]=e.tokens[t],e.tokens[t]=r)}}e.inline.ruler.before("emphasis","ins",(function(e,n){var t,o,s,i,r=e.pos,l=e.src.charCodeAt(r);if(n)return!1;if(43!==l)return!1;if(s=(o=e.scanDelims(e.pos,!0)).length,i=String.fromCharCode(l),s<2)return!1;for(s%2&&(e.push("text","",0).content=i,s--),t=0;t<s;t+=2)e.push("text","",0).content=i+i,(o.can_open||o.can_close)&&e.delimiters.push({marker:l,length:0,jump:t/2,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});return e.pos+=o.length,!0})),e.inline.ruler2.before("emphasis","ins",(function(e){var t,o=e.tokens_meta,s=(e.tokens_meta||[]).length;for(n(e,e.delimiters),t=0;t<s;t++)o[t]&&o[t].delimiters&&n(e,o[t].delimiters)}))}})); diff --git a/plugins/tiddlywiki/markdown/files/markdown-it-mark.min.js b/plugins/tiddlywiki/markdown/files/markdown-it-mark.min.js new file mode 100644 index 000000000..16856d367 --- /dev/null +++ b/plugins/tiddlywiki/markdown/files/markdown-it-mark.min.js @@ -0,0 +1,2 @@ +/*! markdown-it-mark 3.0.1 https://github.com/markdown-it/markdown-it-mark @license MIT */ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).markdownitMark=n()}(this,(function(){"use strict";return function(e){function n(e,n){var t,o,r,s,i,a=[],k=n.length;for(t=0;t<k;t++)61===(r=n[t]).marker&&-1!==r.end&&(s=n[r.end],(i=e.tokens[r.token]).type="mark_open",i.tag="mark",i.nesting=1,i.markup="==",i.content="",(i=e.tokens[s.token]).type="mark_close",i.tag="mark",i.nesting=-1,i.markup="==",i.content="","text"===e.tokens[s.token-1].type&&"="===e.tokens[s.token-1].content&&a.push(s.token-1));for(;a.length;){for(o=(t=a.pop())+1;o<e.tokens.length&&"mark_close"===e.tokens[o].type;)o++;t!==--o&&(i=e.tokens[o],e.tokens[o]=e.tokens[t],e.tokens[t]=i)}}e.inline.ruler.before("emphasis","mark",(function(e,n){var t,o,r,s,i=e.pos,a=e.src.charCodeAt(i);if(n)return!1;if(61!==a)return!1;if(r=(o=e.scanDelims(e.pos,!0)).length,s=String.fromCharCode(a),r<2)return!1;for(r%2&&(e.push("text","",0).content=s,r--),t=0;t<r;t+=2)e.push("text","",0).content=s+s,(o.can_open||o.can_close)&&e.delimiters.push({marker:a,length:0,jump:t/2,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});return e.pos+=o.length,!0})),e.inline.ruler2.before("emphasis","mark",(function(e){var t,o=e.tokens_meta,r=(e.tokens_meta||[]).length;for(n(e,e.delimiters),t=0;t<r;t++)o[t]&&o[t].delimiters&&n(e,o[t].delimiters)}))}})); diff --git a/plugins/tiddlywiki/markdown/files/markdown-it-sub.min.js b/plugins/tiddlywiki/markdown/files/markdown-it-sub.min.js new file mode 100644 index 000000000..a3a4542fa --- /dev/null +++ b/plugins/tiddlywiki/markdown/files/markdown-it-sub.min.js @@ -0,0 +1,2 @@ +/*! markdown-it-sub 1.0.0 https://github.com//markdown-it/markdown-it-sub @license MIT */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.markdownitSub=e()}}(function(){return function e(r,o,n){function t(i,u){if(!o[i]){if(!r[i]){var f="function"==typeof require&&require;if(!u&&f)return f(i,!0);if(s)return s(i,!0);var p=new Error("Cannot find module '"+i+"'");throw p.code="MODULE_NOT_FOUND",p}var a=o[i]={exports:{}};r[i][0].call(a.exports,function(e){var o=r[i][1][e];return t(o?o:e)},a,a.exports,e,r,o,n)}return o[i].exports}for(var s="function"==typeof require&&require,i=0;i<n.length;i++)t(n[i]);return t}({1:[function(e,r){"use strict";function o(e,r){var o,t,s,i=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(r)return!1;if(u+2>=i)return!1;for(e.pos=u+1;e.pos<i;){if(126===e.src.charCodeAt(e.pos)){o=!0;break}e.md.inline.skipToken(e)}return o&&u+1!==e.pos?(t=e.src.slice(u+1,e.pos),t.match(/(^|[^\\])(\\\\)*\s/)?(e.pos=u,!1):(e.posMax=e.pos,e.pos=u+1,s=e.push("sub_open","sub",1),s.markup="~",s=e.push("text","",0),s.content=t.replace(n,"$1"),s=e.push("sub_close","sub",-1),s.markup="~",e.pos=e.posMax+1,e.posMax=i,!0)):(e.pos=u,!1)}var n=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;r.exports=function(e){e.inline.ruler.after("emphasis","sub",o)}},{}]},{},[1])(1)}); \ No newline at end of file diff --git a/plugins/tiddlywiki/markdown/files/markdown-it-sup.min.js b/plugins/tiddlywiki/markdown/files/markdown-it-sup.min.js new file mode 100644 index 000000000..67da65cda --- /dev/null +++ b/plugins/tiddlywiki/markdown/files/markdown-it-sup.min.js @@ -0,0 +1,2 @@ +/*! markdown-it-sup 1.0.0 https://github.com//markdown-it/markdown-it-sup @license MIT */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.markdownitSup=e()}}(function(){return function e(r,o,n){function t(i,p){if(!o[i]){if(!r[i]){var u="function"==typeof require&&require;if(!p&&u)return u(i,!0);if(s)return s(i,!0);var f=new Error("Cannot find module '"+i+"'");throw f.code="MODULE_NOT_FOUND",f}var a=o[i]={exports:{}};r[i][0].call(a.exports,function(e){var o=r[i][1][e];return t(o?o:e)},a,a.exports,e,r,o,n)}return o[i].exports}for(var s="function"==typeof require&&require,i=0;i<n.length;i++)t(n[i]);return t}({1:[function(e,r){"use strict";function o(e,r){var o,t,s,i=e.posMax,p=e.pos;if(94!==e.src.charCodeAt(p))return!1;if(r)return!1;if(p+2>=i)return!1;for(e.pos=p+1;e.pos<i;){if(94===e.src.charCodeAt(e.pos)){o=!0;break}e.md.inline.skipToken(e)}return o&&p+1!==e.pos?(t=e.src.slice(p+1,e.pos),t.match(/(^|[^\\])(\\\\)*\s/)?(e.pos=p,!1):(e.posMax=e.pos,e.pos=p+1,s=e.push("sup_open","sup",1),s.markup="^",s=e.push("text","",0),s.content=t.replace(n,"$1"),s=e.push("sup_close","sup",-1),s.markup="^",e.pos=e.posMax+1,e.posMax=i,!0)):(e.pos=p,!1)}var n=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;r.exports=function(e){e.inline.ruler.after("emphasis","sup",o)}},{}]},{},[1])(1)}); \ No newline at end of file diff --git a/plugins/tiddlywiki/markdown/files/markdown-it.min.js b/plugins/tiddlywiki/markdown/files/markdown-it.min.js new file mode 100644 index 000000000..34201f495 --- /dev/null +++ b/plugins/tiddlywiki/markdown/files/markdown-it.min.js @@ -0,0 +1,3 @@ +/*! markdown-it 13.0.1 https://github.com/markdown-it/markdown-it @license MIT */ +!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(e="undefined"!=typeof globalThis?globalThis:e||self).markdownit=r()}(this,(function(){"use strict";function e(e){if(e.__esModule)return e;var r=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})})),r}var r={Aacute:"\xc1",aacute:"\xe1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223e",acd:"\u223f",acE:"\u223e\u0333",Acirc:"\xc2",acirc:"\xe2",acute:"\xb4",Acy:"\u0410",acy:"\u0430",AElig:"\xc6",aelig:"\xe6",af:"\u2061",Afr:"\ud835\udd04",afr:"\ud835\udd1e",Agrave:"\xc0",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03b1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2a3f",amp:"&",AMP:"&",andand:"\u2a55",And:"\u2a53",and:"\u2227",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angmsd:"\u2221",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",Aogon:"\u0104",aogon:"\u0105",Aopf:"\ud835\udd38",aopf:"\ud835\udd52",apacir:"\u2a6f",ap:"\u2248",apE:"\u2a70",ape:"\u224a",apid:"\u224b",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224a",Aring:"\xc5",aring:"\xe5",Ascr:"\ud835\udc9c",ascr:"\ud835\udcb6",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224d",Atilde:"\xc3",atilde:"\xe3",Auml:"\xc4",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",Backslash:"\u2216",Barv:"\u2ae7",barvee:"\u22bd",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",Bernoullis:"\u212c",Beta:"\u0392",beta:"\u03b2",beth:"\u2136",between:"\u226c",Bfr:"\ud835\udd05",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bNot:"\u2aed",bnot:"\u2310",Bopf:"\ud835\udd39",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxbox:"\u29c9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250c",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252c",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxul:"\u2518",boxuL:"\u255b",boxUl:"\u255c",boxUL:"\u255d",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255a",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253c",boxvH:"\u256a",boxVh:"\u256b",boxVH:"\u256c",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251c",boxvR:"\u255e",boxVr:"\u255f",boxVR:"\u2560",bprime:"\u2035",breve:"\u02d8",Breve:"\u02d8",brvbar:"\xa6",bscr:"\ud835\udcb7",Bscr:"\u212c",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsolb:"\u29c5",bsol:"\\",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",Bumpeq:"\u224e",bumpeq:"\u224f",Cacute:"\u0106",cacute:"\u0107",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",cap:"\u2229",Cap:"\u22d2",capcup:"\u2a47",capdot:"\u2a40",CapitalDifferentialD:"\u2145",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",Cayleys:"\u212d",ccaps:"\u2a4d",Ccaron:"\u010c",ccaron:"\u010d",Ccedil:"\xc7",ccedil:"\xe7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2a4c",ccupssm:"\u2a50",Cdot:"\u010a",cdot:"\u010b",cedil:"\xb8",Cedilla:"\xb8",cemptyv:"\u29b2",cent:"\xa2",centerdot:"\xb7",CenterDot:"\xb7",cfr:"\ud835\udd20",Cfr:"\u212d",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",CircleDot:"\u2299",circledR:"\xae",circledS:"\u24c8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25cb",cirE:"\u29c3",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201d",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2a74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",Congruent:"\u2261",conint:"\u222e",Conint:"\u222f",ContourIntegral:"\u222e",copf:"\ud835\udd54",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xa9",COPY:"\xa9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21b5",cross:"\u2717",Cross:"\u2a2f",Cscr:"\ud835\udc9e",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cupbrcap:"\u2a48",cupcap:"\u2a46",CupCap:"\u224d",cup:"\u222a",Cup:"\u22d3",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21a1",dArr:"\u21d3",dash:"\u2010",Dashv:"\u2ae4",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",Dcaron:"\u010e",dcaron:"\u010f",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21ca",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2a77",deg:"\xb0",Del:"\u2207",Delta:"\u0394",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",Dfr:"\ud835\udd07",dfr:"\ud835\udd21",dHar:"\u2965",dharl:"\u21c3",dharr:"\u21c2",DiacriticalAcute:"\xb4",DiacriticalDot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",DiacriticalGrave:"`",DiacriticalTilde:"\u02dc",diam:"\u22c4",diamond:"\u22c4",Diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",DifferentialD:"\u2146",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",Dopf:"\ud835\udd3b",dopf:"\ud835\udd55",Dot:"\xa8",dot:"\u02d9",DotDot:"\u20dc",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222f",DoubleDot:"\xa8",DoubleDownArrow:"\u21d3",DoubleLeftArrow:"\u21d0",DoubleLeftRightArrow:"\u21d4",DoubleLeftTee:"\u2ae4",DoubleLongLeftArrow:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",DoubleLongRightArrow:"\u27f9",DoubleRightArrow:"\u21d2",DoubleRightTee:"\u22a8",DoubleUpArrow:"\u21d1",DoubleUpDownArrow:"\u21d5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21d3",DownArrowUpArrow:"\u21f5",DownBreve:"\u0311",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21bd",DownRightTeeVector:"\u295f",DownRightVectorBar:"\u2957",DownRightVector:"\u21c1",DownTeeArrow:"\u21a7",DownTee:"\u22a4",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",Dscr:"\ud835\udc9f",dscr:"\ud835\udcb9",DScy:"\u0405",dscy:"\u0455",dsol:"\u29f6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",DZcy:"\u040f",dzcy:"\u045f",dzigrarr:"\u27ff",Eacute:"\xc9",eacute:"\xe9",easter:"\u2a6e",Ecaron:"\u011a",ecaron:"\u011b",Ecirc:"\xca",ecirc:"\xea",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042d",ecy:"\u044d",eDDot:"\u2a77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\ud835\udd08",efr:"\ud835\udd22",eg:"\u2a9a",Egrave:"\xc8",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",Element:"\u2208",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25fb",emptyv:"\u2205",EmptyVerySmallSquare:"\u25ab",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014a",eng:"\u014b",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\ud835\udd3c",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",Epsilon:"\u0395",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",Equal:"\u2a75",equals:"=",EqualTilde:"\u2242",equest:"\u225f",Equilibrium:"\u21cc",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erarr:"\u2971",erDot:"\u2253",escr:"\u212f",Escr:"\u2130",esdot:"\u2250",Esim:"\u2a73",esim:"\u2242",Eta:"\u0397",eta:"\u03b7",ETH:"\xd0",eth:"\xf0",Euml:"\xcb",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",Ffr:"\ud835\udd09",ffr:"\ud835\udd23",filig:"\ufb01",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",Fopf:"\ud835\udd3d",fopf:"\ud835\udd57",forall:"\u2200",ForAll:"\u2200",fork:"\u22d4",forkv:"\u2ad9",Fouriertrf:"\u2131",fpartint:"\u2a0d",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",Fscr:"\u2131",gacute:"\u01f5",Gamma:"\u0393",gamma:"\u03b3",Gammad:"\u03dc",gammad:"\u03dd",gap:"\u2a86",Gbreve:"\u011e",gbreve:"\u011f",Gcedil:"\u0122",Gcirc:"\u011c",gcirc:"\u011d",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2a8c",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",gescc:"\u2aa9",ges:"\u2a7e",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",Gfr:"\ud835\udd0a",gfr:"\ud835\udd24",gg:"\u226b",Gg:"\u22d9",ggg:"\u22d9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2aa5",gl:"\u2277",glE:"\u2a92",glj:"\u2aa4",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gnE:"\u2269",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",Gopf:"\ud835\udd3e",gopf:"\ud835\udd58",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",gtcc:"\u2aa7",gtcir:"\u2a7a",gt:">",GT:">",Gt:"\u226b",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",Hacek:"\u02c7",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",HARDcy:"\u042a",hardcy:"\u044a",harrcir:"\u2948",harr:"\u2194",hArr:"\u21d4",harrw:"\u21ad",Hat:"^",hbar:"\u210f",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",Hfr:"\u210c",HilbertSpace:"\u210b",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",Hopf:"\u210d",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\ud835\udcbd",Hscr:"\u210b",hslash:"\u210f",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224e",HumpEqual:"\u224f",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xcd",iacute:"\xed",ic:"\u2063",Icirc:"\xce",icirc:"\xee",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",Ifr:"\u2111",Igrave:"\xcc",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012a",imacr:"\u012b",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22b7",imped:"\u01b5",Implies:"\u21d2",incare:"\u2105",in:"\u2208",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",intcal:"\u22ba",int:"\u222b",Int:"\u222c",integers:"\u2124",Integral:"\u222b",intercal:"\u22ba",Intersection:"\u22c2",intlarhk:"\u2a17",intprod:"\u2a3c",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012e",iogon:"\u012f",Iopf:"\ud835\udd40",iopf:"\ud835\udd5a",Iota:"\u0399",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",iscr:"\ud835\udcbe",Iscr:"\u2110",isin:"\u2208",isindot:"\u22f5",isinE:"\u22f9",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xcf",iuml:"\xef",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\ud835\udd0d",jfr:"\ud835\udd27",jmath:"\u0237",Jopf:"\ud835\udd41",jopf:"\ud835\udd5b",Jscr:"\ud835\udca5",jscr:"\ud835\udcbf",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039a",kappa:"\u03ba",kappav:"\u03f0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041a",kcy:"\u043a",Kfr:"\ud835\udd0e",kfr:"\ud835\udd28",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040c",kjcy:"\u045c",Kopf:"\ud835\udd42",kopf:"\ud835\udd5c",Kscr:"\ud835\udca6",kscr:"\ud835\udcc0",lAarr:"\u21da",Lacute:"\u0139",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",Lambda:"\u039b",lambda:"\u03bb",lang:"\u27e8",Lang:"\u27ea",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",Laplacetrf:"\u2112",laquo:"\xab",larrb:"\u21e4",larrbfs:"\u291f",larr:"\u2190",Larr:"\u219e",lArr:"\u21d0",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",latail:"\u2919",lAtail:"\u291b",lat:"\u2aab",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lBarr:"\u290e",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",Lcaron:"\u013d",lcaron:"\u013e",Lcedil:"\u013b",lcedil:"\u013c",lceil:"\u2308",lcub:"{",Lcy:"\u041b",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27e8",LeftArrowBar:"\u21e4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21d0",LeftArrowRightArrow:"\u21c6",leftarrowtail:"\u21a2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21c3",LeftFloor:"\u230a",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21d4",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",LeftRightVector:"\u294e",LeftTeeArrow:"\u21a4",LeftTee:"\u22a3",LeftTeeVector:"\u295a",leftthreetimes:"\u22cb",LeftTriangleBar:"\u29cf",LeftTriangle:"\u22b2",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21bf",LeftVectorBar:"\u2952",LeftVector:"\u21bc",lEg:"\u2a8b",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",lescc:"\u2aa8",les:"\u2a7d",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2aa1",lesssim:"\u2272",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",lfisht:"\u297c",lfloor:"\u230a",Lfr:"\ud835\udd0f",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lHar:"\u2962",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21c7",ll:"\u226a",Ll:"\u22d8",llcorner:"\u231e",Lleftarrow:"\u21da",llhard:"\u296b",lltri:"\u25fa",Lmidot:"\u013f",lmidot:"\u0140",lmoustache:"\u23b0",lmoust:"\u23b0",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lnE:"\u2268",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",LongLeftArrow:"\u27f5",Longleftarrow:"\u27f8",longleftrightarrow:"\u27f7",LongLeftRightArrow:"\u27f7",Longleftrightarrow:"\u27fa",longmapsto:"\u27fc",longrightarrow:"\u27f6",LongRightArrow:"\u27f6",Longrightarrow:"\u27f9",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",Lopf:"\ud835\udd43",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",Lscr:"\u2112",lsh:"\u21b0",Lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2aa6",ltcir:"\u2a79",lt:"<",LT:"<",Lt:"\u226a",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",ltrPar:"\u2996",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",Mcy:"\u041c",mcy:"\u043c",mdash:"\u2014",mDDot:"\u223a",measuredangle:"\u2221",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",midast:"*",midcir:"\u2af0",mid:"\u2223",middot:"\xb7",minusb:"\u229f",minus:"\u2212",minusd:"\u2238",minusdu:"\u2a2a",MinusPlus:"\u2213",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",Mopf:"\ud835\udd44",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",Mscr:"\u2133",mstpos:"\u223e",Mu:"\u039c",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266e",naturals:"\u2115",natur:"\u266e",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",Ncy:"\u041d",ncy:"\u043d",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21d7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",nexist:"\u2204",nexists:"\u2204",Nfr:"\ud835\udd11",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",nGg:"\u22d9\u0338",ngsim:"\u2275",nGt:"\u226b\u20d2",ngt:"\u226f",ngtr:"\u226f",nGtv:"\u226b\u0338",nharr:"\u21ae",nhArr:"\u21ce",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",NJcy:"\u040a",njcy:"\u045a",nlarr:"\u219a",nlArr:"\u21cd",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219a",nLeftarrow:"\u21cd",nleftrightarrow:"\u21ae",nLeftrightarrow:"\u21ce",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nLl:"\u22d8\u0338",nlsim:"\u2274",nLt:"\u226a\u20d2",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nLtv:"\u226a\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xa0",nopf:"\ud835\udd5f",Nopf:"\u2115",Not:"\u2aec",not:"\xac",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",notin:"\u2209",notindot:"\u22f5\u0338",notinE:"\u22f9\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangle:"\u22eb",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",nprec:"\u2280",npreceq:"\u2aaf\u0338",npre:"\u2aaf\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219b",nrArr:"\u21cf",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nRightarrow:"\u21cf",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",Nscr:"\ud835\udca9",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",Ntilde:"\xd1",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",Nu:"\u039d",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvDash:"\u22ad",nVdash:"\u22ae",nVDash:"\u22af",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvHarr:"\u2904",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21d6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xd3",oacute:"\xf3",oast:"\u229b",Ocirc:"\xd4",ocirc:"\xf4",ocir:"\u229a",Ocy:"\u041e",ocy:"\u043e",odash:"\u229d",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29bf",Ofr:"\ud835\udd12",ofr:"\ud835\udd2c",ogon:"\u02db",Ograve:"\xd2",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",Omacr:"\u014c",omacr:"\u014d",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",Oopf:"\ud835\udd46",oopf:"\ud835\udd60",opar:"\u29b7",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",operp:"\u29b9",oplus:"\u2295",orarr:"\u21bb",Or:"\u2a54",or:"\u2228",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oS:"\u24c8",Oscr:"\ud835\udcaa",oscr:"\u2134",Oslash:"\xd8",oslash:"\xf8",osol:"\u2298",Otilde:"\xd5",otilde:"\xf5",otimesas:"\u2a36",Otimes:"\u2a37",otimes:"\u2297",Ouml:"\xd6",ouml:"\xf6",ovbar:"\u233d",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",para:"\xb6",parallel:"\u2225",par:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",PartialD:"\u2202",Pcy:"\u041f",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",Pfr:"\ud835\udd13",pfr:"\ud835\udd2d",Phi:"\u03a6",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",Pi:"\u03a0",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plus:"+",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",PlusMinus:"\xb1",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",Poincareplane:"\u210c",pointint:"\u2a15",popf:"\ud835\udd61",Popf:"\u2119",pound:"\xa3",prap:"\u2ab7",Pr:"\u2abb",pr:"\u227a",prcue:"\u227c",precapprox:"\u2ab7",prec:"\u227a",preccurlyeq:"\u227c",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",pre:"\u2aaf",prE:"\u2ab3",precsim:"\u227e",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2ab9",prnE:"\u2ab5",prnsim:"\u22e8",prod:"\u220f",Product:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",Proportional:"\u221d",Proportion:"\u2237",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",Pscr:"\ud835\udcab",pscr:"\ud835\udcc5",Psi:"\u03a8",psi:"\u03c8",puncsp:"\u2008",Qfr:"\ud835\udd14",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",Qopf:"\u211a",qprime:"\u2057",Qscr:"\ud835\udcac",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quot:'"',QUOT:'"',rAarr:"\u21db",race:"\u223d\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",Rang:"\u27eb",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21a0",rArr:"\u21d2",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",rAtail:"\u291c",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rBarr:"\u290f",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",Re:"\u211c",rect:"\u25ad",reg:"\xae",REG:"\xae",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",Rfr:"\u211c",rHar:"\u2964",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",Rho:"\u03a1",rho:"\u03c1",rhov:"\u03f1",RightAngleBracket:"\u27e9",RightArrowBar:"\u21e5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21d2",RightArrowLeftArrow:"\u21c4",rightarrowtail:"\u21a3",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVectorBar:"\u2955",RightDownVector:"\u21c2",RightFloor:"\u230b",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",RightTeeArrow:"\u21a6",RightTee:"\u22a2",RightTeeVector:"\u295b",rightthreetimes:"\u22cc",RightTriangleBar:"\u29d0",RightTriangle:"\u22b3",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVectorBar:"\u2954",RightUpVector:"\u21be",RightVectorBar:"\u2953",RightVector:"\u21c0",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoustache:"\u23b1",rmoust:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",Ropf:"\u211d",roplus:"\u2a2e",rotimes:"\u2a35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",Rrightarrow:"\u21db",rsaquo:"\u203a",rscr:"\ud835\udcc7",Rscr:"\u211b",rsh:"\u21b1",Rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",RuleDelayed:"\u29f4",ruluhar:"\u2968",rx:"\u211e",Sacute:"\u015a",sacute:"\u015b",sbquo:"\u201a",scap:"\u2ab8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2abc",sc:"\u227b",sccue:"\u227d",sce:"\u2ab0",scE:"\u2ab4",Scedil:"\u015e",scedil:"\u015f",Scirc:"\u015c",scirc:"\u015d",scnap:"\u2aba",scnE:"\u2ab6",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",Scy:"\u0421",scy:"\u0441",sdotb:"\u22a1",sdot:"\u22c5",sdote:"\u2a66",searhk:"\u2925",searr:"\u2198",seArr:"\u21d8",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\ud835\udd16",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",SOFTcy:"\u042c",softcy:"\u044c",solbar:"\u233f",solb:"\u29c4",sol:"/",Sopf:"\ud835\udd4a",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",Sqrt:"\u221a",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25a1",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25aa",squ:"\u25a1",squf:"\u25aa",srarr:"\u2192",Sscr:"\ud835\udcae",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",Star:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",Sub:"\u22d0",subdot:"\u2abd",subE:"\u2ac5",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",Subset:"\u22d0",subseteq:"\u2286",subseteqq:"\u2ac5",SubsetEqual:"\u2286",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succapprox:"\u2ab8",succ:"\u227b",succcurlyeq:"\u227d",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",SuchThat:"\u220b",sum:"\u2211",Sum:"\u2211",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"\u2283",Sup:"\u22d1",supdot:"\u2abe",supdsub:"\u2ad8",supE:"\u2ac6",supe:"\u2287",supedot:"\u2ac4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",Supset:"\u22d1",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21d9",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",Tab:"\t",target:"\u2316",Tau:"\u03a4",tau:"\u03c4",tbrk:"\u23b4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",Tfr:"\ud835\udd17",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",THORN:"\xde",thorn:"\xfe",tilde:"\u02dc",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2a31",timesb:"\u22a0",times:"\xd7",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",topbot:"\u2336",topcir:"\u2af1",top:"\u22a4",Topf:"\ud835\udd4b",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",TripleDot:"\u20db",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",Tscr:"\ud835\udcaf",tscr:"\ud835\udcc9",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040b",tshcy:"\u045b",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",Uacute:"\xda",uacute:"\xfa",uarr:"\u2191",Uarr:"\u219f",uArr:"\u21d1",Uarrocir:"\u2949",Ubrcy:"\u040e",ubrcy:"\u045e",Ubreve:"\u016c",ubreve:"\u016d",Ucirc:"\xdb",ucirc:"\xfb",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21c5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",Ufr:"\ud835\udd18",ufr:"\ud835\udd32",Ugrave:"\xd9",ugrave:"\xf9",uHar:"\u2963",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",Umacr:"\u016a",umacr:"\u016b",uml:"\xa8",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",uogon:"\u0173",Uopf:"\ud835\udd4c",uopf:"\ud835\udd66",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21d1",UpArrowDownArrow:"\u21c5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21d5",UpEquilibrium:"\u296e",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03c5",Upsi:"\u03d2",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",UpTeeArrow:"\u21a5",UpTee:"\u22a5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",Uring:"\u016e",uring:"\u016f",urtri:"\u25f9",Uscr:"\ud835\udcb0",uscr:"\ud835\udcca",utdot:"\u22f0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",Uuml:"\xdc",uuml:"\xfc",uwangle:"\u29a7",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",vArr:"\u21d5",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vBar:"\u2ae8",Vbar:"\u2aeb",vBarv:"\u2ae9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22a2",vDash:"\u22a8",Vdash:"\u22a9",VDash:"\u22ab",Vdashl:"\u2ae6",veebar:"\u22bb",vee:"\u2228",Vee:"\u22c1",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",Vopf:"\ud835\udd4d",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",Vscr:"\ud835\udcb1",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",Vvdash:"\u22aa",vzigzag:"\u299a",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",Wedge:"\u22c0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\ud835\udd1a",wfr:"\ud835\udd34",Wopf:"\ud835\udd4e",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\ud835\udcb2",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",Xfr:"\ud835\udd1b",xfr:"\ud835\udd35",xharr:"\u27f7",xhArr:"\u27fa",Xi:"\u039e",xi:"\u03be",xlarr:"\u27f5",xlArr:"\u27f8",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",Xopf:"\ud835\udd4f",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrarr:"\u27f6",xrArr:"\u27f9",Xscr:"\ud835\udcb3",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",Yacute:"\xdd",yacute:"\xfd",YAcy:"\u042f",yacy:"\u044f",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042b",ycy:"\u044b",yen:"\xa5",Yfr:"\ud835\udd1c",yfr:"\ud835\udd36",YIcy:"\u0407",yicy:"\u0457",Yopf:"\ud835\udd50",yopf:"\ud835\udd6a",Yscr:"\ud835\udcb4",yscr:"\ud835\udcce",YUcy:"\u042e",yucy:"\u044e",yuml:"\xff",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017a",Zcaron:"\u017d",zcaron:"\u017e",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017b",zdot:"\u017c",zeetrf:"\u2128",ZeroWidthSpace:"\u200b",Zeta:"\u0396",zeta:"\u03b6",zfr:"\ud835\udd37",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",Zopf:"\u2124",Zscr:"\ud835\udcb5",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"},t=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,n={};function s(e,r,t){var o,i,a,c,l,u="";for("string"!=typeof r&&(t=r,r=s.defaultChars),void 0===t&&(t=!0),l=function(e){var r,t,s=n[e];if(s)return s;for(s=n[e]=[],r=0;r<128;r++)t=String.fromCharCode(r),/^[0-9a-z]$/i.test(t)?s.push(t):s.push("%"+("0"+r.toString(16).toUpperCase()).slice(-2));for(r=0;r<e.length;r++)s[e.charCodeAt(r)]=e[r];return s}(r),o=0,i=e.length;o<i;o++)if(a=e.charCodeAt(o),t&&37===a&&o+2<i&&/^[0-9a-f]{2}$/i.test(e.slice(o+1,o+3)))u+=e.slice(o,o+3),o+=2;else if(a<128)u+=l[a];else if(a>=55296&&a<=57343){if(a>=55296&&a<=56319&&o+1<i&&(c=e.charCodeAt(o+1))>=56320&&c<=57343){u+=encodeURIComponent(e[o]+e[o+1]),o++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[o]);return u}s.defaultChars=";/?:@&=+$,-_.!~*'()#",s.componentChars="-_.!~*'()";var o=s,i={};function a(e,r){var t;return"string"!=typeof r&&(r=a.defaultChars),t=function(e){var r,t,n=i[e];if(n)return n;for(n=i[e]=[],r=0;r<128;r++)t=String.fromCharCode(r),n.push(t);for(r=0;r<e.length;r++)n[t=e.charCodeAt(r)]="%"+("0"+t.toString(16).toUpperCase()).slice(-2);return n}(r),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var r,n,s,o,i,a,c,l="";for(r=0,n=e.length;r<n;r+=3)(s=parseInt(e.slice(r+1,r+3),16))<128?l+=t[s]:192==(224&s)&&r+3<n&&128==(192&(o=parseInt(e.slice(r+4,r+6),16)))?(l+=(c=s<<6&1984|63&o)<128?"\ufffd\ufffd":String.fromCharCode(c),r+=3):224==(240&s)&&r+6<n&&(o=parseInt(e.slice(r+4,r+6),16),i=parseInt(e.slice(r+7,r+9),16),128==(192&o)&&128==(192&i))?(l+=(c=s<<12&61440|o<<6&4032|63&i)<2048||c>=55296&&c<=57343?"\ufffd\ufffd\ufffd":String.fromCharCode(c),r+=6):240==(248&s)&&r+9<n&&(o=parseInt(e.slice(r+4,r+6),16),i=parseInt(e.slice(r+7,r+9),16),a=parseInt(e.slice(r+10,r+12),16),128==(192&o)&&128==(192&i)&&128==(192&a))?((c=s<<18&1835008|o<<12&258048|i<<6&4032|63&a)<65536||c>1114111?l+="\ufffd\ufffd\ufffd\ufffd":(c-=65536,l+=String.fromCharCode(55296+(c>>10),56320+(1023&c))),r+=9):l+="\ufffd";return l}))}a.defaultChars=";/?:@&=+$,#",a.componentChars="";var c=a;function l(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var u=/^([a-z0-9.+-]+:)/i,p=/:[0-9]*$/,h=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,f=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),d=["'"].concat(f),m=["%","/","?",";","#"].concat(d),g=["/","?","#"],_=/^[+a-z0-9A-Z_-]{0,63}$/,k=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};l.prototype.parse=function(e,r){var t,n,s,o,i,a=e;if(a=a.trim(),!r&&1===e.split("#").length){var c=h.exec(a);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}var l=u.exec(a);if(l&&(s=(l=l[0]).toLowerCase(),this.protocol=l,a=a.substr(l.length)),(r||l||a.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(i="//"===a.substr(0,2))||l&&b[l]||(a=a.substr(2),this.slashes=!0)),!b[l]&&(i||l&&!v[l])){var p,f,d=-1;for(t=0;t<g.length;t++)-1!==(o=a.indexOf(g[t]))&&(-1===d||o<d)&&(d=o);for(-1!==(f=-1===d?a.lastIndexOf("@"):a.lastIndexOf("@",d))&&(p=a.slice(0,f),a=a.slice(f+1),this.auth=p),d=-1,t=0;t<m.length;t++)-1!==(o=a.indexOf(m[t]))&&(-1===d||o<d)&&(d=o);-1===d&&(d=a.length),":"===a[d-1]&&d--;var C=a.slice(0,d);a=a.slice(d),this.parseHost(C),this.hostname=this.hostname||"";var y="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!y){var A=this.hostname.split(/\./);for(t=0,n=A.length;t<n;t++){var x=A[t];if(x&&!x.match(_)){for(var D="",w=0,E=x.length;w<E;w++)x.charCodeAt(w)>127?D+="x":D+=x[w];if(!D.match(_)){var q=A.slice(0,t),S=A.slice(t+1),F=x.match(k);F&&(q.push(F[1]),S.unshift(F[2])),S.length&&(a=S.join(".")+a),this.hostname=q.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),y&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var L=a.indexOf("#");-1!==L&&(this.hash=a.substr(L),a=a.slice(0,L));var z=a.indexOf("?");return-1!==z&&(this.search=a.substr(z),a=a.slice(0,z)),a&&(this.pathname=a),v[s]&&this.hostname&&!this.pathname&&(this.pathname=""),this},l.prototype.parseHost=function(e){var r=p.exec(e);r&&(":"!==(r=r[0])&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)};var C={encode:o,decode:c,format:function(e){var r="";return r+=e.protocol||"",r+=e.slashes?"//":"",r+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?r+="["+e.hostname+"]":r+=e.hostname||"",r+=e.port?":"+e.port:"",r+=e.pathname||"",r+=e.search||"",r+=e.hash||""},parse:function(e,r){if(e&&e instanceof l)return e;var t=new l;return t.parse(e,r),t}},y=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,A=/[\0-\x1F\x7F-\x9F]/,x=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,D={Any:y,Cc:A,Cf:/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,P:t,Z:x},w=function(e,r,t){return t={path:r,exports:{},require:function(e,r){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==r&&t.path)}},e(t,t.exports),t.exports}((function(e,n){var s=Object.prototype.hasOwnProperty;function o(e,r){return s.call(e,r)}function i(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var r=55296+((e-=65536)>>10),t=56320+(1023&e);return String.fromCharCode(r,t)}return String.fromCharCode(e)}var c=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,l=new RegExp(c.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),u=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;var p=/[&<>"]/,h=/[&<>"]/g,f={"&":"&","<":"<",">":">",'"':"""};function d(e){return f[e]}var m=/[.?*+^$[\]\\(){}|-]/g;n.lib={},n.lib.mdurl=C,n.lib.ucmicro=D,n.assign=function(e){var r=Array.prototype.slice.call(arguments,1);return r.forEach((function(r){if(r){if("object"!=typeof r)throw new TypeError(r+"must be object");Object.keys(r).forEach((function(t){e[t]=r[t]}))}})),e},n.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},n.has=o,n.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(c,"$1")},n.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(l,(function(e,t,n){return t||function(e,t){var n=0;return o(r,t)?r[t]:35===t.charCodeAt(0)&&u.test(t)&&i(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)}))},n.isValidEntityCode=i,n.fromCodePoint=a,n.escapeHtml=function(e){return p.test(e)?e.replace(h,d):e},n.arrayReplaceAt=function(e,r,t){return[].concat(e.slice(0,r),t,e.slice(r+1))},n.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},n.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},n.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},n.isPunctChar=function(e){return t.test(e)},n.escapeRE=function(e){return e.replace(m,"\\$&")},n.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"\u1e7e"==="\u1e9e".toLowerCase()&&(e=e.replace(/\u1e9e/g,"\xdf")),e.toLowerCase().toUpperCase()}})),E=w.unescapeAll,q=w.unescapeAll,S=function(e,r,t){var n,s,o=r,i={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(r)){for(r++;r<t;){if(10===(n=e.charCodeAt(r)))return i;if(60===n)return i;if(62===n)return i.pos=r+1,i.str=E(e.slice(o+1,r)),i.ok=!0,i;92===n&&r+1<t?r+=2:r++}return i}for(s=0;r<t&&32!==(n=e.charCodeAt(r))&&!(n<32||127===n);)if(92===n&&r+1<t){if(32===e.charCodeAt(r+1))break;r+=2}else{if(40===n&&++s>32)return i;if(41===n){if(0===s)break;s--}r++}return o===r||0!==s||(i.str=E(e.slice(o,r)),i.lines=0,i.pos=r,i.ok=!0),i},F=function(e,r,t){var n,s,o=0,i=r,a={ok:!1,pos:0,lines:0,str:""};if(r>=t)return a;if(34!==(s=e.charCodeAt(r))&&39!==s&&40!==s)return a;for(r++,40===s&&(s=41);r<t;){if((n=e.charCodeAt(r))===s)return a.pos=r+1,a.lines=o,a.str=q(e.slice(i+1,r)),a.ok=!0,a;if(40===n&&41===s)return a;10===n?o++:92===n&&r+1<t&&(r++,10===e.charCodeAt(r)&&o++),r++}return a},L={parseLinkLabel:function(e,r,t){var n,s,o,i,a=-1,c=e.posMax,l=e.pos;for(e.pos=r+1,n=1;e.pos<c;){if(93===(o=e.src.charCodeAt(e.pos))&&0===--n){s=!0;break}if(i=e.pos,e.md.inline.skipToken(e),91===o)if(i===e.pos-1)n++;else if(t)return e.pos=l,-1}return s&&(a=e.pos),e.pos=l,a},parseLinkDestination:S,parseLinkTitle:F},z=w.assign,T=w.unescapeAll,I=w.escapeHtml,M={};function R(){this.rules=z({},M)}M.code_inline=function(e,r,t,n,s){var o=e[r];return"<code"+s.renderAttrs(o)+">"+I(e[r].content)+"</code>"},M.code_block=function(e,r,t,n,s){var o=e[r];return"<pre"+s.renderAttrs(o)+"><code>"+I(e[r].content)+"</code></pre>\n"},M.fence=function(e,r,t,n,s){var o,i,a,c,l,u=e[r],p=u.info?T(u.info).trim():"",h="",f="";return p&&(h=(a=p.split(/(\s+)/g))[0],f=a.slice(2).join("")),0===(o=t.highlight&&t.highlight(u.content,h,f)||I(u.content)).indexOf("<pre")?o+"\n":p?(i=u.attrIndex("class"),c=u.attrs?u.attrs.slice():[],i<0?c.push(["class",t.langPrefix+h]):(c[i]=c[i].slice(),c[i][1]+=" "+t.langPrefix+h),l={attrs:c},"<pre><code"+s.renderAttrs(l)+">"+o+"</code></pre>\n"):"<pre><code"+s.renderAttrs(u)+">"+o+"</code></pre>\n"},M.image=function(e,r,t,n,s){var o=e[r];return o.attrs[o.attrIndex("alt")][1]=s.renderInlineAsText(o.children,t,n),s.renderToken(e,r,t)},M.hardbreak=function(e,r,t){return t.xhtmlOut?"<br />\n":"<br>\n"},M.softbreak=function(e,r,t){return t.breaks?t.xhtmlOut?"<br />\n":"<br>\n":"\n"},M.text=function(e,r){return I(e[r].content)},M.html_block=function(e,r){return e[r].content},M.html_inline=function(e,r){return e[r].content},R.prototype.renderAttrs=function(e){var r,t,n;if(!e.attrs)return"";for(n="",r=0,t=e.attrs.length;r<t;r++)n+=" "+I(e.attrs[r][0])+'="'+I(e.attrs[r][1])+'"';return n},R.prototype.renderToken=function(e,r,t){var n,s="",o=!1,i=e[r];return i.hidden?"":(i.block&&-1!==i.nesting&&r&&e[r-1].hidden&&(s+="\n"),s+=(-1===i.nesting?"</":"<")+i.tag,s+=this.renderAttrs(i),0===i.nesting&&t.xhtmlOut&&(s+=" /"),i.block&&(o=!0,1===i.nesting&&r+1<e.length&&("inline"===(n=e[r+1]).type||n.hidden||-1===n.nesting&&n.tag===i.tag)&&(o=!1)),s+=o?">\n":">")},R.prototype.renderInline=function(e,r,t){for(var n,s="",o=this.rules,i=0,a=e.length;i<a;i++)void 0!==o[n=e[i].type]?s+=o[n](e,i,r,t,this):s+=this.renderToken(e,i,r);return s},R.prototype.renderInlineAsText=function(e,r,t){for(var n="",s=0,o=e.length;s<o;s++)"text"===e[s].type?n+=e[s].content:"image"===e[s].type?n+=this.renderInlineAsText(e[s].children,r,t):"softbreak"===e[s].type&&(n+="\n");return n},R.prototype.render=function(e,r,t){var n,s,o,i="",a=this.rules;for(n=0,s=e.length;n<s;n++)"inline"===(o=e[n].type)?i+=this.renderInline(e[n].children,r,t):void 0!==a[o]?i+=a[e[n].type](e,n,r,t,this):i+=this.renderToken(e,n,r,t);return i};var B=R;function N(){this.__rules__=[],this.__cache__=null}N.prototype.__find__=function(e){for(var r=0;r<this.__rules__.length;r++)if(this.__rules__[r].name===e)return r;return-1},N.prototype.__compile__=function(){var e=this,r=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){r.indexOf(e)<0&&r.push(e)}))})),e.__cache__={},r.forEach((function(r){e.__cache__[r]=[],e.__rules__.forEach((function(t){t.enabled&&(r&&t.alt.indexOf(r)<0||e.__cache__[r].push(t.fn))}))}))},N.prototype.at=function(e,r,t){var n=this.__find__(e),s=t||{};if(-1===n)throw new Error("Parser rule not found: "+e);this.__rules__[n].fn=r,this.__rules__[n].alt=s.alt||[],this.__cache__=null},N.prototype.before=function(e,r,t,n){var s=this.__find__(e),o=n||{};if(-1===s)throw new Error("Parser rule not found: "+e);this.__rules__.splice(s,0,{name:r,enabled:!0,fn:t,alt:o.alt||[]}),this.__cache__=null},N.prototype.after=function(e,r,t,n){var s=this.__find__(e),o=n||{};if(-1===s)throw new Error("Parser rule not found: "+e);this.__rules__.splice(s+1,0,{name:r,enabled:!0,fn:t,alt:o.alt||[]}),this.__cache__=null},N.prototype.push=function(e,r,t){var n=t||{};this.__rules__.push({name:e,enabled:!0,fn:r,alt:n.alt||[]}),this.__cache__=null},N.prototype.enable=function(e,r){Array.isArray(e)||(e=[e]);var t=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(r)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!0,t.push(e)}),this),this.__cache__=null,t},N.prototype.enableOnly=function(e,r){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,r)},N.prototype.disable=function(e,r){Array.isArray(e)||(e=[e]);var t=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(r)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!1,t.push(e)}),this),this.__cache__=null,t},N.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]};var O=N,P=/\r\n?|\n/g,j=/\0/g,U=w.arrayReplaceAt;function V(e){return/^<\/a\s*>/i.test(e)}var Z=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,$=/\((c|tm|r)\)/i,G=/\((c|tm|r)\)/gi,H={c:"\xa9",r:"\xae",tm:"\u2122"};function J(e,r){return H[r.toLowerCase()]}function W(e){var r,t,n=0;for(r=e.length-1;r>=0;r--)"text"!==(t=e[r]).type||n||(t.content=t.content.replace(G,J)),"link_open"===t.type&&"auto"===t.info&&n--,"link_close"===t.type&&"auto"===t.info&&n++}function Y(e){var r,t,n=0;for(r=e.length-1;r>=0;r--)"text"!==(t=e[r]).type||n||Z.test(t.content)&&(t.content=t.content.replace(/\+-/g,"\xb1").replace(/\.{2,}/g,"\u2026").replace(/([?!])\u2026/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1\u2014").replace(/(^|\s)--(?=\s|$)/gm,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1\u2013")),"link_open"===t.type&&"auto"===t.info&&n--,"link_close"===t.type&&"auto"===t.info&&n++}var K=w.isWhiteSpace,Q=w.isPunctChar,X=w.isMdAsciiPunct,ee=/['"]/,re=/['"]/g;function te(e,r,t){return e.slice(0,r)+t+e.slice(r+1)}function ne(e,r){var t,n,s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C,y;for(v=[],t=0;t<e.length;t++){for(n=e[t],c=e[t].level,k=v.length-1;k>=0&&!(v[k].level<=c);k--);if(v.length=k+1,"text"===n.type){i=0,a=(s=n.content).length;e:for(;i<a&&(re.lastIndex=i,o=re.exec(s));){if(g=_=!0,i=o.index+1,b="'"===o[0],u=32,o.index-1>=0)u=s.charCodeAt(o.index-1);else for(k=t-1;k>=0&&("softbreak"!==e[k].type&&"hardbreak"!==e[k].type);k--)if(e[k].content){u=e[k].content.charCodeAt(e[k].content.length-1);break}if(p=32,i<a)p=s.charCodeAt(i);else for(k=t+1;k<e.length&&("softbreak"!==e[k].type&&"hardbreak"!==e[k].type);k++)if(e[k].content){p=e[k].content.charCodeAt(0);break}if(h=X(u)||Q(String.fromCharCode(u)),f=X(p)||Q(String.fromCharCode(p)),d=K(u),(m=K(p))?g=!1:f&&(d||h||(g=!1)),d?_=!1:h&&(m||f||(_=!1)),34===p&&'"'===o[0]&&u>=48&&u<=57&&(_=g=!1),g&&_&&(g=h,_=f),g||_){if(_)for(k=v.length-1;k>=0&&(l=v[k],!(v[k].level<c));k--)if(l.single===b&&v[k].level===c){l=v[k],b?(C=r.md.options.quotes[2],y=r.md.options.quotes[3]):(C=r.md.options.quotes[0],y=r.md.options.quotes[1]),n.content=te(n.content,o.index,y),e[l.token].content=te(e[l.token].content,l.pos,C),i+=y.length-1,l.token===t&&(i+=C.length-1),a=(s=n.content).length,v.length=k;continue e}g?v.push({token:t,pos:o.index,single:b,level:c}):_&&b&&(n.content=te(n.content,o.index,"\u2019"))}else b&&(n.content=te(n.content,o.index,"\u2019"))}}}}function se(e,r,t){this.type=e,this.tag=r,this.attrs=null,this.map=null,this.nesting=t,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}se.prototype.attrIndex=function(e){var r,t,n;if(!this.attrs)return-1;for(t=0,n=(r=this.attrs).length;t<n;t++)if(r[t][0]===e)return t;return-1},se.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},se.prototype.attrSet=function(e,r){var t=this.attrIndex(e),n=[e,r];t<0?this.attrPush(n):this.attrs[t]=n},se.prototype.attrGet=function(e){var r=this.attrIndex(e),t=null;return r>=0&&(t=this.attrs[r][1]),t},se.prototype.attrJoin=function(e,r){var t=this.attrIndex(e);t<0?this.attrPush([e,r]):this.attrs[t][1]=this.attrs[t][1]+" "+r};var oe=se;function ie(e,r,t){this.src=e,this.env=t,this.tokens=[],this.inlineMode=!1,this.md=r}ie.prototype.Token=oe;var ae=ie,ce=[["normalize",function(e){var r;r=(r=e.src.replace(P,"\n")).replace(j,"\ufffd"),e.src=r}],["block",function(e){var r;e.inlineMode?((r=new e.Token("inline","",0)).content=e.src,r.map=[0,1],r.children=[],e.tokens.push(r)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}],["inline",function(e){var r,t,n,s=e.tokens;for(t=0,n=s.length;t<n;t++)"inline"===(r=s[t]).type&&e.md.inline.parse(r.content,e.md,e.env,r.children)}],["linkify",function(e){var r,t,n,s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b=e.tokens;if(e.md.options.linkify)for(t=0,n=b.length;t<n;t++)if("inline"===b[t].type&&e.md.linkify.pretest(b[t].content))for(f=0,r=(s=b[t].children).length-1;r>=0;r--)if("link_close"!==(i=s[r]).type){if("html_inline"===i.type&&(k=i.content,/^<a[>\s]/i.test(k)&&f>0&&f--,V(i.content)&&f++),!(f>0)&&"text"===i.type&&e.md.linkify.test(i.content)){for(l=i.content,_=e.md.linkify.match(l),a=[],h=i.level,p=0,_.length>0&&0===_[0].index&&r>0&&"text_special"===s[r-1].type&&(_=_.slice(1)),c=0;c<_.length;c++)d=_[c].url,m=e.md.normalizeLink(d),e.md.validateLink(m)&&(g=_[c].text,g=_[c].schema?"mailto:"!==_[c].schema||/^mailto:/i.test(g)?e.md.normalizeLinkText(g):e.md.normalizeLinkText("mailto:"+g).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+g).replace(/^http:\/\//,""),(u=_[c].index)>p&&((o=new e.Token("text","",0)).content=l.slice(p,u),o.level=h,a.push(o)),(o=new e.Token("link_open","a",1)).attrs=[["href",m]],o.level=h++,o.markup="linkify",o.info="auto",a.push(o),(o=new e.Token("text","",0)).content=g,o.level=h,a.push(o),(o=new e.Token("link_close","a",-1)).level=--h,o.markup="linkify",o.info="auto",a.push(o),p=_[c].lastIndex);p<l.length&&((o=new e.Token("text","",0)).content=l.slice(p),o.level=h,a.push(o)),b[t].children=s=U(s,r,a)}}else for(r--;s[r].level!==i.level&&"link_open"!==s[r].type;)r--}],["replacements",function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)"inline"===e.tokens[r].type&&($.test(e.tokens[r].content)&&W(e.tokens[r].children),Z.test(e.tokens[r].content)&&Y(e.tokens[r].children))}],["smartquotes",function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)"inline"===e.tokens[r].type&&ee.test(e.tokens[r].content)&&ne(e.tokens[r].children,e)}],["text_join",function(e){var r,t,n,s,o,i,a=e.tokens;for(r=0,t=a.length;r<t;r++)if("inline"===a[r].type){for(o=(n=a[r].children).length,s=0;s<o;s++)"text_special"===n[s].type&&(n[s].type="text");for(s=i=0;s<o;s++)"text"===n[s].type&&s+1<o&&"text"===n[s+1].type?n[s+1].content=n[s].content+n[s+1].content:(s!==i&&(n[i]=n[s]),i++);s!==i&&(n.length=i)}}]];function le(){this.ruler=new O;for(var e=0;e<ce.length;e++)this.ruler.push(ce[e][0],ce[e][1])}le.prototype.process=function(e){var r,t,n;for(r=0,t=(n=this.ruler.getRules("")).length;r<t;r++)n[r](e)},le.prototype.State=ae;var ue=le,pe=w.isSpace;function he(e,r){var t=e.bMarks[r]+e.tShift[r],n=e.eMarks[r];return e.src.slice(t,n)}function fe(e){var r,t=[],n=0,s=e.length,o=!1,i=0,a="";for(r=e.charCodeAt(n);n<s;)124===r&&(o?(a+=e.substring(i,n-1),i=n):(t.push(a+e.substring(i,n)),a="",i=n+1)),o=92===r,n++,r=e.charCodeAt(n);return t.push(a+e.substring(i)),t}var de=w.isSpace,me=w.isSpace,ge=w.isSpace;function _e(e,r){var t,n,s,o;return n=e.bMarks[r]+e.tShift[r],s=e.eMarks[r],42!==(t=e.src.charCodeAt(n++))&&45!==t&&43!==t||n<s&&(o=e.src.charCodeAt(n),!ge(o))?-1:n}function ke(e,r){var t,n=e.bMarks[r]+e.tShift[r],s=n,o=e.eMarks[r];if(s+1>=o)return-1;if((t=e.src.charCodeAt(s++))<48||t>57)return-1;for(;;){if(s>=o)return-1;if(!((t=e.src.charCodeAt(s++))>=48&&t<=57)){if(41===t||46===t)break;return-1}if(s-n>=10)return-1}return s<o&&(t=e.src.charCodeAt(s),!ge(t))?-1:s}var be=w.normalizeReference,ve=w.isSpace,Ce="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",ye="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",Ae={HTML_TAG_RE:new RegExp("^(?:"+Ce+"|"+ye+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),HTML_OPEN_CLOSE_TAG_RE:new RegExp("^(?:"+Ce+"|"+ye+")")},xe=Ae.HTML_OPEN_CLOSE_TAG_RE,De=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"].join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(xe.source+"\\s*$"),/^$/,!1]],we=w.isSpace,Ee=w.isSpace;function qe(e,r,t,n){var s,o,i,a,c,l,u,p;for(this.src=e,this.md=r,this.env=t,this.tokens=n,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",p=!1,i=a=l=u=0,c=(o=this.src).length;a<c;a++){if(s=o.charCodeAt(a),!p){if(Ee(s)){l++,9===s?u+=4-u%4:u++;continue}p=!0}10!==s&&a!==c-1||(10!==s&&a++,this.bMarks.push(i),this.eMarks.push(a),this.tShift.push(l),this.sCount.push(u),this.bsCount.push(0),p=!1,l=0,u=0,i=a+1)}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}qe.prototype.push=function(e,r,t){var n=new oe(e,r,t);return n.block=!0,t<0&&this.level--,n.level=this.level,t>0&&this.level++,this.tokens.push(n),n},qe.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},qe.prototype.skipEmptyLines=function(e){for(var r=this.lineMax;e<r&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},qe.prototype.skipSpaces=function(e){for(var r,t=this.src.length;e<t&&(r=this.src.charCodeAt(e),Ee(r));e++);return e},qe.prototype.skipSpacesBack=function(e,r){if(e<=r)return e;for(;e>r;)if(!Ee(this.src.charCodeAt(--e)))return e+1;return e},qe.prototype.skipChars=function(e,r){for(var t=this.src.length;e<t&&this.src.charCodeAt(e)===r;e++);return e},qe.prototype.skipCharsBack=function(e,r,t){if(e<=t)return e;for(;e>t;)if(r!==this.src.charCodeAt(--e))return e+1;return e},qe.prototype.getLines=function(e,r,t,n){var s,o,i,a,c,l,u,p=e;if(e>=r)return"";for(l=new Array(r-e),s=0;p<r;p++,s++){for(o=0,u=a=this.bMarks[p],c=p+1<r||n?this.eMarks[p]+1:this.eMarks[p];a<c&&o<t;){if(i=this.src.charCodeAt(a),Ee(i))9===i?o+=4-(o+this.bsCount[p])%4:o++;else{if(!(a-u<this.tShift[p]))break;o++}a++}l[s]=o>t?new Array(o-t+1).join(" ")+this.src.slice(a,c):this.src.slice(a,c)}return l.join("")},qe.prototype.Token=oe;var Se=qe,Fe=[["table",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C;if(r+2>t)return!1;if(l=r+1,e.sCount[l]<e.blkIndent)return!1;if(e.sCount[l]-e.blkIndent>=4)return!1;if((i=e.bMarks[l]+e.tShift[l])>=e.eMarks[l])return!1;if(124!==(v=e.src.charCodeAt(i++))&&45!==v&&58!==v)return!1;if(i>=e.eMarks[l])return!1;if(124!==(C=e.src.charCodeAt(i++))&&45!==C&&58!==C&&!pe(C))return!1;if(45===v&&pe(C))return!1;for(;i<e.eMarks[l];){if(124!==(s=e.src.charCodeAt(i))&&45!==s&&58!==s&&!pe(s))return!1;i++}for(u=(o=he(e,r+1)).split("|"),f=[],a=0;a<u.length;a++){if(!(d=u[a].trim())){if(0===a||a===u.length-1)continue;return!1}if(!/^:?-+:?$/.test(d))return!1;58===d.charCodeAt(d.length-1)?f.push(58===d.charCodeAt(0)?"center":"right"):58===d.charCodeAt(0)?f.push("left"):f.push("")}if(-1===(o=he(e,r).trim()).indexOf("|"))return!1;if(e.sCount[r]-e.blkIndent>=4)return!1;if((u=fe(o)).length&&""===u[0]&&u.shift(),u.length&&""===u[u.length-1]&&u.pop(),0===(p=u.length)||p!==f.length)return!1;if(n)return!0;for(_=e.parentType,e.parentType="table",b=e.md.block.ruler.getRules("blockquote"),(h=e.push("table_open","table",1)).map=m=[r,0],(h=e.push("thead_open","thead",1)).map=[r,r+1],(h=e.push("tr_open","tr",1)).map=[r,r+1],a=0;a<u.length;a++)h=e.push("th_open","th",1),f[a]&&(h.attrs=[["style","text-align:"+f[a]]]),(h=e.push("inline","",0)).content=u[a].trim(),h.children=[],h=e.push("th_close","th",-1);for(h=e.push("tr_close","tr",-1),h=e.push("thead_close","thead",-1),l=r+2;l<t&&!(e.sCount[l]<e.blkIndent);l++){for(k=!1,a=0,c=b.length;a<c;a++)if(b[a](e,l,t,!0)){k=!0;break}if(k)break;if(!(o=he(e,l).trim()))break;if(e.sCount[l]-e.blkIndent>=4)break;for((u=fe(o)).length&&""===u[0]&&u.shift(),u.length&&""===u[u.length-1]&&u.pop(),l===r+2&&((h=e.push("tbody_open","tbody",1)).map=g=[r+2,0]),(h=e.push("tr_open","tr",1)).map=[l,l+1],a=0;a<p;a++)h=e.push("td_open","td",1),f[a]&&(h.attrs=[["style","text-align:"+f[a]]]),(h=e.push("inline","",0)).content=u[a]?u[a].trim():"",h.children=[],h=e.push("td_close","td",-1);h=e.push("tr_close","tr",-1)}return g&&(h=e.push("tbody_close","tbody",-1),g[1]=l),h=e.push("table_close","table",-1),m[1]=l,e.parentType=_,e.line=l,!0},["paragraph","reference"]],["code",function(e,r,t){var n,s,o;if(e.sCount[r]-e.blkIndent<4)return!1;for(s=n=r+1;n<t;)if(e.isEmpty(n))n++;else{if(!(e.sCount[n]-e.blkIndent>=4))break;s=++n}return e.line=s,(o=e.push("code_block","code",0)).content=e.getLines(r,s,4+e.blkIndent,!1)+"\n",o.map=[r,e.line],!0}],["fence",function(e,r,t,n){var s,o,i,a,c,l,u,p=!1,h=e.bMarks[r]+e.tShift[r],f=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(h+3>f)return!1;if(126!==(s=e.src.charCodeAt(h))&&96!==s)return!1;if(c=h,(o=(h=e.skipChars(h,s))-c)<3)return!1;if(u=e.src.slice(c,h),i=e.src.slice(h,f),96===s&&i.indexOf(String.fromCharCode(s))>=0)return!1;if(n)return!0;for(a=r;!(++a>=t)&&!((h=c=e.bMarks[a]+e.tShift[a])<(f=e.eMarks[a])&&e.sCount[a]<e.blkIndent);)if(e.src.charCodeAt(h)===s&&!(e.sCount[a]-e.blkIndent>=4||(h=e.skipChars(h,s))-c<o||(h=e.skipSpaces(h))<f)){p=!0;break}return o=e.sCount[r],e.line=a+(p?1:0),(l=e.push("fence","code",0)).info=i,l.content=e.getLines(r+1,a,o,!0),l.markup=u,l.map=[r,e.line],!0},["paragraph","reference","blockquote","list"]],["blockquote",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C,y,A,x=e.lineMax,D=e.bMarks[r]+e.tShift[r],w=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(D++))return!1;if(n)return!0;for(a=h=e.sCount[r]+1,32===e.src.charCodeAt(D)?(D++,a++,h++,s=!1,b=!0):9===e.src.charCodeAt(D)?(b=!0,(e.bsCount[r]+h)%4==3?(D++,a++,h++,s=!1):s=!0):b=!1,f=[e.bMarks[r]],e.bMarks[r]=D;D<w&&(o=e.src.charCodeAt(D),de(o));)9===o?h+=4-(h+e.bsCount[r]+(s?1:0))%4:h++,D++;for(d=[e.bsCount[r]],e.bsCount[r]=e.sCount[r]+1+(b?1:0),l=D>=w,_=[e.sCount[r]],e.sCount[r]=h-a,k=[e.tShift[r]],e.tShift[r]=D-e.bMarks[r],C=e.md.block.ruler.getRules("blockquote"),g=e.parentType,e.parentType="blockquote",p=r+1;p<t&&(A=e.sCount[p]<e.blkIndent,!((D=e.bMarks[p]+e.tShift[p])>=(w=e.eMarks[p])));p++)if(62!==e.src.charCodeAt(D++)||A){if(l)break;for(v=!1,i=0,c=C.length;i<c;i++)if(C[i](e,p,t,!0)){v=!0;break}if(v){e.lineMax=p,0!==e.blkIndent&&(f.push(e.bMarks[p]),d.push(e.bsCount[p]),k.push(e.tShift[p]),_.push(e.sCount[p]),e.sCount[p]-=e.blkIndent);break}f.push(e.bMarks[p]),d.push(e.bsCount[p]),k.push(e.tShift[p]),_.push(e.sCount[p]),e.sCount[p]=-1}else{for(a=h=e.sCount[p]+1,32===e.src.charCodeAt(D)?(D++,a++,h++,s=!1,b=!0):9===e.src.charCodeAt(D)?(b=!0,(e.bsCount[p]+h)%4==3?(D++,a++,h++,s=!1):s=!0):b=!1,f.push(e.bMarks[p]),e.bMarks[p]=D;D<w&&(o=e.src.charCodeAt(D),de(o));)9===o?h+=4-(h+e.bsCount[p]+(s?1:0))%4:h++,D++;l=D>=w,d.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(b?1:0),_.push(e.sCount[p]),e.sCount[p]=h-a,k.push(e.tShift[p]),e.tShift[p]=D-e.bMarks[p]}for(m=e.blkIndent,e.blkIndent=0,(y=e.push("blockquote_open","blockquote",1)).markup=">",y.map=u=[r,0],e.md.block.tokenize(e,r,p),(y=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=x,e.parentType=g,u[1]=e.line,i=0;i<k.length;i++)e.bMarks[i+r]=f[i],e.tShift[i+r]=k[i],e.sCount[i+r]=_[i],e.bsCount[i+r]=d[i];return e.blkIndent=m,!0},["paragraph","reference","blockquote","list"]],["hr",function(e,r,t,n){var s,o,i,a,c=e.bMarks[r]+e.tShift[r],l=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(42!==(s=e.src.charCodeAt(c++))&&45!==s&&95!==s)return!1;for(o=1;c<l;){if((i=e.src.charCodeAt(c++))!==s&&!me(i))return!1;i===s&&o++}return!(o<3)&&(n||(e.line=r+1,(a=e.push("hr","hr",0)).map=[r,e.line],a.markup=Array(o+1).join(String.fromCharCode(s))),!0)},["paragraph","reference","blockquote","list"]],["list",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C,y,A,x,D,w,E,q,S,F,L,z=!1,T=!0;if(e.sCount[r]-e.blkIndent>=4)return!1;if(e.listIndent>=0&&e.sCount[r]-e.listIndent>=4&&e.sCount[r]<e.blkIndent)return!1;if(n&&"paragraph"===e.parentType&&e.sCount[r]>=e.blkIndent&&(z=!0),(w=ke(e,r))>=0){if(u=!0,q=e.bMarks[r]+e.tShift[r],g=Number(e.src.slice(q,w-1)),z&&1!==g)return!1}else{if(!((w=_e(e,r))>=0))return!1;u=!1}if(z&&e.skipSpaces(w)>=e.eMarks[r])return!1;if(m=e.src.charCodeAt(w-1),n)return!0;for(d=e.tokens.length,u?(L=e.push("ordered_list_open","ol",1),1!==g&&(L.attrs=[["start",g]])):L=e.push("bullet_list_open","ul",1),L.map=f=[r,0],L.markup=String.fromCharCode(m),k=r,E=!1,F=e.md.block.ruler.getRules("list"),C=e.parentType,e.parentType="list";k<t;){for(D=w,_=e.eMarks[k],l=b=e.sCount[k]+w-(e.bMarks[r]+e.tShift[r]);D<_;){if(9===(s=e.src.charCodeAt(D)))b+=4-(b+e.bsCount[k])%4;else{if(32!==s)break;b++}D++}if((c=(o=D)>=_?1:b-l)>4&&(c=1),a=l+c,(L=e.push("list_item_open","li",1)).markup=String.fromCharCode(m),L.map=p=[r,0],u&&(L.info=e.src.slice(q,w-1)),x=e.tight,A=e.tShift[r],y=e.sCount[r],v=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=a,e.tight=!0,e.tShift[r]=o-e.bMarks[r],e.sCount[r]=b,o>=_&&e.isEmpty(r+1)?e.line=Math.min(e.line+2,t):e.md.block.tokenize(e,r,t,!0),e.tight&&!E||(T=!1),E=e.line-r>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=v,e.tShift[r]=A,e.sCount[r]=y,e.tight=x,(L=e.push("list_item_close","li",-1)).markup=String.fromCharCode(m),k=r=e.line,p[1]=k,o=e.bMarks[r],k>=t)break;if(e.sCount[k]<e.blkIndent)break;if(e.sCount[r]-e.blkIndent>=4)break;for(S=!1,i=0,h=F.length;i<h;i++)if(F[i](e,k,t,!0)){S=!0;break}if(S)break;if(u){if((w=ke(e,k))<0)break;q=e.bMarks[k]+e.tShift[k]}else if((w=_e(e,k))<0)break;if(m!==e.src.charCodeAt(w-1))break}return(L=u?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(m),f[1]=k,e.line=k,e.parentType=C,T&&function(e,r){var t,n,s=e.level+2;for(t=r+2,n=e.tokens.length-2;t<n;t++)e.tokens[t].level===s&&"paragraph_open"===e.tokens[t].type&&(e.tokens[t+2].hidden=!0,e.tokens[t].hidden=!0,t+=2)}(e,d),!0},["paragraph","reference","blockquote"]],["reference",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v=0,C=e.bMarks[r]+e.tShift[r],y=e.eMarks[r],A=r+1;if(e.sCount[r]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(C))return!1;for(;++C<y;)if(93===e.src.charCodeAt(C)&&92!==e.src.charCodeAt(C-1)){if(C+1===y)return!1;if(58!==e.src.charCodeAt(C+1))return!1;break}for(a=e.lineMax,k=e.md.block.ruler.getRules("reference"),f=e.parentType,e.parentType="reference";A<a&&!e.isEmpty(A);A++)if(!(e.sCount[A]-e.blkIndent>3||e.sCount[A]<0)){for(_=!1,l=0,u=k.length;l<u;l++)if(k[l](e,A,a,!0)){_=!0;break}if(_)break}for(y=(g=e.getLines(r,A,e.blkIndent,!1).trim()).length,C=1;C<y;C++){if(91===(s=g.charCodeAt(C)))return!1;if(93===s){h=C;break}(10===s||92===s&&++C<y&&10===g.charCodeAt(C))&&v++}if(h<0||58!==g.charCodeAt(h+1))return!1;for(C=h+2;C<y;C++)if(10===(s=g.charCodeAt(C)))v++;else if(!ve(s))break;if(!(d=e.md.helpers.parseLinkDestination(g,C,y)).ok)return!1;if(c=e.md.normalizeLink(d.str),!e.md.validateLink(c))return!1;for(o=C=d.pos,i=v+=d.lines,m=C;C<y;C++)if(10===(s=g.charCodeAt(C)))v++;else if(!ve(s))break;for(d=e.md.helpers.parseLinkTitle(g,C,y),C<y&&m!==C&&d.ok?(b=d.str,C=d.pos,v+=d.lines):(b="",C=o,v=i);C<y&&(s=g.charCodeAt(C),ve(s));)C++;if(C<y&&10!==g.charCodeAt(C)&&b)for(b="",C=o,v=i;C<y&&(s=g.charCodeAt(C),ve(s));)C++;return!(C<y&&10!==g.charCodeAt(C))&&(!!(p=be(g.slice(1,h)))&&(n||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[p]&&(e.env.references[p]={title:b,href:c}),e.parentType=f,e.line=r+v+1),!0))}],["html_block",function(e,r,t,n){var s,o,i,a,c=e.bMarks[r]+e.tShift[r],l=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(a=e.src.slice(c,l),s=0;s<De.length&&!De[s][0].test(a);s++);if(s===De.length)return!1;if(n)return De[s][2];if(o=r+1,!De[s][1].test(a))for(;o<t&&!(e.sCount[o]<e.blkIndent);o++)if(c=e.bMarks[o]+e.tShift[o],l=e.eMarks[o],a=e.src.slice(c,l),De[s][1].test(a)){0!==a.length&&o++;break}return e.line=o,(i=e.push("html_block","",0)).map=[r,o],i.content=e.getLines(r,o,e.blkIndent,!0),!0},["paragraph","reference","blockquote"]],["heading",function(e,r,t,n){var s,o,i,a,c=e.bMarks[r]+e.tShift[r],l=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(35!==(s=e.src.charCodeAt(c))||c>=l)return!1;for(o=1,s=e.src.charCodeAt(++c);35===s&&c<l&&o<=6;)o++,s=e.src.charCodeAt(++c);return!(o>6||c<l&&!we(s))&&(n||(l=e.skipSpacesBack(l,c),(i=e.skipCharsBack(l,35,c))>c&&we(e.src.charCodeAt(i-1))&&(l=i),e.line=r+1,(a=e.push("heading_open","h"+String(o),1)).markup="########".slice(0,o),a.map=[r,e.line],(a=e.push("inline","",0)).content=e.src.slice(c,l).trim(),a.map=[r,e.line],a.children=[],(a=e.push("heading_close","h"+String(o),-1)).markup="########".slice(0,o)),!0)},["paragraph","reference","blockquote"]],["lheading",function(e,r,t){var n,s,o,i,a,c,l,u,p,h,f=r+1,d=e.md.block.ruler.getRules("paragraph");if(e.sCount[r]-e.blkIndent>=4)return!1;for(h=e.parentType,e.parentType="paragraph";f<t&&!e.isEmpty(f);f++)if(!(e.sCount[f]-e.blkIndent>3)){if(e.sCount[f]>=e.blkIndent&&(c=e.bMarks[f]+e.tShift[f])<(l=e.eMarks[f])&&(45===(p=e.src.charCodeAt(c))||61===p)&&(c=e.skipChars(c,p),(c=e.skipSpaces(c))>=l)){u=61===p?1:2;break}if(!(e.sCount[f]<0)){for(s=!1,o=0,i=d.length;o<i;o++)if(d[o](e,f,t,!0)){s=!0;break}if(s)break}}return!!u&&(n=e.getLines(r,f,e.blkIndent,!1).trim(),e.line=f+1,(a=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),a.map=[r,e.line],(a=e.push("inline","",0)).content=n,a.map=[r,e.line-1],a.children=[],(a=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=h,!0)}],["paragraph",function(e,r){var t,n,s,o,i,a,c=r+1,l=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(a=e.parentType,e.parentType="paragraph";c<u&&!e.isEmpty(c);c++)if(!(e.sCount[c]-e.blkIndent>3||e.sCount[c]<0)){for(n=!1,s=0,o=l.length;s<o;s++)if(l[s](e,c,u,!0)){n=!0;break}if(n)break}return t=e.getLines(r,c,e.blkIndent,!1).trim(),e.line=c,(i=e.push("paragraph_open","p",1)).map=[r,e.line],(i=e.push("inline","",0)).content=t,i.map=[r,e.line],i.children=[],i=e.push("paragraph_close","p",-1),e.parentType=a,!0}]];function Le(){this.ruler=new O;for(var e=0;e<Fe.length;e++)this.ruler.push(Fe[e][0],Fe[e][1],{alt:(Fe[e][2]||[]).slice()})}Le.prototype.tokenize=function(e,r,t){for(var n,s=this.ruler.getRules(""),o=s.length,i=r,a=!1,c=e.md.options.maxNesting;i<t&&(e.line=i=e.skipEmptyLines(i),!(i>=t))&&!(e.sCount[i]<e.blkIndent);){if(e.level>=c){e.line=t;break}for(n=0;n<o&&!s[n](e,i,t,!1);n++);e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),(i=e.line)<t&&e.isEmpty(i)&&(a=!0,i++,e.line=i)}},Le.prototype.parse=function(e,r,t,n){var s;e&&(s=new this.State(e,r,t,n),this.tokenize(s,s.line,s.lineMax))},Le.prototype.State=Se;var ze=Le;function Te(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}for(var Ie=/(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i,Me=w.isSpace,Re=w.isSpace,Be=[],Ne=0;Ne<256;Ne++)Be.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){Be[e.charCodeAt(0)]=1}));function Oe(e,r){var t,n,s,o,i,a=[],c=r.length;for(t=0;t<c;t++)126===(s=r[t]).marker&&-1!==s.end&&(o=r[s.end],(i=e.tokens[s.token]).type="s_open",i.tag="s",i.nesting=1,i.markup="~~",i.content="",(i=e.tokens[o.token]).type="s_close",i.tag="s",i.nesting=-1,i.markup="~~",i.content="","text"===e.tokens[o.token-1].type&&"~"===e.tokens[o.token-1].content&&a.push(o.token-1));for(;a.length;){for(n=(t=a.pop())+1;n<e.tokens.length&&"s_close"===e.tokens[n].type;)n++;t!==--n&&(i=e.tokens[n],e.tokens[n]=e.tokens[t],e.tokens[t]=i)}}var Pe={tokenize:function(e,r){var t,n,s,o,i=e.pos,a=e.src.charCodeAt(i);if(r)return!1;if(126!==a)return!1;if(s=(n=e.scanDelims(e.pos,!0)).length,o=String.fromCharCode(a),s<2)return!1;for(s%2&&(e.push("text","",0).content=o,s--),t=0;t<s;t+=2)e.push("text","",0).content=o+o,e.delimiters.push({marker:a,length:0,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},postProcess:function(e){var r,t=e.tokens_meta,n=e.tokens_meta.length;for(Oe(e,e.delimiters),r=0;r<n;r++)t[r]&&t[r].delimiters&&Oe(e,t[r].delimiters)}};function je(e,r){var t,n,s,o,i,a;for(t=r.length-1;t>=0;t--)95!==(n=r[t]).marker&&42!==n.marker||-1!==n.end&&(s=r[n.end],a=t>0&&r[t-1].end===n.end+1&&r[t-1].marker===n.marker&&r[t-1].token===n.token-1&&r[n.end+1].token===s.token+1,i=String.fromCharCode(n.marker),(o=e.tokens[n.token]).type=a?"strong_open":"em_open",o.tag=a?"strong":"em",o.nesting=1,o.markup=a?i+i:i,o.content="",(o=e.tokens[s.token]).type=a?"strong_close":"em_close",o.tag=a?"strong":"em",o.nesting=-1,o.markup=a?i+i:i,o.content="",a&&(e.tokens[r[t-1].token].content="",e.tokens[r[n.end+1].token].content="",t--))}var Ue={tokenize:function(e,r){var t,n,s=e.pos,o=e.src.charCodeAt(s);if(r)return!1;if(95!==o&&42!==o)return!1;for(n=e.scanDelims(e.pos,42===o),t=0;t<n.length;t++)e.push("text","",0).content=String.fromCharCode(o),e.delimiters.push({marker:o,length:n.length,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},postProcess:function(e){var r,t=e.tokens_meta,n=e.tokens_meta.length;for(je(e,e.delimiters),r=0;r<n;r++)t[r]&&t[r].delimiters&&je(e,t[r].delimiters)}},Ve=w.normalizeReference,Ze=w.isSpace,$e=w.normalizeReference,Ge=w.isSpace,He=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,Je=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/,We=Ae.HTML_TAG_RE;var Ye=w.has,Ke=w.isValidEntityCode,Qe=w.fromCodePoint,Xe=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,er=/^&([a-z][a-z0-9]{1,31});/i;function rr(e,r){var t,n,s,o,i,a,c,l,u={},p=r.length;if(p){var h=0,f=-2,d=[];for(t=0;t<p;t++)if(s=r[t],d.push(0),r[h].marker===s.marker&&f===s.token-1||(h=t),f=s.token,s.length=s.length||0,s.close){for(u.hasOwnProperty(s.marker)||(u[s.marker]=[-1,-1,-1,-1,-1,-1]),i=u[s.marker][(s.open?3:0)+s.length%3],a=n=h-d[h]-1;n>i;n-=d[n]+1)if((o=r[n]).marker===s.marker&&o.open&&o.end<0&&(c=!1,(o.close||s.open)&&(o.length+s.length)%3==0&&(o.length%3==0&&s.length%3==0||(c=!0)),!c)){l=n>0&&!r[n-1].open?d[n-1]+1:0,d[t]=t-n+l,d[n]=l,s.open=!1,o.end=t,o.close=!1,a=-1,f=-2;break}-1!==a&&(u[s.marker][(s.open?3:0)+(s.length||0)%3]=a)}}}var tr=w.isWhiteSpace,nr=w.isPunctChar,sr=w.isMdAsciiPunct;function or(e,r,t,n){this.src=e,this.env=t,this.md=r,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0}or.prototype.pushPending=function(){var e=new oe("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},or.prototype.push=function(e,r,t){this.pending&&this.pushPending();var n=new oe(e,r,t),s=null;return t<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),n.level=this.level,t>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],s={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(s),n},or.prototype.scanDelims=function(e,r){var t,n,s,o,i,a,c,l,u,p=e,h=!0,f=!0,d=this.posMax,m=this.src.charCodeAt(e);for(t=e>0?this.src.charCodeAt(e-1):32;p<d&&this.src.charCodeAt(p)===m;)p++;return s=p-e,n=p<d?this.src.charCodeAt(p):32,c=sr(t)||nr(String.fromCharCode(t)),u=sr(n)||nr(String.fromCharCode(n)),a=tr(t),(l=tr(n))?h=!1:u&&(a||c||(h=!1)),a?f=!1:c&&(l||u||(f=!1)),r?(o=h,i=f):(o=h&&(!f||c),i=f&&(!h||u)),{can_open:o,can_close:i,length:s}},or.prototype.Token=oe;var ir=or,ar=[["text",function(e,r){for(var t=e.pos;t<e.posMax&&!Te(e.src.charCodeAt(t));)t++;return t!==e.pos&&(r||(e.pending+=e.src.slice(e.pos,t)),e.pos=t,!0)}],["linkify",function(e,r){var t,n,s,o,i,a,c;return!!e.md.options.linkify&&(!(e.linkLevel>0)&&(!((t=e.pos)+3>e.posMax)&&(58===e.src.charCodeAt(t)&&(47===e.src.charCodeAt(t+1)&&(47===e.src.charCodeAt(t+2)&&(!!(n=e.pending.match(Ie))&&(s=n[1],!!(o=e.md.linkify.matchAtStart(e.src.slice(t-s.length)))&&(i=(i=o.url).replace(/\*+$/,""),a=e.md.normalizeLink(i),!!e.md.validateLink(a)&&(r||(e.pending=e.pending.slice(0,-s.length),(c=e.push("link_open","a",1)).attrs=[["href",a]],c.markup="linkify",c.info="auto",(c=e.push("text","",0)).content=e.md.normalizeLinkText(i),(c=e.push("link_close","a",-1)).markup="linkify",c.info="auto"),e.pos+=i.length-s.length,!0)))))))))}],["newline",function(e,r){var t,n,s,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(t=e.pending.length-1,n=e.posMax,!r)if(t>=0&&32===e.pending.charCodeAt(t))if(t>=1&&32===e.pending.charCodeAt(t-1)){for(s=t-1;s>=1&&32===e.pending.charCodeAt(s-1);)s--;e.pending=e.pending.slice(0,s),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(o++;o<n&&Me(e.src.charCodeAt(o));)o++;return e.pos=o,!0}],["escape",function(e,r){var t,n,s,o,i,a=e.pos,c=e.posMax;if(92!==e.src.charCodeAt(a))return!1;if(++a>=c)return!1;if(10===(t=e.src.charCodeAt(a))){for(r||e.push("hardbreak","br",0),a++;a<c&&(t=e.src.charCodeAt(a),Re(t));)a++;return e.pos=a,!0}return o=e.src[a],t>=55296&&t<=56319&&a+1<c&&(n=e.src.charCodeAt(a+1))>=56320&&n<=57343&&(o+=e.src[a+1],a++),s="\\"+o,r||(i=e.push("text_special","",0),t<256&&0!==Be[t]?i.content=o:i.content=s,i.markup=s,i.info="escape"),e.pos=a+1,!0}],["backticks",function(e,r){var t,n,s,o,i,a,c,l,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(t=u,u++,n=e.posMax;u<n&&96===e.src.charCodeAt(u);)u++;if(c=(s=e.src.slice(t,u)).length,e.backticksScanned&&(e.backticks[c]||0)<=t)return r||(e.pending+=s),e.pos+=c,!0;for(i=a=u;-1!==(i=e.src.indexOf("`",a));){for(a=i+1;a<n&&96===e.src.charCodeAt(a);)a++;if((l=a-i)===c)return r||((o=e.push("code_inline","code",0)).markup=s,o.content=e.src.slice(u,i).replace(/\n/g," ").replace(/^ (.+) $/,"$1")),e.pos=a,!0;e.backticks[l]=i}return e.backticksScanned=!0,r||(e.pending+=s),e.pos+=c,!0}],["strikethrough",Pe.tokenize],["emphasis",Ue.tokenize],["link",function(e,r){var t,n,s,o,i,a,c,l,u="",p="",h=e.pos,f=e.posMax,d=e.pos,m=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(i=e.pos+1,(o=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((a=o+1)<f&&40===e.src.charCodeAt(a)){for(m=!1,a++;a<f&&(n=e.src.charCodeAt(a),Ze(n)||10===n);a++);if(a>=f)return!1;if(d=a,(c=e.md.helpers.parseLinkDestination(e.src,a,e.posMax)).ok){for(u=e.md.normalizeLink(c.str),e.md.validateLink(u)?a=c.pos:u="",d=a;a<f&&(n=e.src.charCodeAt(a),Ze(n)||10===n);a++);if(c=e.md.helpers.parseLinkTitle(e.src,a,e.posMax),a<f&&d!==a&&c.ok)for(p=c.str,a=c.pos;a<f&&(n=e.src.charCodeAt(a),Ze(n)||10===n);a++);}(a>=f||41!==e.src.charCodeAt(a))&&(m=!0),a++}if(m){if(void 0===e.env.references)return!1;if(a<f&&91===e.src.charCodeAt(a)?(d=a+1,(a=e.md.helpers.parseLinkLabel(e,a))>=0?s=e.src.slice(d,a++):a=o+1):a=o+1,s||(s=e.src.slice(i,o)),!(l=e.env.references[Ve(s)]))return e.pos=h,!1;u=l.href,p=l.title}return r||(e.pos=i,e.posMax=o,e.push("link_open","a",1).attrs=t=[["href",u]],p&&t.push(["title",p]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)),e.pos=a,e.posMax=f,!0}],["image",function(e,r){var t,n,s,o,i,a,c,l,u,p,h,f,d,m="",g=e.pos,_=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(a=e.pos+2,(i=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((c=i+1)<_&&40===e.src.charCodeAt(c)){for(c++;c<_&&(n=e.src.charCodeAt(c),Ge(n)||10===n);c++);if(c>=_)return!1;for(d=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok&&(m=e.md.normalizeLink(u.str),e.md.validateLink(m)?c=u.pos:m=""),d=c;c<_&&(n=e.src.charCodeAt(c),Ge(n)||10===n);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c<_&&d!==c&&u.ok)for(p=u.str,c=u.pos;c<_&&(n=e.src.charCodeAt(c),Ge(n)||10===n);c++);else p="";if(c>=_||41!==e.src.charCodeAt(c))return e.pos=g,!1;c++}else{if(void 0===e.env.references)return!1;if(c<_&&91===e.src.charCodeAt(c)?(d=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?o=e.src.slice(d,c++):c=i+1):c=i+1,o||(o=e.src.slice(a,i)),!(l=e.env.references[$e(o)]))return e.pos=g,!1;m=l.href,p=l.title}return r||(s=e.src.slice(a,i),e.md.inline.parse(s,e.md,e.env,f=[]),(h=e.push("image","img",0)).attrs=t=[["src",m],["alt",""]],h.children=f,h.content=s,p&&t.push(["title",p])),e.pos=c,e.posMax=_,!0}],["autolink",function(e,r){var t,n,s,o,i,a,c=e.pos;if(60!==e.src.charCodeAt(c))return!1;for(i=e.pos,a=e.posMax;;){if(++c>=a)return!1;if(60===(o=e.src.charCodeAt(c)))return!1;if(62===o)break}return t=e.src.slice(i+1,c),Je.test(t)?(n=e.md.normalizeLink(t),!!e.md.validateLink(n)&&(r||((s=e.push("link_open","a",1)).attrs=[["href",n]],s.markup="autolink",s.info="auto",(s=e.push("text","",0)).content=e.md.normalizeLinkText(t),(s=e.push("link_close","a",-1)).markup="autolink",s.info="auto"),e.pos+=t.length+2,!0)):!!He.test(t)&&(n=e.md.normalizeLink("mailto:"+t),!!e.md.validateLink(n)&&(r||((s=e.push("link_open","a",1)).attrs=[["href",n]],s.markup="autolink",s.info="auto",(s=e.push("text","",0)).content=e.md.normalizeLinkText(t),(s=e.push("link_close","a",-1)).markup="autolink",s.info="auto"),e.pos+=t.length+2,!0))}],["html_inline",function(e,r){var t,n,s,o,i,a=e.pos;return!!e.md.options.html&&(s=e.posMax,!(60!==e.src.charCodeAt(a)||a+2>=s)&&(!(33!==(t=e.src.charCodeAt(a+1))&&63!==t&&47!==t&&!function(e){var r=32|e;return r>=97&&r<=122}(t))&&(!!(n=e.src.slice(a).match(We))&&(r||((o=e.push("html_inline","",0)).content=e.src.slice(a,a+n[0].length),i=o.content,/^<a[>\s]/i.test(i)&&e.linkLevel++,function(e){return/^<\/a\s*>/i.test(e)}(o.content)&&e.linkLevel--),e.pos+=n[0].length,!0))))}],["entity",function(e,t){var n,s,o,i=e.pos,a=e.posMax;if(38!==e.src.charCodeAt(i))return!1;if(i+1>=a)return!1;if(35===e.src.charCodeAt(i+1)){if(s=e.src.slice(i).match(Xe))return t||(n="x"===s[1][0].toLowerCase()?parseInt(s[1].slice(1),16):parseInt(s[1],10),(o=e.push("text_special","",0)).content=Ke(n)?Qe(n):Qe(65533),o.markup=s[0],o.info="entity"),e.pos+=s[0].length,!0}else if((s=e.src.slice(i).match(er))&&Ye(r,s[1]))return t||((o=e.push("text_special","",0)).content=r[s[1]],o.markup=s[0],o.info="entity"),e.pos+=s[0].length,!0;return!1}]],cr=[["balance_pairs",function(e){var r,t=e.tokens_meta,n=e.tokens_meta.length;for(rr(0,e.delimiters),r=0;r<n;r++)t[r]&&t[r].delimiters&&rr(0,t[r].delimiters)}],["strikethrough",Pe.postProcess],["emphasis",Ue.postProcess],["fragments_join",function(e){var r,t,n=0,s=e.tokens,o=e.tokens.length;for(r=t=0;r<o;r++)s[r].nesting<0&&n--,s[r].level=n,s[r].nesting>0&&n++,"text"===s[r].type&&r+1<o&&"text"===s[r+1].type?s[r+1].content=s[r].content+s[r+1].content:(r!==t&&(s[t]=s[r]),t++);r!==t&&(s.length=t)}]];function lr(){var e;for(this.ruler=new O,e=0;e<ar.length;e++)this.ruler.push(ar[e][0],ar[e][1]);for(this.ruler2=new O,e=0;e<cr.length;e++)this.ruler2.push(cr[e][0],cr[e][1])}lr.prototype.skipToken=function(e){var r,t,n=e.pos,s=this.ruler.getRules(""),o=s.length,i=e.md.options.maxNesting,a=e.cache;if(void 0===a[n]){if(e.level<i)for(t=0;t<o&&(e.level++,r=s[t](e,!0),e.level--,!r);t++);else e.pos=e.posMax;r||e.pos++,a[n]=e.pos}else e.pos=a[n]},lr.prototype.tokenize=function(e){for(var r,t,n=this.ruler.getRules(""),s=n.length,o=e.posMax,i=e.md.options.maxNesting;e.pos<o;){if(e.level<i)for(t=0;t<s&&!(r=n[t](e,!1));t++);if(r){if(e.pos>=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},lr.prototype.parse=function(e,r,t,n){var s,o,i,a=new this.State(e,r,t,n);for(this.tokenize(a),i=(o=this.ruler2.getRules("")).length,s=0;s<i;s++)o[s](a)},lr.prototype.State=ir;var ur=lr;function pr(e){var r=Array.prototype.slice.call(arguments,1);return r.forEach((function(r){r&&Object.keys(r).forEach((function(t){e[t]=r[t]}))})),e}function hr(e){return Object.prototype.toString.call(e)}function fr(e){return"[object Function]"===hr(e)}function dr(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var mr={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var gr={"http:":{validate:function(e,r,t){var n=e.slice(r);return t.re.http||(t.re.http=new RegExp("^\\/\\/"+t.re.src_auth+t.re.src_host_port_strict+t.re.src_path,"i")),t.re.http.test(n)?n.match(t.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,r,t){var n=e.slice(r);return t.re.no_http||(t.re.no_http=new RegExp("^"+t.re.src_auth+"(?:localhost|(?:(?:"+t.re.src_domain+")\\.)+"+t.re.src_domain_root+")"+t.re.src_port+t.re.src_host_terminator+t.re.src_path,"i")),t.re.no_http.test(n)?r>=3&&":"===e[r-3]||r>=3&&"/"===e[r-3]?0:n.match(t.re.no_http)[0].length:0}},"mailto:":{validate:function(e,r,t){var n=e.slice(r);return t.re.mailto||(t.re.mailto=new RegExp("^"+t.re.src_email_name+"@"+t.re.src_host_strict,"i")),t.re.mailto.test(n)?n.match(t.re.mailto)[0].length:0}}},_r="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function kr(e){var r=e.re=function(e){var r={};return e=e||{},r.src_Any=y.source,r.src_Cc=A.source,r.src_Z=x.source,r.src_P=t.source,r.src_ZPCc=[r.src_Z,r.src_P,r.src_Cc].join("|"),r.src_ZCc=[r.src_Z,r.src_Cc].join("|"),r.src_pseudo_letter="(?:(?![><\uff5c]|"+r.src_ZPCc+")"+r.src_Any+")",r.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",r.src_auth="(?:(?:(?!"+r.src_ZCc+"|[@/\\[\\]()]).)+@)?",r.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",r.src_host_terminator="(?=$|[><\uff5c]|"+r.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+r.src_ZPCc+"))",r.src_path="(?:[/?#](?:(?!"+r.src_ZCc+"|[><\uff5c]|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+r.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+r.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+r.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+r.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+r.src_ZCc+"|[']).)+\\'|\\'(?="+r.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+r.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+r.src_ZCc+"|$)|;(?!"+r.src_ZCc+"|$)|\\!+(?!"+r.src_ZCc+"|[!]|$)|\\?(?!"+r.src_ZCc+"|[?]|$))+|\\/)?",r.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',r.src_xn="xn--[a-z0-9\\-]{1,59}",r.src_domain_root="(?:"+r.src_xn+"|"+r.src_pseudo_letter+"{1,63})",r.src_domain="(?:"+r.src_xn+"|(?:"+r.src_pseudo_letter+")|(?:"+r.src_pseudo_letter+"(?:-|"+r.src_pseudo_letter+"){0,61}"+r.src_pseudo_letter+"))",r.src_host="(?:(?:(?:(?:"+r.src_domain+")\\.)*"+r.src_domain+"))",r.tpl_host_fuzzy="(?:"+r.src_ip4+"|(?:(?:(?:"+r.src_domain+")\\.)+(?:%TLDS%)))",r.tpl_host_no_ip_fuzzy="(?:(?:(?:"+r.src_domain+")\\.)+(?:%TLDS%))",r.src_host_strict=r.src_host+r.src_host_terminator,r.tpl_host_fuzzy_strict=r.tpl_host_fuzzy+r.src_host_terminator,r.src_host_port_strict=r.src_host+r.src_port+r.src_host_terminator,r.tpl_host_port_fuzzy_strict=r.tpl_host_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_port_no_ip_fuzzy_strict=r.tpl_host_no_ip_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+r.src_ZPCc+"|>|$))",r.tpl_email_fuzzy='(^|[><\uff5c]|"|\\(|'+r.src_ZCc+")("+r.src_email_name+"@"+r.tpl_host_fuzzy_strict+")",r.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+r.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+r.tpl_host_port_fuzzy_strict+r.src_path+")",r.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+r.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+r.tpl_host_port_no_ip_fuzzy_strict+r.src_path+")",r}(e.__opts__),n=e.__tlds__.slice();function s(e){return e.replace("%TLDS%",r.src_tlds)}e.onCompile(),e.__tlds_replaced__||n.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),n.push(r.src_xn),r.src_tlds=n.join("|"),r.email_fuzzy=RegExp(s(r.tpl_email_fuzzy),"i"),r.link_fuzzy=RegExp(s(r.tpl_link_fuzzy),"i"),r.link_no_ip_fuzzy=RegExp(s(r.tpl_link_no_ip_fuzzy),"i"),r.host_fuzzy_test=RegExp(s(r.tpl_host_fuzzy_test),"i");var o=[];function i(e,r){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+r)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(r){var t=e.__schemas__[r];if(null!==t){var n={validate:null,link:null};if(e.__compiled__[r]=n,"[object Object]"===hr(t))return!function(e){return"[object RegExp]"===hr(e)}(t.validate)?fr(t.validate)?n.validate=t.validate:i(r,t):n.validate=function(e){return function(r,t){var n=r.slice(t);return e.test(n)?n.match(e)[0].length:0}}(t.validate),void(fr(t.normalize)?n.normalize=t.normalize:t.normalize?i(r,t):n.normalize=function(e,r){r.normalize(e)});!function(e){return"[object String]"===hr(e)}(t)?i(r,t):o.push(r)}})),o.forEach((function(r){e.__compiled__[e.__schemas__[r]]&&(e.__compiled__[r].validate=e.__compiled__[e.__schemas__[r]].validate,e.__compiled__[r].normalize=e.__compiled__[e.__schemas__[r]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,r){r.normalize(e)}};var a=Object.keys(e.__compiled__).filter((function(r){return r.length>0&&e.__compiled__[r]})).map(dr).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><\uff5c]|"+r.src_ZPCc+"))("+a+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><\uff5c]|"+r.src_ZPCc+"))("+a+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function br(e,r){var t=e.__index__,n=e.__last_index__,s=e.__text_cache__.slice(t,n);this.schema=e.__schema__.toLowerCase(),this.index=t+r,this.lastIndex=n+r,this.raw=s,this.text=s,this.url=s}function vr(e,r){var t=new br(e,r);return e.__compiled__[t.schema].normalize(t,e),t}function Cr(e,r){if(!(this instanceof Cr))return new Cr(e,r);var t;r||(t=e,Object.keys(t||{}).reduce((function(e,r){return e||mr.hasOwnProperty(r)}),!1)&&(r=e,e={})),this.__opts__=pr({},mr,r),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=pr({},gr,e),this.__compiled__={},this.__tlds__=_r,this.__tlds_replaced__=!1,this.re={},kr(this)}Cr.prototype.add=function(e,r){return this.__schemas__[e]=r,kr(this),this},Cr.prototype.set=function(e){return this.__opts__=pr(this.__opts__,e),this},Cr.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var r,t,n,s,o,i,a,c;if(this.re.schema_test.test(e))for((a=this.re.schema_search).lastIndex=0;null!==(r=a.exec(e));)if(s=this.testSchemaAt(e,r[2],a.lastIndex)){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+s;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(c=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||c<this.__index__)&&null!==(t=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(o=t.index+t[1].length,(this.__index__<0||o<this.__index__)&&(this.__schema__="",this.__index__=o,this.__last_index__=t.index+t[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(n=e.match(this.re.email_fuzzy))&&(o=n.index+n[1].length,i=n.index+n[0].length,(this.__index__<0||o<this.__index__||o===this.__index__&&i>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=i)),this.__index__>=0},Cr.prototype.pretest=function(e){return this.re.pretest.test(e)},Cr.prototype.testSchemaAt=function(e,r,t){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(e,t,this):0},Cr.prototype.match=function(e){var r=0,t=[];this.__index__>=0&&this.__text_cache__===e&&(t.push(vr(this,r)),r=this.__last_index__);for(var n=r?e.slice(r):e;this.test(n);)t.push(vr(this,r)),n=n.slice(this.__last_index__),r+=this.__last_index__;return t.length?t:null},Cr.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;var r=this.re.schema_at_start.exec(e);if(!r)return null;var t=this.testSchemaAt(e,r[2],r[0].length);return t?(this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+t,vr(this,0)):null},Cr.prototype.tlds=function(e,r){return e=Array.isArray(e)?e:[e],r?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,r,t){return e!==t[r-1]})).reverse(),kr(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,kr(this),this)},Cr.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},Cr.prototype.onCompile=function(){};var yr=Cr,Ar=2147483647,xr=36,Dr=/^xn--/,wr=/[^\x20-\x7E]/,Er=/[\x2E\u3002\uFF0E\uFF61]/g,qr={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Sr=Math.floor,Fr=String.fromCharCode; +/*! https://mths.be/punycode v1.4.1 by @mathias */function Lr(e){throw new RangeError(qr[e])}function zr(e,r){for(var t=e.length,n=[];t--;)n[t]=r(e[t]);return n}function Tr(e,r){var t=e.split("@"),n="";return t.length>1&&(n=t[0]+"@",e=t[1]),n+zr((e=e.replace(Er,".")).split("."),r).join(".")}function Ir(e){for(var r,t,n=[],s=0,o=e.length;s<o;)(r=e.charCodeAt(s++))>=55296&&r<=56319&&s<o?56320==(64512&(t=e.charCodeAt(s++)))?n.push(((1023&r)<<10)+(1023&t)+65536):(n.push(r),s--):n.push(r);return n}function Mr(e){return zr(e,(function(e){var r="";return e>65535&&(r+=Fr((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=Fr(e)})).join("")}function Rr(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function Br(e,r,t){var n=0;for(e=t?Sr(e/700):e>>1,e+=Sr(e/r);e>455;n+=xr)e=Sr(e/35);return Sr(n+36*e/(e+38))}function Nr(e){var r,t,n,s,o,i,a,c,l,u,p,h=[],f=e.length,d=0,m=128,g=72;for((t=e.lastIndexOf("-"))<0&&(t=0),n=0;n<t;++n)e.charCodeAt(n)>=128&&Lr("not-basic"),h.push(e.charCodeAt(n));for(s=t>0?t+1:0;s<f;){for(o=d,i=1,a=xr;s>=f&&Lr("invalid-input"),((c=(p=e.charCodeAt(s++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:xr)>=xr||c>Sr((Ar-d)/i))&&Lr("overflow"),d+=c*i,!(c<(l=a<=g?1:a>=g+26?26:a-g));a+=xr)i>Sr(Ar/(u=xr-l))&&Lr("overflow"),i*=u;g=Br(d-o,r=h.length+1,0==o),Sr(d/r)>Ar-m&&Lr("overflow"),m+=Sr(d/r),d%=r,h.splice(d++,0,m)}return Mr(h)}function Or(e){var r,t,n,s,o,i,a,c,l,u,p,h,f,d,m,g=[];for(h=(e=Ir(e)).length,r=128,t=0,o=72,i=0;i<h;++i)(p=e[i])<128&&g.push(Fr(p));for(n=s=g.length,s&&g.push("-");n<h;){for(a=Ar,i=0;i<h;++i)(p=e[i])>=r&&p<a&&(a=p);for(a-r>Sr((Ar-t)/(f=n+1))&&Lr("overflow"),t+=(a-r)*f,r=a,i=0;i<h;++i)if((p=e[i])<r&&++t>Ar&&Lr("overflow"),p==r){for(c=t,l=xr;!(c<(u=l<=o?1:l>=o+26?26:l-o));l+=xr)m=c-u,d=xr-u,g.push(Fr(Rr(u+m%d,0))),c=Sr(m/d);g.push(Fr(Rr(c,0))),o=Br(t,f,n==s),t=0,++n}++t,++r}return g.join("")}function Pr(e){return Tr(e,(function(e){return Dr.test(e)?Nr(e.slice(4).toLowerCase()):e}))}function jr(e){return Tr(e,(function(e){return wr.test(e)?"xn--"+Or(e):e}))}var Ur="1.4.1",Vr={decode:Ir,encode:Mr},Zr={version:Ur,ucs2:Vr,toASCII:jr,toUnicode:Pr,encode:Or,decode:Nr},$r=e(Object.freeze({__proto__:null,decode:Nr,encode:Or,toUnicode:Pr,toASCII:jr,version:Ur,ucs2:Vr,default:Zr})),Gr={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","fragments_join"]}}}},Hr=/^(vbscript|javascript|file|data):/,Jr=/^data:image\/(gif|png|jpeg|webp);/;function Wr(e){var r=e.trim().toLowerCase();return!Hr.test(r)||!!Jr.test(r)}var Yr=["http:","https:","mailto:"];function Kr(e){var r=C.parse(e,!0);if(r.hostname&&(!r.protocol||Yr.indexOf(r.protocol)>=0))try{r.hostname=$r.toASCII(r.hostname)}catch(e){}return C.encode(C.format(r))}function Qr(e){var r=C.parse(e,!0);if(r.hostname&&(!r.protocol||Yr.indexOf(r.protocol)>=0))try{r.hostname=$r.toUnicode(r.hostname)}catch(e){}return C.decode(C.format(r),C.decode.defaultChars+"%")}function Xr(e,r){if(!(this instanceof Xr))return new Xr(e,r);r||w.isString(e)||(r=e||{},e="default"),this.inline=new ur,this.block=new ze,this.core=new ue,this.renderer=new B,this.linkify=new yr,this.validateLink=Wr,this.normalizeLink=Kr,this.normalizeLinkText=Qr,this.utils=w,this.helpers=w.assign({},L),this.options={},this.configure(e),r&&this.set(r)}return Xr.prototype.set=function(e){return w.assign(this.options,e),this},Xr.prototype.configure=function(e){var r,t=this;if(w.isString(e)&&!(e=Gr[r=e]))throw new Error('Wrong `markdown-it` preset "'+r+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(r){e.components[r].rules&&t[r].ruler.enableOnly(e.components[r].rules),e.components[r].rules2&&t[r].ruler2.enableOnly(e.components[r].rules2)})),this},Xr.prototype.enable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(r){t=t.concat(this[r].ruler.enable(e,!0))}),this),t=t.concat(this.inline.ruler2.enable(e,!0));var n=e.filter((function(e){return t.indexOf(e)<0}));if(n.length&&!r)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},Xr.prototype.disable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(r){t=t.concat(this[r].ruler.disable(e,!0))}),this),t=t.concat(this.inline.ruler2.disable(e,!0));var n=e.filter((function(e){return t.indexOf(e)<0}));if(n.length&&!r)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},Xr.prototype.use=function(e){var r=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,r),this},Xr.prototype.parse=function(e,r){if("string"!=typeof e)throw new Error("Input data should be a String");var t=new this.core.State(e,this,r);return this.core.process(t),t.tokens},Xr.prototype.render=function(e,r){return r=r||{},this.renderer.render(this.parse(e,r),this.options,r)},Xr.prototype.parseInline=function(e,r){var t=new this.core.State(e,this,r);return t.inlineMode=!0,this.core.process(t),t.tokens},Xr.prototype.renderInline=function(e,r){return r=r||{},this.renderer.render(this.parseInline(e,r),this.options,r)},Xr})); diff --git a/plugins/tiddlywiki/markdown/files/tiddlywiki.files b/plugins/tiddlywiki/markdown/files/tiddlywiki.files index c19eda986..d1d1fe0e8 100755 --- a/plugins/tiddlywiki/markdown/files/tiddlywiki.files +++ b/plugins/tiddlywiki/markdown/files/tiddlywiki.files @@ -1,35 +1,66 @@ { "tiddlers": [ { - "file": "remarkable.js", + "file": "markdown-it.min.js", "fields": { "type": "application/javascript", - "title": "$:/plugins/tiddlywiki/markdown/remarkable.js", + "title": "$:/plugins/tiddlywiki/markdown/markdown-it.js", "module-type": "library" } }, { - "file": "remarkable-license.txt", + "file": "markdown-it-deflist.min.js", "fields": { - "type": "text/plain", - "title": "$:/plugins/tiddlywiki/markdown/remarkable-license" + "type": "application/javascript", + "title": "$:/plugins/tiddlywiki/markdown/markdown-it-deflist.js", + "module-type": "library" } }, { - "file": "remarkable-katex.min.js", + "file": "markdown-it-footnote.min.js", "fields": { "type": "application/javascript", - "title": "$:/plugins/tiddlywiki/markdown/remarkable-katex.js", + "title": "$:/plugins/tiddlywiki/markdown/markdown-it-footnote.js", "module-type": "library" - }, - "prefix": "(function(realRequire) {var require = function(m) {if(m===\"katex\"){m = \"$:/plugins/tiddlywiki/katex/katex.min.js\"};return realRequire(m);};", - "suffix": "})(require);\n" + } }, { - "file": "remarkable-katex-license.txt", + "file": "markdown-it-ins.min.js", + "fields": { + "type": "application/javascript", + "title": "$:/plugins/tiddlywiki/markdown/markdown-it-ins.js", + "module-type": "library" + } + }, + { + "file": "markdown-it-mark.min.js", + "fields": { + "type": "application/javascript", + "title": "$:/plugins/tiddlywiki/markdown/markdown-it-mark.js", + "module-type": "library" + } + }, + { + "file": "markdown-it-sub.min.js", + "fields": { + "type": "application/javascript", + "title": "$:/plugins/tiddlywiki/markdown/markdown-it-sub.js", + "module-type": "library" + } + }, + { + "file": "markdown-it-sup.min.js", + "fields": { + "type": "application/javascript", + "title": "$:/plugins/tiddlywiki/markdown/markdown-it-sup.js", + "module-type": "library" + } + }, + { + "file": "LICENSE", "fields": { "type": "text/plain", - "title": "$:/plugins/tiddlywiki/markdown/remarkable-katex-license" + "title": "$:/plugins/tiddlywiki/markdown/license" } } ] diff --git a/plugins/tiddlywiki/markdown/markdown-it-katex.js b/plugins/tiddlywiki/markdown/markdown-it-katex.js new file mode 100644 index 000000000..4bbd5c655 --- /dev/null +++ b/plugins/tiddlywiki/markdown/markdown-it-katex.js @@ -0,0 +1,170 @@ +/*\ +title: $:/plugins/tiddlywiki/markdown/markdown-it-katex.js +type: application/javascript +module-type: library + +Based on markdown-it-katex v2.0.0 by @waylonflinn https://github.com/waylonflinn/markdown-it-katex | MIT License +\*/ +(function(){ +/* Process inline math */ +/* +Like markdown-it-simplemath, this is a stripped down, simplified version of: +https://github.com/runarberg/markdown-it-math + +It differs in that it takes (a subset of) LaTeX as input and relies on KaTeX +for rendering output. +*/ + +/*jslint node: true */ +'use strict'; + +// Test if potential opening or closing delimieter +// Assumes that there is a "$" at state.src[pos] +function isValidDelim(state, pos) { + var prevChar, nextChar, + max = state.posMax, + can_open = true, + can_close = true; + + prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1; + nextChar = pos + 1 <= max ? state.src.charCodeAt(pos + 1) : -1; + + // Check non-whitespace conditions for opening and closing, and + // check that closing delimeter isn't followed by a number + if (prevChar === 0x20/* " " */ || prevChar === 0x09/* \t */ || + prevChar === 0x0d/* "\r" */ || prevChar === 0x0a/* \n */ || + (nextChar >= 0x30/* "0" */ && nextChar <= 0x39/* "9" */)) { + can_close = false; + } + if (nextChar === 0x20/* " " */ || nextChar === 0x09/* \t */ || + nextChar === 0x0d/* "\r" */ || nextChar === 0x0a/* \ns */) { + can_open = false; + } + + if (state.src.substring(pos,pos+3) === "$:/") { + can_open = false; + can_close = false; + } + + return { + can_open: can_open, + can_close: can_close + }; +} + +function math_inline(state, silent) { + var start, match, token, res, pos, esc_count; + + if (state.src[state.pos] !== "$") { return false; } + + res = isValidDelim(state, state.pos); + if (!res.can_open) { + if (!silent) { state.pending += "$"; } + state.pos += 1; + return true; + } + + // First check for and bypass all properly escaped delimieters + // This loop will assume that the first leading backtick can not + // be the first character in state.src, which is known since + // we have found an opening delimieter already. + start = state.pos + 1; + match = start; + while ( (match = state.src.indexOf("$", match)) !== -1) { + // Found potential $, look for escapes, pos will point to + // first non escape when complete + pos = match - 1; + while (state.src[pos] === "\\") { pos -= 1; } + + // Even number of escapes, potential closing delimiter found + if ( ((match - pos) % 2) == 1 ) { break; } + match += 1; + } + + // No closing delimter found. Consume $ and continue. + if (match === -1) { + if (!silent) { state.pending += "$"; } + state.pos = start; + return true; + } + + // Check if we have empty content, ie: $$. Do not parse. + if (match - start === 0) { + if (!silent) { state.pending += "$$"; } + state.pos = start + 1; + return true; + } + + // Check for valid closing delimiter + res = isValidDelim(state, match); + if (!res.can_close) { + if (!silent) { state.pending += "$"; } + state.pos = start; + return true; + } + + if (!silent) { + token = state.push('math_inline', '$latex', 0); + token.markup = "$"; + token.content = state.src.slice(start, match); + token.attrs = [["displayMode", "false"], ["text", token.content]]; + } + + state.pos = match + 1; + return true; +} + +/*! https://github.com/iktakahiro/markdown-it-katex/pull/2 by @shinhermit */ +function math_inline_block(state, silent) { + var start, match, token, res, pos, esc_count; + + if(state.src.slice(state.pos, state.pos+2) !== "$$") { return false; } + + // First check for and bypass all properly escaped delimieters + // This loop will assume that the first leading backtick can not + // be the first character in state.src, which is known since + // we have found an opening delimieter already. + start = state.pos + 2; + match = start; + while ( (match = state.src.indexOf("$$", match)) !== -1) { + // Found potential $$, look for escapes, pos will point to + // first non escape when complete + pos = match - 1; + while (state.src[pos] === "\\") { pos -= 1; } + + // Even number of escapes, potential closing delimiter found + if ( ((match - pos) % 2) == 1 ) { break; } + match += 2; + } + + // No closing delimter found. Consume $$ and continue. + if (match === -1) { + if (!silent) { state.pending += "$$"; } + state.pos = start; + return true; + } + + // Check if we have empty content, ie: $$$$. Do not parse. + if (match - start === 0) { + if (!silent) { state.pending += "$$$$"; } + state.pos = start + 2; + return true; + } + + if (!silent) { + token = state.push('math_inline_block', '$latex', 0); + token.block = true; + token.markup = "$$"; + token.content = state.src.slice(start, match); + token.attrs = [["displayMode", "true"], ["text", token.content]]; + } + + state.pos = match + 2; + return true; +} + +module.exports = function math_plugin(md, options) { + md.inline.ruler.after('escape', 'math_inline', math_inline); + md.inline.ruler.after('escape', 'math_inline_block', math_inline_block); +}; +})(); \ No newline at end of file diff --git a/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js b/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js new file mode 100644 index 000000000..03518d850 --- /dev/null +++ b/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js @@ -0,0 +1,522 @@ +/*\ +title: $:/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js +type: application/javascript +module-type: library + +Wraps up the markdown-it parser for use as a Parser in TiddlyWiki + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var md; +var pluginOpts; + +var TWMarkReplacements = { + "{" : "{", + "[" : "[", + "$" : "$" +}; + +var TWMarkRegEx = /[{[$]/g; +function encodeTWMark(match) { + return TWMarkReplacements[match]; +} + +// escpae {, [ and $ in string s +function escapeTWMarks(s) { + s = String(s); + TWMarkRegEx.lastIndex = 0; + return s.replace(TWMarkRegEx,encodeTWMark); +} + +// escape anything that could be interpreted as transclusion or syslink +function render_code_inline(tokens,idx,options,env,slf) { + tokens[idx].attrJoin('class','_codified_'); + return '<code' + slf.renderAttrs(tokens[idx]) + '>' + + escapeTWMarks(md.utils.escapeHtml(tokens[idx].content)) + + '</code>'; +} + +function render_code_block(tokens,idx) { + return '<$codeblock code=e"' + md.utils.escapeHtml(tokens[idx].content) + '" language=""/>\n'; +} + +function render_fence(tokens,idx) { + var info = tokens[idx].info ? md.utils.unescapeAll(tokens[idx].info).trim() : ''; + return '<$codeblock code=e"' + md.utils.escapeHtml(tokens[idx].content) + '" language="' + info.split(/(\s+)/g)[0] + '"/>\n'; +} + +// add a blank line after opening tag to activate TW block parsing +function render_paragraph_open(tokens,idx) { + return tokens[idx].hidden ? '' : '<p>\n\n'; +} + +function render_paragraph_close(tokens,idx) { + return tokens[idx].hidden ? '' : '\n</p>\n'; +} + +// Replace footnote links with "qualified" internal links +function render_footnote_ref(tokens,idx,options,env,slf) { + var id = slf.rules.footnote_anchor_name(tokens,idx,options,env,slf); + var caption = slf.rules.footnote_caption(tokens,idx,options,env,slf); + var refid = id; + + if(tokens[idx].meta.subId > 0) { + refid += ':' + tokens[idx].meta.subId; + } + return '<a class="footnote-ref" href=<<qualify "##fn' + id + '">> id=<<qualify "#fnref' + refid + '">>>' + caption + '</a>'; +} + +function render_footnote_open(tokens,idx,options,env,slf) { + var id = slf.rules.footnote_anchor_name(tokens,idx,options,env,slf); + + if(tokens[idx].meta.subId > 0) { + id += ':' + tokens[idx].meta.subId; + } + return '<li id=<<qualify "#fn' + id + '">> class="footnote-item">'; +} + +function render_footnote_anchor(tokens,idx,options,env,slf) { + var id = slf.rules.footnote_anchor_name(tokens,idx,options,env,slf); + + if(tokens[idx].meta.subId > 0) { + id += ':' + tokens[idx].meta.subId; + } + + // append variation selector to prevent display as Apple Emoji on iOS + return '<a href=<<qualify "##fnref' + id + '">> class="footnote-backref">\u21A5\uFE0E</a>'; +} + +// do not un-escape html entities and escape characters +function render_text_special(tokens,idx) { + if(tokens[idx].info === 'entity') { + return tokens[idx].markup; + } + return escapeTWMarks(md.utils.escapeHtml(tokens[idx].content)); +} + +function render_tw_expr(tokens,idx) { + return tokens[idx].content; +} + +// Overwrite default: render attribute strings in e"..." format instead, +// so HTML entities can be decoded. See parseStringLiteralExt() below. +function render_token_attrs(token) { + var i, l, result; + + if(!token.attrs) { return ''; } + + result = ''; + + for(i=0, l=token.attrs.length; i<l; i++) { + result += ' ' + md.utils.escapeHtml(token.attrs[i][0]) + '=e"' + md.utils.escapeHtml(token.attrs[i][1]) + '"'; + } + + return result; +} + +// given tw parsing rule and starting pos, returns match index or undefined +// assumes pos >= 0 +function findNextMatch(ruleinfo,pos) { + // ruleinfo.matchIndex needs to be -1 at the start of inline state + if(ruleinfo.matchIndex < pos) { + ruleinfo.matchIndex = ruleinfo.rule.findNextMatch(pos); + } + + return ruleinfo.matchIndex; +} + +// Add inline rule "macrocall" to parse <<macroname ...>> +var MacroCallRegEx = /<<([^\s>"'=]+)[^>]*>>/g; +function tw_macrocallinline(state,silent) { + var match, max, pos = state.pos; + + // Check start + max = state.posMax; + if(state.src.charCodeAt(pos) !== 0x3C || state.src.charCodeAt(pos+1) !== 0x3C /* << */|| pos + 3 >= max) { + return false; + } + + MacroCallRegEx.lastIndex = pos; + match = MacroCallRegEx.exec(state.src); + if(!match || match.index !== pos) { return false; } + + if(!silent) { + var token = state.push('tw_expr','',0); + token.content = state.src.slice(pos,pos+match[0].length); + } + state.pos = MacroCallRegEx.lastIndex; + return true; +} + +// parse transclusion elements +function tw_transcludeinline(state,silent) { + var ruleinfo = pluginOpts.inlineRules.transcludeinline; + + var pos = state.pos; + var matchIndex = findNextMatch(ruleinfo,pos); + if(matchIndex === undefined || matchIndex !== pos) { + return false; + } + + if(!silent) { + var token = state.push('tw_expr','',0); + token.content = state.src.slice(pos,pos+ruleinfo.rule.match[0].length); + } + state.pos += ruleinfo.rule.match[0].length; + return true; +} + +// parse filtered transclusion elements +function tw_filteredtranscludeinline(state,silent) { + var ruleinfo = pluginOpts.inlineRules.filteredtranscludeinline; + + var pos = state.pos; + var matchIndex = findNextMatch(ruleinfo,pos); + if(matchIndex === undefined || matchIndex !== pos) { + return false; + } + + if(!silent) { + var token = state.push('tw_expr','',0); + if(state.linkLevel > 0) { + var filter = ruleinfo.rule.match[1]; + token.content = '<$text text={{{' + filter + '}}}/>'; + } else { + token.content = state.src.slice(pos,pos+ruleinfo.rule.match[0].length); + } + } + state.pos += ruleinfo.rule.match[0].length; + return true; +} + +// based on markdown-it html_block() +var WidgetTagRegEx = [/^<\/?\$[a-zA-Z0-9\-\$]+(?=(\s|\/?>|$))/, /^$/]; +function tw_block(state,startLine,endLine,silent) { + var i, nextLine, token, lineText, + pos = state.bMarks[startLine] + state.tShift[startLine], + max = state.eMarks[startLine]; + + // if it's indented more than 3 spaces, it should be a code block + if(state.sCount[startLine] - state.blkIndent >= 4) { return false; } + + if(!state.md.options.html) { return false; } + + if(state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; } + + lineText = state.src.slice(pos,max); + + if(!WidgetTagRegEx[0].test(lineText)) { return false; } + + if(silent) { + // don't let widgets interrupt a paragrpah + return false; + } + + nextLine = startLine + 1; + + // If we are here - we detected HTML block. + // Let's roll down till block end. + if(!WidgetTagRegEx[1].test(lineText)) { + for(; nextLine < endLine; nextLine++) { + if(state.sCount[nextLine] < state.blkIndent) { break; } + + pos = state.bMarks[nextLine] + state.tShift[nextLine]; + max = state.eMarks[nextLine]; + lineText = state.src.slice(pos,max); + + if(WidgetTagRegEx[1].test(lineText)) { + if(lineText.length !== 0) { nextLine++; } + break; + } + } + } + + state.line = nextLine; + + token = state.push('html_block','',0); + token.map = [ startLine, nextLine ]; + token.content = state.getLines(startLine,nextLine,state.blkIndent,true); + + return true; +} + +// parse [img[...]] elements +function tw_image(state,silent) { + var ruleinfo = pluginOpts.inlineRules.image; + + // ignore at parseLinkLabel stage; will be recognized in tokenize() + if(state.parsingLinkLabel > 0) { + return false; + } + + var pos = state.pos; + var matchIndex = findNextMatch(ruleinfo,pos); + if(matchIndex === undefined || matchIndex !== pos) { + return false; + } + + if(!silent) { + var twNode = ruleinfo.rule.parse()[0]; + var token = state.push('$image','$image',0); + $tw.utils.each(twNode.attributes,function(attr,id) { + token.attrSet(id,attr.value); + }); + token.markup = 'tw_image'; + } + state.pos = ruleinfo.rule.parser.pos; + return true; +} + +// parse [[link]] elements +function tw_prettylink(state,silent) { + var ruleinfo = pluginOpts.inlineRules.prettylink; + + // skip if in link label + if(state.linkLevel > 0 || state.parsingLinkLabel > 0) { + return false; + } + + var pos = state.pos; + var matchIndex = findNextMatch(ruleinfo,pos); + if(matchIndex === undefined || matchIndex !== pos) { + return false; + } + + if(!silent) { + var twNode = ruleinfo.rule.parse()[0]; + var tag = (twNode.type==='link' ? '$link' : 'a'); + // push a link_open token so markdown's core.linkify will ignore + var token = state.push('link_open',tag,1); + + $tw.utils.each(twNode.attributes,function(attr,id) { + token.attrSet(id,attr.value); + }); + token.attrJoin('class','_codified_'); + token.markup = 'tw_prettylink'; + + state.linkLevel++; + token = state.push('text','',0); + token.content = twNode.children[0].text; + state.linkLevel--; + + token = state.push('link_close',tag,-1); + token.markup = 'tw_prettylink'; + } + state.pos = ruleinfo.rule.parser.pos; + return true; +} + +function tw_prettyextlink(state,silent) { + var ruleinfo = pluginOpts.inlineRules.prettyextlink; + + // skip if in link label + if(state.linkLevel > 0 || state.parsingLinkLabel > 0) { + return false; + } + + var pos = state.pos; + var matchIndex = findNextMatch(ruleinfo,pos); + if(matchIndex === undefined || matchIndex !== pos) { + return false; + } + + if(!silent) { + var twNode = ruleinfo.rule.parse()[0]; + var token = state.push('link_open','a',1); + + $tw.utils.each(twNode.attributes,function(attr,id) { + token.attrSet(id,attr.value); + }); + token.attrJoin('class','_codified_'); + token.markup = 'tw_prettyextlink'; + + state.linkLevel++; + token = state.push('text','',0); + token.content = twNode.children[0].text; + state.linkLevel--; + + token = state.push('link_close','a',-1); + token.markup = 'tw_prettyextlink'; + } + state.pos = ruleinfo.rule.parser.pos; + return true; +} + +var TWCloseTagRegEx = /<\/\$[A-Za-z0-9\-\$]+\s*>/gm; +function extendHtmlInline(origRule) { + return function(state,silent) { + if(origRule(state,silent)) { + return true; + } + + var token, pos = state.pos; + var parseTag = $tw.Wiki.parsers['text/vnd.tiddlywiki'].prototype.inlineRuleClasses.html.prototype.parseTag; + var tag = parseTag(state.src,pos,{}); + if(tag) { + if(!silent) { + token = state.push('html_inline','',0); + token.content = state.src.slice(pos,tag.end); + } + state.pos = tag.end; + return true; + } + + TWCloseTagRegEx.lastIndex = pos; + var match = TWCloseTagRegEx.exec(state.src); + if(!match || match.index !== pos) { + return false; + } + + if(!silent) { + token = state.push('html_inline','',0); + token.content = state.src.slice(pos,pos + match[0].length); + } + state.pos = TWCloseTagRegEx.lastIndex; + return true; + }; +} + +function extendParseLinkLabel(origFunc) { + return function(state,start,disableNested) { + if(state.parsingLinkLabel === undefined) { + state.parsingLinkLabel = 0; + } + state.parsingLinkLabel++; + var labelEnd = origFunc(state,start,disableNested); + state.parsingLinkLabel--; + return labelEnd; + }; +} + +// reset each tw inline rule to initial inline state +function extendInlineParse(thisArg,origFunc,twInlineRules) { + return function(str,md,env,outTokens) { + var i, ruleinfo, key; + for(key in twInlineRules) { + ruleinfo = twInlineRules[key]; + ruleinfo.rule.parser.source = str; + ruleinfo.rule.parser.sourceLength = str.length; + ruleinfo.rule.parser.pos = 0; // not used + ruleinfo.matchIndex = -1; + } + origFunc.call(thisArg,str,md,env,outTokens); + } +} + +/// post processing /// + +function wikify(state) { + var href, title, src, alt; + var tagStack = []; + + state.tokens.forEach(function(blockToken) { + if(blockToken.type === 'inline' && blockToken.children) { + blockToken.children.forEach(function(token) { + switch(token.type) { + case 'link_open': + if(token.markup === 'tw_prettylink' || token.markup === 'tw_prettyextlink') { + return; + } + href = token.attrGet('href'); + if(href[0] === '#') { + token.tag = '$link'; + href = $tw.utils.decodeURIComponentSafe(href.substring(1)); + title = token.attrGet('title'); + token.attrs = [['to', href], ['class', '_codified_']]; + if(title) { + token.attrSet('tooltip',title); + } + } else { + token.attrSet('target','_blank'); + token.attrJoin('class','tc-tiddlylink-external'); + token.attrJoin('class','_codified_'); + token.attrSet('rel','noopener noreferrer'); + } + tagStack.push(token.tag); + break; + case 'link_close': + if(token.markup === 'tw_prettylink' || token.markup === 'tw_prettyextlink') { + return; + } + token.tag = tagStack.pop(); + break; + case 'image': + token.tag = '$image'; + src = token.attrGet('src'); + alt = token.attrGet('alt'); + title = token.attrGet('title'); + + token.attrs[token.attrIndex('src')][0] = 'source'; + if(src[0] === '#') { + src = $tw.utils.decodeURIComponentSafe(src.substring(1)); + token.attrSet('source',src); + } + if(title) { + token.attrs[token.attrIndex('title')][0] = 'tooltip'; + } + break; + } + }); + } + }); +} + +module.exports = function tiddlyWikiPlugin(markdown,options) { + var defaults = { + renderWikiText: false, + blockRules: {}, + inlineRules: {} + }; + + md = markdown; + pluginOpts = md.utils.assign({},defaults,options||{}); + + md.renderer.rules.code_inline = render_code_inline; + md.renderer.rules.code_block = render_code_block; + md.renderer.rules.fence = render_fence; + md.renderer.rules.paragraph_open = render_paragraph_open; + md.renderer.rules.paragraph_close = render_paragraph_close; + md.renderer.rules.footnote_ref = render_footnote_ref; + md.renderer.rules.footnote_open = render_footnote_open; + md.renderer.rules.footnote_anchor = render_footnote_anchor; + md.renderer.rules.text_special = render_text_special; + md.renderer.rules.tw_expr = render_tw_expr; + md.renderer.renderAttrs = render_token_attrs; + + if(pluginOpts.renderWikiText) { + md.helpers.parseLinkLabel = extendParseLinkLabel(md.helpers.parseLinkLabel); + + if(pluginOpts.inlineRules.image) { + md.inline.ruler.after('link','tw_image',tw_image); + } + if(pluginOpts.inlineRules.prettyextlink) { + md.inline.ruler.after('link','tw_prettyextlink',tw_prettyextlink); + } + if(pluginOpts.inlineRules.prettylink) { + md.inline.ruler.after('link','tw_prettylink',tw_prettylink); + } + if(pluginOpts.inlineRules.filteredtranscludeinline) { + md.inline.ruler.before('html_inline','tw_filteredtranscludeinline',tw_filteredtranscludeinline); + } + if(pluginOpts.inlineRules.transcludeinline) { + md.inline.ruler.before('html_inline','tw_transcludeinline',tw_transcludeinline); + } + + md.inline.ruler.before('html_inline','tw_macrocallinline',tw_macrocallinline); + md.inline.ruler.at('html_inline',extendHtmlInline(md.inline.ruler.__rules__[md.inline.ruler.__find__('html_inline')].fn)); + md.block.ruler.after('html_block','tw_block',tw_block,{ + alt: [ 'paragraph', 'reference', 'blockquote' ] + }); + md.inline.parse = extendInlineParse(md.inline,md.inline.parse,options.inlineRules); + } + + md.core.ruler.disable('text_join'); + md.core.ruler.push('wikify',wikify); +}; + +})(); diff --git a/plugins/tiddlywiki/markdown/new-markdown.tid b/plugins/tiddlywiki/markdown/new-markdown.tid index 50e4065b5..192543d77 100755 --- a/plugins/tiddlywiki/markdown/new-markdown.tid +++ b/plugins/tiddlywiki/markdown/new-markdown.tid @@ -6,7 +6,7 @@ list-after: $:/core/ui/Buttons/new-tiddler \whitespace trim <$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>> -<$action-sendmessage $message="tm-new-tiddler" type="text/x-markdown"/> +<$action-sendmessage $message="tm-new-tiddler" type="text/markdown"/> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}} </$list> diff --git a/plugins/tiddlywiki/markdown/plugin.info b/plugins/tiddlywiki/markdown/plugin.info index e9db61d7e..ffe74fb03 100755 --- a/plugins/tiddlywiki/markdown/plugin.info +++ b/plugins/tiddlywiki/markdown/plugin.info @@ -1,6 +1,6 @@ { "title": "$:/plugins/tiddlywiki/markdown", "name": "Markdown", - "description": "Markdown parser based on remarkable by Jon Schlinkert and remarkable-katex by Brad Howes", - "list": "readme usage remarkable-license remarkable-katex-license" + "description": "Markdown parser based on markdown-it", + "list": "readme config syntax license" } diff --git a/plugins/tiddlywiki/markdown/readme.tid b/plugins/tiddlywiki/markdown/readme.tid index dd5dd0666..1859fd36e 100755 --- a/plugins/tiddlywiki/markdown/readme.tid +++ b/plugins/tiddlywiki/markdown/readme.tid @@ -1,7 +1,32 @@ title: $:/plugins/tiddlywiki/markdown/readme -This is a TiddlyWiki plugin for parsing Markdown text, using the [[Remarkable|https://github.com/jonschlinkert/remarkable]] library. If the KaTeX TiddlyWiki plugin is installed, KaTeX support is enabled using the [[remarkable-katex|https://github.com/bradhowes/remarkable-katex]] Remarkable plugin. +This plugin provides Markdown support via the [[markdown-it|https://github.com/markdown-it/markdown-it]] parser and its associated plugins: -It is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js. +* markdown-it-deflist +* markdown-it-footnote +* markdown-it-ins +* markdown-it-mark +* markdown-it-sub +* markdown-it-sup -[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/markdown]] +!! Compatibility Notes + +* <p>A tab character in Markdown has a size of four spaces. Configure the tab size of your code editor accordingly. For example, if you use <$text text="CodeMirror"/>, it is recommended that you set $:/config/codemirror/indentUnit and $:/config/codemirror/tabSize to `4` to avoid inconsistent indentations.</p> +* <p>HTML blocks are ultimately parsed by the <$text text=WikiText/> parser: //an opening tag followed by a blank line will activate block-level parsing for its content//. When working with tags designed to contain literal content, such as `<pre>` and `<style>` tags, refrain from adding blank lines after the opening tags.</p> +* <p>You must terminate a table with either a blank line or another block-level structure.</p> +* <p>`latex-parser` in $:/config/markdown/renderWikiTextPragma is no longer required and will be ignored.</p> +* <p>Config option `linkNewWindow` is removed.</p> + +!! Extending the Parser + +You can extend the parser by loading additional markdown-it plugins this way: + +```js +var plugin1 = require(...); +var plugin2 = require(...); + +var md = $tw.Wiki.parsers["text/markdown"].prototype.md; + +md.use(plugin1) + .use(plugin2, opts, ...); +``` \ No newline at end of file diff --git a/plugins/tiddlywiki/markdown/styles.tid b/plugins/tiddlywiki/markdown/styles.tid new file mode 100644 index 000000000..f4d953d1b --- /dev/null +++ b/plugins/tiddlywiki/markdown/styles.tid @@ -0,0 +1,50 @@ +title: $:/plugins/tiddlywiki/markdown/styles +tags: [[$:/tags/Stylesheet]] +code-body: yes + +.markdown { + display: block; + margin: 0px; +} +.markdown hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid <<colour muted-foreground>>; +} +.markdown .footnotes { + font-size: 0.9em; + line-height: 1.32; +} +.markdown a.footnote-ref { + color: <<colour tiddler-link-foreground>>; + font-size: 0.75em; + text-decoration: none; + vertical-align: super; + padding:0px 1px; +} +.markdown ol.footnotes-list { + padding-left: 2em; +} +.markdown .footnote-item p { + margin: 0.7em 0px; +} +.markdown a.footnote-backref { + color: <<colour tiddler-link-foreground>>; + font-size: 0.8em; + text-decoration: none; + margin-left: 0.25em; +} +.markdown a.footnote-ref:target, .markdown .footnote-item:target { + background-color: <<colour message-background>>; + scroll-margin-top: {{{ [{$:/themes/tiddlywiki/vanilla/options/stickytitles}match[yes]then[120px]else[60px]] }}}; +} +.markdown li > p:first-child { + margin-top: 0px; +} +.markdown li + li { + margin-top: 2px; +} +.markdown mark { + padding: 1px 3px; +} diff --git a/plugins/tiddlywiki/markdown/syntax.tid b/plugins/tiddlywiki/markdown/syntax.tid new file mode 100644 index 000000000..22ba6e9d7 --- /dev/null +++ b/plugins/tiddlywiki/markdown/syntax.tid @@ -0,0 +1,224 @@ + +title: $:/plugins/tiddlywiki/markdown/syntax + +To review standard Markdown syntax, see: [ext[CommonMark quick reference|https://commonmark.org/help/]]. For formal specification, consult the [ext[CommonMark Spec|https://spec.commonmark.org/current/]]. + +! Linking to Tiddlers + +Prepend `#` to tiddler titles to form link addresses. If a tiddler title contains spaces or other special characters, you must either (1) URI-encode the title, or (2) surround the #title with `<` `>` and backslash-escape any `<` or `>` in the title. + +!! Links + +<pre><code>[link text](<strong>#</strong><$text text="TiddlerTitle"/> "optional tooltip") + +[link text](<strong>#</strong>New<strong>%20</strong>Tiddler) + +[link text](<strong><#</strong>New Tiddler<strong>></strong>) + +[](<strong><#</strong>How to use <strong>\</strong><$list<strong>\</strong>> widget?<strong>></strong>) +</code></pre> + +You can also use the `<$link>` widget to generate links to tiddlers: + +``` +<$link to="Tiddler Title">Displayed Link Title</$link> +``` + +!! Reference Style Links + +``` +[link text][1] +[link text][2] + +[1]: #New%20Tiddler "optional tooltip" + +[2]: <#Another Tiddler> +``` + +!! Images + +``` +![alt text](#Motovun%20Jack.jpg "optional tooltip") + +![alt text](<#Motovun Jack.jpg>) +``` + +! Escaping Special Characters + +Markdown allows you to escape ASCII punctuation characters with `\`. + +! HTML Blocks + +An [[HTML block|https://spec.commonmark.org/0.30/#html-blocks]] is a group of lines that starts with an HTML tag and is treated as raw HTML. Block-level tags such as `<div>` and `<p>` can interrupt a paragraph. Inline elements such as `<strong>` and `<em>` can start an HTML block if the //complete// tag begins on a new paragraph by itself. In most cases, an HTML block continues until a blank line is reached. + +A widget tag that begins on a new paragraph will also be treated as an HTML block. Markdown elements are not recognized inside the HTML block. For example: + +``` +see + +<$link to="New Tiddler"> +_New_ Tiddler +</$link> +``` + +rendered as: + +``` +<p>see</p> +<$link to="New Tiddler"> +_New_ Tiddler +</$link> +``` + +A widget tag not preceded by a blank line is an inline element. + +``` +see +<$link to="New Tiddler"> +_New_ Tiddler +</$link> +``` + +rendered as: + +``` +<p>see <$link to="New Tiddler"><em>New</em> Tiddler</$link></p> +``` + +! Syntax Extensions + +!! <$text text=KaTeX/> + +You need to install the <$text text=KaTeX/> plugin to activate this syntax extension. + +Surround your math expression with `$` for inline rendering. Whitespace characters cannot immediately follow the opening `$` or precede the closing `$`, and the closing delimiter must not immediately precede a digit. Furthermore, `$` followed by `:/` will not be recognized as a valid opening or closing delimiter either. + +Here's an example of an inline math expression: + +``` +$c = \pm\sqrt{a^2 + b^2}$ +``` + +Use `$$` to center the math in display mode: + +``` +$$c = \pm\sqrt{a^2 + b^2}$$ +``` + +!! Superscript and Subscript + +``` +X^2^ +``` +x<sup>2</sup> + +``` +H~2~O +``` +H<sub>2</sub>O + +!! Marked Text + +``` +==marked text== +``` + +<mark>marked text</mark> + +!! Strikethrough + +``` +~~striked through text~~ +``` + +<s>striked through text</s> + +!! Inserted Text + +``` +++inserted text++ +``` + +<ins>inserted text</ins> + +!! Tables + +markdown-it supports <$text text="GitHub Flavored Markdown"/> (GFM) [ext[table syntax|https://github.github.com/gfm/#tables-extension-]]. + +``` +|Left Aligned |Centered |Right Aligned | +|:--- | :---: | ---:| +|apple |bat |candle | +``` + +<table> +<thead> +<tr><th style="text-align:left">Left Aligned</th><th style="text-align:center">Centered</th><th style="text-align:right">Right Aligned</th></tr> +</thead> +<tbody> +<tr><td style="text-align:left">apple</td><td style="text-align:center">bat</td><td style="text-align:right">candle</td></tr> +</tbody> +</table> + +!! Definition Lists + +``` +Term One +: Definition with +lazy continuation. + +Term Two +: Here is the first defintion. + +: Here is the second definition. + + As you can see. A definition can have + more than one paragrpah. It can also have + + And indended code block... +``` + +<dl> +<dt>Term One</dt> +<dd><p>Definition with +lazy continuation. +</p></dd> +<dt>Term Two</dt> +<dd><p>Here is the first defintion. +</p></dd> +<dd><p>Here is the second definition.</p><p>As you can see. A definition can have +more than one paragrpah. It can also have +<pre><code>And indended code block... +</code></pre> +</p></dd> +</dl> + +!! Footnotes + +For detailed explanation, see [[Creating Footnotes|https://www.markdownguide.org/extended-syntax/#footnotes]]. + +``` +Here's a simple footnote,[^1] and here's a longer one.[^bignote] + +[^1]: This is the first footnote. + +[^bignote]: Here's one with multiple paragraphs and code. + + Indent paragraphs to include them in the footnote. + + `{ my code }` + + Add as many paragraphs as you like. +``` + +<div class="markdown"><p>Here’s a simple footnote,<a class="footnote-ref" href="##fn1--doc639182" id="#fnref1--doc639182">[1]</a> and here’s a longer one.<a class="footnote-ref" href="##fn2--doc639182" id="#fnref2--doc639182">[2]</a> +<hr class="footnotes-sep"> +<section class="footnotes"> +<ol class="footnotes-list"> +<li id="#fn1--doc639182" class="footnote-item"><p>This is the first footnote. <a href="##fnref1--doc639182" class="footnote-backref">↥︎</a> +</p></li> +<li id="#fn2--doc639182" class="footnote-item"><p>Here’s one with multiple paragraphs and code.</p><p>Indent paragraphs to include them in the footnote.</p><p><code class="codified">{ my code }</code></p><p>Add as many paragraphs as you like. <a href="##fnref2--doc639182" class="footnote-backref">↥︎</a> +</p></li> +</ol> +</section> +</p></div> \ No newline at end of file diff --git a/plugins/tiddlywiki/markdown/wrapper.js b/plugins/tiddlywiki/markdown/wrapper.js index 704ce4689..cceb39138 100755 --- a/plugins/tiddlywiki/markdown/wrapper.js +++ b/plugins/tiddlywiki/markdown/wrapper.js @@ -3,338 +3,264 @@ title: $:/plugins/tiddlywiki/markdown/wrapper.js type: application/javascript module-type: parser -Wraps up the remarkable parser for use as a Parser in TiddlyWiki +Wraps up the markdown-it parser for use as a Parser in TiddlyWiki \*/ -(function(){ +(function(realRequire){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; -var r = require("$:/plugins/tiddlywiki/markdown/remarkable.js"); +var require = function(m) { + return realRequire("$:/plugins/tiddlywiki/markdown/" + m + ".js"); +}; -var Remarkable = r.Remarkable, - linkify = r.linkify, - utils = r.utils; +var MarkdownIt = require("markdown-it"); -///// Set up configuration options ///// function parseAsBoolean(tiddlerName) { - return $tw.wiki.getTiddlerText(tiddlerName).toLowerCase() === "true"; + return $tw.wiki.getTiddlerText(tiddlerName,"false").trim().toLowerCase() === "true"; } + var pluginOpts = { - linkNewWindow: parseAsBoolean("$:/config/markdown/linkNewWindow"), renderWikiText: parseAsBoolean("$:/config/markdown/renderWikiText"), renderWikiTextPragma: $tw.wiki.getTiddlerText("$:/config/markdown/renderWikiTextPragma").trim() }; -var remarkableOpts = { + +var markdownOpts = { + html: true, + xhtmlOut: true, breaks: parseAsBoolean("$:/config/markdown/breaks"), - quotes: $tw.wiki.getTiddlerText("$:/config/markdown/quotes"), - typographer: parseAsBoolean("$:/config/markdown/typographer") + quotes: $tw.wiki.getTiddlerText("$:/config/markdown/quotes").trim(), + typographer: parseAsBoolean("$:/config/markdown/typographer"), + linkify: parseAsBoolean("$:/config/markdown/linkify") }; -var accumulatingTypes = { - "text": true, - "softbreak": true -}; -// If rendering WikiText, we treat katex nodes as text. -if(pluginOpts.renderWikiText) { - accumulatingTypes["katex"] = true; -} -var md = new Remarkable(remarkableOpts); +// Retrieve needed TW rule classes and instantiated rules +function setupWikiRules(pluginOptions) { + var results = {}; -// If tiddlywiki/katex plugin is present, use remarkable-katex to enable katex support. -if($tw.modules.titles["$:/plugins/tiddlywiki/katex/katex.min.js"]) { - var rk = require("$:/plugins/tiddlywiki/markdown/remarkable-katex.js"); - md = md.use(rk); -} + function collectAllRules(classes,type) { + var rulesInfo = [], key, + self = wikiParser; + for(key in classes) { + // instantiate the rule + var RuleClass = classes[key]; + var rule = new RuleClass(self); + rule.name = key; + rule.class = RuleClass; + rule.is = {}; + rule.is[type] = true; + rule.init(self); -if(parseAsBoolean("$:/config/markdown/linkify")) { - md = md.use(linkify); -} - -function findTagWithType(nodes, startPoint, type, level) { - for (var i = startPoint; i < nodes.length; i++) { - if(nodes[i].type === type && nodes[i].level === level) { - return i; - } - } - return false; -} - -/** - * Remarkable creates nodes that look like: - * [ - * { type: 'paragraph_open'}, - * { type: 'inline', content: 'Hello World', children:[{type: 'text', content: 'Hello World'}]}, - * { type: 'paragraph_close'} - * ] - * - * But TiddlyWiki wants the Parser (https://tiddlywiki.com/dev/static/Parser.html) to emit nodes like: - * - * [ - * { type: 'element', tag: 'p', children: [{type: 'text', text: 'Hello World'}]} - * ] - */ -function convertNodes(remarkableTree, isStartOfInline) { - let out = []; - var accumulatedText = ''; - function withChildren(currentIndex, currentLevel, closingType, nodes, callback) { - var j = findTagWithType(nodes, currentIndex + 1, closingType, currentLevel); - if(j === false) { - console.error("Failed to find a " + closingType + " node after position " + currentIndex); - console.log(nodes); - return currentIndex + 1; - } - let children = convertNodes(nodes.slice(currentIndex + 1, j)); - callback(children); - return j; - } - function wrappedElement(elementTag, currentIndex, currentLevel, closingType, nodes) { - return withChildren(currentIndex, currentLevel, closingType, nodes, function(children) { - out.push({ - type: "element", - tag: elementTag, - children: children + rulesInfo.push({ + rule: rule, + matchIndex: -1 }); + }; + return rulesInfo; + } + + // first pass: get all rule classes + var wikiParser = new $tw.Wiki.parsers["text/vnd.tiddlywiki"](null, '', {parseAsInline: true, wiki: $tw.wiki}); + + // restore all possible rules from each rule class + wikiParser.pragmaRules = collectAllRules(wikiParser.pragmaRuleClasses,'pragma'); + wikiParser.blockRules = collectAllRules(wikiParser.blockRuleClasses,'block'); + wikiParser.inlineRules = collectAllRules(wikiParser.inlineRuleClasses,'inline'); + + var pragma = pluginOptions.renderWikiText + ? "\\rules except latex-parser extlink\n" + pluginOptions.renderWikiTextPragma + : "\\rules only html entity commentinline commentblock"; + + wikiParser.pos = 0; + wikiParser.source = pragma; + wikiParser.sourceLength = pragma.length; + + // second pass: remove uninterested rules based on \rules pragma + wikiParser.parsePragmas(); + + results.blockRules = {}; + results.inlineRules = {} + results.blockRuleClasses = {}; + results.inlineRuleClasses = {}; + + // save the rule sets for future markdown parsing + wikiParser.blockRules.forEach(function(ruleinfo) { + results.blockRules[ruleinfo.rule.name] = ruleinfo; + results.blockRuleClasses[ruleinfo.rule.name] = ruleinfo.rule.class; + }); + wikiParser.inlineRules.forEach(function(ruleinfo) { + results.inlineRules[ruleinfo.rule.name] = ruleinfo; + results.inlineRuleClasses[ruleinfo.rule.name] = ruleinfo.rule.class; + }); + return results; +} + +// Creates markdown-it parser +function createMarkdownEngine(markdownItOptions, pluginOptions) { + var md = new MarkdownIt(markdownItOptions) + .use(require("markdown-it-sub")) + .use(require("markdown-it-sup")) + .use(require("markdown-it-ins")) + .use(require("markdown-it-mark")) + .use(require("markdown-it-footnote")) + .use(require("markdown-it-deflist")); + + var results = setupWikiRules(pluginOptions); + + MarkdownParser.prototype.blockRuleClasses = results.blockRuleClasses; + MarkdownParser.prototype.blockRules = results.blockRules; + + MarkdownParser.prototype.inlineRuleClasses = results.inlineRuleClasses; + MarkdownParser.prototype.inlineRules = results.inlineRules; + + if(pluginOptions.renderWikiText && $tw.modules.titles["$:/plugins/tiddlywiki/katex/katex.min.js"]) { + md.use(require("markdown-it-katex")); + } + + md.use(require("markdown-it-tiddlywiki"),{ + renderWikiText: pluginOptions.renderWikiText, + blockRules: results.blockRules, + inlineRules: results.inlineRules + }); + + $tw.utils.each(['image','prettylink','prettyextlink'], function(rule) { + if(MarkdownParser.prototype.inlineRules[rule]) { + // delegate to md; ignore the rule class in WikiParser + delete MarkdownParser.prototype.inlineRuleClasses[rule]; + } + }); + return md; +} + +/// Parse tree post processing /// + +function deactivateLinks(tree) { + $tw.utils.each(tree,function(node) { + if(node.type === "link") { + node.type = "text"; + node.text = node.children[0].text; + delete node.attributes; + delete node.children; + delete node.attributes; + } else { + deactivateLinks(node.children); + } + }); +} + +// true if the node contains "_codified_" class attribute +function isCodified(node) { + return node.attributes + && node.attributes.class + && node.attributes.class.type === "string" + && (node.attributes.class.value.split(" ").indexOf("_codified_") !== -1); +} + +function decodeEntities(s) { + return s.replace(/(&#?[a-zA-Z0-9]{2,8};)/g,$tw.utils.entityDecode); +} + +// Add e"..." and e'....' syntax to enable decoding of HTML entities +// in string literals. +function parseStringLiteralExtended(source,pos) { + var node = { + type: "string", + start: pos + }; + var reString = /(?:"""([\s\S]*?)"""|e?"([^"]*)")|(?:e?'([^']*)')/g; + reString.lastIndex = pos; + var match = reString.exec(source); + if(match && match.index === pos) { + node.value = match[1] !== undefined ? match[1] : + (match[2] !== undefined ? match[2] : match[3]); + node.end = pos + match[0].length; + if(match[0].charAt(0) === "e") { + node.value = decodeEntities(node.value); + } + return node; + } else { + return null; + } +} + +function processWikiTree(tree,hasWikiLinkRule) { + var stack = [].concat(tree); + + var mergeable = function(node) { + return node.type === "element" && node.tag === "p" && (!node.attributes || Object.keys(node.attributes).length === 0); + }; + + while(stack.length) { + var node = stack.pop(); + if(node.type === "element" && node.tag === "p") { + // reduce nested <p> nodes + while(node.children && node.children.length === 1 && mergeable(node.children[0])) { + node.children = node.children[0].children; + } + } else if(hasWikiLinkRule && isCodified(node)) { + deactivateLinks(node.children); + continue; + } + if(node.children && node.children.length > 0) { + stack.push.apply(stack,node.children); + } + } +} + +// to extend MarkdownIt outside of this module, do: +// +// md = $tw.Wiki.parsers["text/markdown"].prototype.md; +// md.use(plugin[, options]); +MarkdownParser.prototype.md = createMarkdownEngine(markdownOpts,pluginOpts); + +function MarkdownParser(type,text,options) { + var env = {} + var md = this.md; + var mdTree = md.parse(text,env); + var textToParse = '<div class="markdown">\n' + md.renderer.render(mdTree,md.options,env) + '</div>'; + + //console.log(JSON.stringify(mdTree,null,2)); + //console.log("\n----------------\n" + textToParse); + + var wikiParser; + + var origParseStringLiteral = $tw.utils.parseStringLiteral; + $tw.utils.parseStringLiteral = parseStringLiteralExtended; + + try { + wikiParser = new $tw.Wiki.parsers["text/vnd.tiddlywiki"](null,textToParse,{ + parseAsInline: true, + wiki: options.wiki, + rules: { pragma: {}, block: this.blockRuleClasses, inline: this.inlineRuleClasses } }); } - - for (var i = 0; i < remarkableTree.length; i++) { - var currentNode = remarkableTree[i]; - switch (currentNode.type) { - case "paragraph_open": - // If the paragraph is a "tight" layout paragraph, don't wrap children in a <p> tag. - if(currentNode.tight) { - i = withChildren(i, currentNode.level, "paragraph_close", remarkableTree, function(children) { - Array.prototype.push.apply(out, children); - }); - } else { - i = wrappedElement("p", i, currentNode.level, "paragraph_close", remarkableTree); - } - break; - - case "heading_open": - i = wrappedElement("h" + currentNode.hLevel, i, currentNode.level, "heading_close", remarkableTree); - break; - - case "bullet_list_open": - i = wrappedElement("ul", i, currentNode.level, "bullet_list_close", remarkableTree); - break; - - case "ordered_list_open": - i = wrappedElement('ol', i, currentNode.level,'ordered_list_close', remarkableTree); - break; - - case "list_item_open": - i = wrappedElement("li", i, currentNode.level, "list_item_close", remarkableTree); - break; - - case "link_open": - i = withChildren(i, currentNode.level, "link_close", remarkableTree, function(children) { - if(currentNode.href[0] !== "#") { - // External link - var attributes = { - class: { type: "string", value: "tc-tiddlylink-external" }, - href: { type: "string", value: currentNode.href }, - rel: { type: "string", value: "noopener noreferrer" } - }; - if(pluginOpts.linkNewWindow) { - attributes.target = { type: "string", value: "_blank" }; - } - out.push({ - type: "element", - tag: "a", - attributes: attributes, - children: children - }); - } else { - // Internal link - out.push({ - type: "link", - attributes: { - to: { type: "string", value: $tw.utils.decodeURISafe(currentNode.href.substr(1)) } - }, - children: children - }); - } - }); - break; - - case "code": - out.push({ - type: "element", - tag: currentNode.block ? "pre" : "code", - children: [{ type: "text", text: currentNode.content }] - }); - break; - - case "fence": - out.push({ - type: "codeblock", - attributes: { - language: { type: "string", value: currentNode.params }, - code: { type: "string", value: currentNode.content } - } - }); - break; - - case "image": - out.push({ - type: "image", - attributes: { - tooltip: { type: "string", value: currentNode.alt }, - source: { type: "string", value: $tw.utils.decodeURIComponentSafe(currentNode.src) } - } - }); - break; - - case "softbreak": - if(remarkableOpts.breaks) { - out.push({ - type: "element", - tag: "br", - }); - } else { - accumulatedText = accumulatedText + '\n'; - } - break; - - case "hardbreak": - out.push({ - type: "element", - tag: "br", - }); - break; - - case "th_open": - case "td_open": - var elementTag = currentNode.type.slice(0, 2); - i = withChildren(i, currentNode.level, elementTag + "_close", remarkableTree, function(children) { - var attributes = {}; - if(currentNode.align) { - attributes.style = { type: "string", value: "text-align:" + currentNode.align }; - } - out.push({ - type: "element", - tag: elementTag, - attributes: attributes, - children: children - }); - }); - break; - - case "hr": - out.push({ - type: 'element', - tag: 'hr', - }); - break; - - case "inline": - out = out.concat(convertNodes(currentNode.children, true)); - break; - - case "text": - // We need to merge this text block with the upcoming text block and parse it all together. - accumulatedText = accumulatedText + currentNode.content; - break; - - case "katex": - // If rendering WikiText, convert the katex node back to text for parsing by the WikiText LaTeX parser. - if(pluginOpts.renderWikiText) { - // If this is a block, add a newline to trigger the KaTeX plugins block detection. - var displayModeSuffix = currentNode.block ? "\n" : ""; - accumulatedText = accumulatedText + "$$" + currentNode.content + displayModeSuffix + "$$"; - } else { - out.push({ - type: "latex", - attributes: { - text: { type: "text", value: currentNode.content }, - displayMode: { type: "text", value: currentNode.block ? "true" : "false" } - } - }); - } - break; - - default: - if(currentNode.type.substr(currentNode.type.length - 5) === "_open") { - var tagName = currentNode.type.substr(0, currentNode.type.length - 5); - i = wrappedElement(tagName, i, currentNode.level, tagName + "_close", remarkableTree); - } else { - console.error("Unknown node type: " + currentNode.type, currentNode); - out.push({ - type: "text", - text: currentNode.content - }); - } - break; - } - // We test to see if we process the block now, or if there's - // more to accumulate first. - if(accumulatedText - && ( - remarkableOpts.breaks || - (i+1) >= remarkableTree.length || - !accumulatingTypes[remarkableTree[i+1].type] - ) - ) { - // The Markdown compiler thinks this is just text. - // Hand off to the WikiText parser to see if there's more to render - // But only if it's configured to, and we have more than whitespace - if(!pluginOpts.renderWikiText || accumulatedText.match(/^\s*$/)) { - out.push({ - type: "text", - text: accumulatedText - }); - } else { - // If we're inside a block element (div, p, td, h1), and this is the first child in the tree, - // handle as a block-level parse. Otherwise not. - var parseAsInline = !(isStartOfInline && i === 0); - var textToParse = accumulatedText; - if(pluginOpts.renderWikiTextPragma !== "") { - textToParse = pluginOpts.renderWikiTextPragma + "\n" + textToParse; - } - var wikiParser = $tw.wiki.parseText("text/vnd.tiddlywiki", textToParse, { - parseAsInline: parseAsInline - }); - var rs = wikiParser.tree; - - // If we parsed as a block, but the root element the WikiText parser gave is a paragraph, - // we should discard the paragraph, since the way Remarkable nests its nodes, this "inline" - // node is always inside something else that's a block-level element - if(!parseAsInline - && rs.length === 1 - && rs[0].type === "element" - && rs[0].tag === "p" - ) { - rs = rs[0].children; - } - - // If the original text element started with a space, add it back in - if(rs.length > 0 - && rs[0].type === "text" - && (accumulatedText[0] === " " || accumulatedText[0] === "\n") - ) { - rs[0].text = " " + rs[0].text; - } - out = out.concat(rs); - } - accumulatedText = ''; - } + catch (err) { + wikiParser = $tw.wiki.parseText("text/vnd.tiddlywiki", + "<strong>Error encountered while parsing the tiddler:</strong><p>" + err.message + "</p>", + {parseAsInline: false, wiki: options.wiki}); } - return out; + finally { + $tw.utils.parseStringLiteral = origParseStringLiteral; + } + if(wikiParser.tree.length > 0) { + var hasWikiLinkRule = false; + // see if wikilink rule has been invoked + $tw.utils.each(wikiParser.inlineRules,function(ruleInfo) { + if(ruleInfo.rule.name === "wikilink") { + hasWikiLinkRule = true; + return false; + } + }); + processWikiTree(wikiParser.tree,hasWikiLinkRule); + } + this.tree = wikiParser.tree; + this.source = text; + this.type = type || "text/markdown"; + this.wiki = options.wiki; } -var MarkdownParser = function(type, text, options) { - var tree = md.parse(text, {}); - //console.debug(tree); - tree = convertNodes(tree); - //console.debug(tree); - - this.tree = tree; -}; - +exports["text/markdown"] = MarkdownParser; exports["text/x-markdown"] = MarkdownParser; - -})(); +})(require); From 5ea9743cd54673a178d0ca333458af053ea9d1a4 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 14 Jan 2023 13:39:25 +0000 Subject: [PATCH 215/937] Add TiddlyWiki Newsletter badge --- .../community/TiddlyWiki Newsletter.tid | 6 ++++++ .../tiddlers/hellothere/HelloThumbnail.tid | 2 +- .../thumbnails/HelloThumbnail - Newsletter.tid | 9 +++++++++ .../images/TiddlyWiki Newsletter Badge.png | Bin 0 -> 173610 bytes .../TiddlyWiki Newsletter Badge.png.meta | 3 +++ 5 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid create mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid create mode 100644 editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png create mode 100644 editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png.meta diff --git a/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid b/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid new file mode 100644 index 000000000..25cdda415 --- /dev/null +++ b/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid @@ -0,0 +1,6 @@ +title: TiddlyWiki Newsletter + +Subscribe to the TiddlyWiki Newsletter here: + +<iframe src="https://tiddlywiki.substack.com/embed" width="480" height="320" style="border:1px solid #EEE; background:white;" frameborder="0" scrolling="no"></iframe> + diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid b/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid index cd304e703..d46890d66 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid @@ -1,5 +1,5 @@ created: 20150414070451144 -list: [[HelloThumbnail - Introduction Video]] [[HelloThumbnail - Grok TiddlyWiki]] [[HelloThumbnail - Latest Version]] [[HelloThumbnail - TiddlyWikiLinks]] [[HelloThumbnail - Developers]] [[HelloThumbnail - Funding]] [[HelloThumbnail - Marketplace]] [[HelloThumbnail - Federatial]] +list: [[HelloThumbnail - Newsletter]] [[HelloThumbnail - Introduction Video]] [[HelloThumbnail - Grok TiddlyWiki]] [[HelloThumbnail - Latest Version]] [[HelloThumbnail - TiddlyWikiLinks]] [[HelloThumbnail - Developers]] [[HelloThumbnail - Funding]] [[HelloThumbnail - Marketplace]] [[HelloThumbnail - Federatial]] modified: 20150414070948246 title: HelloThumbnail type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid new file mode 100644 index 000000000..3e73ca0a3 --- /dev/null +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid @@ -0,0 +1,9 @@ +title: HelloThumbnail - Newsletter +tags: HelloThumbnail +caption: TiddlyWiki Newsletter +link: TiddlyWiki Newsletter +image: TiddlyWiki Newsletter Badge.png +color: #fff + +Subscribe to the TiddlyWiki Newsletter, a fortnightly summary of the most interesting and relevant news from the TiddlyWiki community. + diff --git a/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png b/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a8c508a234bd6aef8d8b1b94b346261f786368 GIT binary patch literal 173610 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%0DMq`A#FU54W1ulZIo1Ze1&ZbBP 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ʑ`9 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 T`t(s000000NkvXXu0mjf&m;or literal 0 HcmV?d00001 diff --git a/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png.meta b/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png.meta new file mode 100644 index 000000000..b53a63b97 --- /dev/null +++ b/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png.meta @@ -0,0 +1,3 @@ +title: TiddlyWiki Newsletter Badge.png +type: image/png +tags: picture From c9691bdb279f4fc2cfcacc2250f5a041bcaa019a Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 14 Jan 2023 13:47:16 +0000 Subject: [PATCH 216/937] Docs: Remove camelcase wikification for newsletter badge --- editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid | 2 +- .../hellothere/thumbnails/HelloThumbnail - Newsletter.tid | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid b/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid index 25cdda415..135a34617 100644 --- a/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid +++ b/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid @@ -1,6 +1,6 @@ title: TiddlyWiki Newsletter -Subscribe to the TiddlyWiki Newsletter here: +Subscribe to the ~TiddlyWiki Newsletter here: <iframe src="https://tiddlywiki.substack.com/embed" width="480" height="320" style="border:1px solid #EEE; background:white;" frameborder="0" scrolling="no"></iframe> diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid index 3e73ca0a3..51255b7e0 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid @@ -5,5 +5,5 @@ link: TiddlyWiki Newsletter image: TiddlyWiki Newsletter Badge.png color: #fff -Subscribe to the TiddlyWiki Newsletter, a fortnightly summary of the most interesting and relevant news from the TiddlyWiki community. +Subscribe to the ~TiddlyWiki Newsletter, a fortnightly summary of the most interesting and relevant news from the ~TiddlyWiki community. From 917975b4642da2caa4d8c765df160768662e80f5 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 14 Jan 2023 13:49:36 +0000 Subject: [PATCH 217/937] Avoid unnecessary full stop --- .../hellothere/thumbnails/HelloThumbnail - Newsletter.tid | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid index 51255b7e0..889df9f16 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid @@ -5,5 +5,4 @@ link: TiddlyWiki Newsletter image: TiddlyWiki Newsletter Badge.png color: #fff -Subscribe to the ~TiddlyWiki Newsletter, a fortnightly summary of the most interesting and relevant news from the ~TiddlyWiki community. - +Subscribe to the ~TiddlyWiki Newsletter, a fortnightly summary of the most interesting and relevant news from the ~TiddlyWiki community From 301a0ecec72d132cb992c76573bde6a0601ca15c Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 14 Jan 2023 14:00:25 +0000 Subject: [PATCH 218/937] Docs: Remove another stray camelcase link --- .../hellothere/thumbnails/HelloThumbnail - Newsletter.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid index 889df9f16..24f4e9c28 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid @@ -1,6 +1,6 @@ title: HelloThumbnail - Newsletter tags: HelloThumbnail -caption: TiddlyWiki Newsletter +caption: ~TiddlyWiki Newsletter link: TiddlyWiki Newsletter image: TiddlyWiki Newsletter Badge.png color: #fff From 13c0f3c5e23bdb18efac7179973e89a5b32015df Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 14 Jan 2023 14:06:03 +0000 Subject: [PATCH 219/937] TiddlyWiki Newsletter badge --- .../tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid | 6 ++++++ .../hellothere/thumbnails/HelloThumbnail - Newsletter.tid | 8 ++++++++ .../tiddlers/images/TiddlyWiki Newsletter Badge.png.meta | 3 +++ 3 files changed, 17 insertions(+) create mode 100644 editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid create mode 100644 editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid create mode 100644 editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png.meta diff --git a/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid b/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid new file mode 100644 index 000000000..135a34617 --- /dev/null +++ b/editions/tw5.com/tiddlers/community/TiddlyWiki Newsletter.tid @@ -0,0 +1,6 @@ +title: TiddlyWiki Newsletter + +Subscribe to the ~TiddlyWiki Newsletter here: + +<iframe src="https://tiddlywiki.substack.com/embed" width="480" height="320" style="border:1px solid #EEE; background:white;" frameborder="0" scrolling="no"></iframe> + diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid new file mode 100644 index 000000000..24f4e9c28 --- /dev/null +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid @@ -0,0 +1,8 @@ +title: HelloThumbnail - Newsletter +tags: HelloThumbnail +caption: ~TiddlyWiki Newsletter +link: TiddlyWiki Newsletter +image: TiddlyWiki Newsletter Badge.png +color: #fff + +Subscribe to the ~TiddlyWiki Newsletter, a fortnightly summary of the most interesting and relevant news from the ~TiddlyWiki community diff --git a/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png.meta b/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png.meta new file mode 100644 index 000000000..b53a63b97 --- /dev/null +++ b/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png.meta @@ -0,0 +1,3 @@ +title: TiddlyWiki Newsletter Badge.png +type: image/png +tags: picture From 9574506a89fdd972d40dc405818562aa4a7116a8 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 14 Jan 2023 14:09:05 +0000 Subject: [PATCH 220/937] Image for TiddlyWiki newsletter badge --- .../images/TiddlyWiki Newsletter Badge.png | Bin 0 -> 173610 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png diff --git a/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png b/editions/tw5.com/tiddlers/images/TiddlyWiki Newsletter Badge.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a8c508a234bd6aef8d8b1b94b346261f786368 GIT binary patch literal 173610 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%0DMq`A#FU54W1ulZIo1Ze1&ZbBP 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ʑ`9 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 T`t(s000000NkvXXu0mjf&m;or literal 0 HcmV?d00001 From b7c420393c37eabf342becf9256f705775d43cea Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 14 Jan 2023 14:11:19 +0000 Subject: [PATCH 221/937] Add a "NEW" banner to the newsletter badge --- .../hellothere/thumbnails/HelloThumbnail - Newsletter.tid | 1 + 1 file changed, 1 insertion(+) diff --git a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid index 24f4e9c28..be7cf98f8 100644 --- a/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid +++ b/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid @@ -4,5 +4,6 @@ caption: ~TiddlyWiki Newsletter link: TiddlyWiki Newsletter image: TiddlyWiki Newsletter Badge.png color: #fff +ribbon-text: NEW Subscribe to the ~TiddlyWiki Newsletter, a fortnightly summary of the most interesting and relevant news from the ~TiddlyWiki community From f9efbd93b1b7bccf06ef381f6dffcc6782b03d1d Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 14 Jan 2023 14:31:37 +0000 Subject: [PATCH 222/937] Docs: Fix ordering of badges --- editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid b/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid index cd304e703..12d371145 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid @@ -1,5 +1,5 @@ created: 20150414070451144 -list: [[HelloThumbnail - Introduction Video]] [[HelloThumbnail - Grok TiddlyWiki]] [[HelloThumbnail - Latest Version]] [[HelloThumbnail - TiddlyWikiLinks]] [[HelloThumbnail - Developers]] [[HelloThumbnail - Funding]] [[HelloThumbnail - Marketplace]] [[HelloThumbnail - Federatial]] +list: [[HelloThumbnail - TiddlyWiki Newsletter]] [[HelloThumbnail - Introduction Video]] [[HelloThumbnail - Grok TiddlyWiki]] [[HelloThumbnail - Latest Version]] [[HelloThumbnail - TiddlyWikiLinks]] [[HelloThumbnail - Developers]] [[HelloThumbnail - Funding]] [[HelloThumbnail - Marketplace]] [[HelloThumbnail - Federatial]] modified: 20150414070948246 title: HelloThumbnail type: text/vnd.tiddlywiki From aeec6aee23f4606a962efa49c3640146644b3802 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sat, 14 Jan 2023 14:56:49 +0000 Subject: [PATCH 223/937] Docs typo --- editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid b/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid index 12d371145..d46890d66 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid @@ -1,5 +1,5 @@ created: 20150414070451144 -list: [[HelloThumbnail - TiddlyWiki Newsletter]] [[HelloThumbnail - Introduction Video]] [[HelloThumbnail - Grok TiddlyWiki]] [[HelloThumbnail - Latest Version]] [[HelloThumbnail - TiddlyWikiLinks]] [[HelloThumbnail - Developers]] [[HelloThumbnail - Funding]] [[HelloThumbnail - Marketplace]] [[HelloThumbnail - Federatial]] +list: [[HelloThumbnail - Newsletter]] [[HelloThumbnail - Introduction Video]] [[HelloThumbnail - Grok TiddlyWiki]] [[HelloThumbnail - Latest Version]] [[HelloThumbnail - TiddlyWikiLinks]] [[HelloThumbnail - Developers]] [[HelloThumbnail - Funding]] [[HelloThumbnail - Marketplace]] [[HelloThumbnail - Federatial]] modified: 20150414070948246 title: HelloThumbnail type: text/vnd.tiddlywiki From dc225da1ff63fc6fa1c07b98198d7bb1b8f3af0f Mon Sep 17 00:00:00 2001 From: Pippo Peppo <abc@gmx.ch> Date: Sat, 14 Jan 2023 17:55:40 +0100 Subject: [PATCH 224/937] Update italian language file (#7209) * Update italian language file * Update italian language file --- languages/it-IT/Fields.multids | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/languages/it-IT/Fields.multids b/languages/it-IT/Fields.multids index b9c3b17de..b3afebf32 100644 --- a/languages/it-IT/Fields.multids +++ b/languages/it-IT/Fields.multids @@ -2,17 +2,19 @@ title: $:/language/Docs/Fields/ _canonical_uri: L'URI completo di un frammento immagine esterno _is_skinny: Se presente, indica che il campo di testo del frammento deve essere caricato dal server +author: Il nome dell'autore di un plugin bag: Il nome del contenitore da cui proviene un frammento -caption: Il testo che è visualizzato in un tab o in un pulsante +caption: Il testo che è visualizzato in un tab o in un pulsante code-body: Il modello di visualizzazione visualizzerà il frammento come codice se impostato su ''sì'' color: Il codice CSS del colore associato ad un frammento component: Il nome del componente responsabile per un [[frammento di avviso|AlertMechanism]] -created: La data in cui il frammento è stato creato +core-version: Per un plugin, indica con quale versione di TiddlyWiki è compatibile +created: La data in cui il frammento è stato creato creator: Il nome della persona che ha creato il frammento current-tiddler: Utilizzato per memorizzare nella cache il frammento in alto nella [[cronologia|HistoryMechanism]] dependents: Per un plugin, elenca i titoli dei plugin dipendenti -description: Il testo descrittivo per un plugin o per una modalità a dialogo -draft.of: Per i frammenti bozza, contiene il titolo del frammento di cui questo è una bozza +description: Il testo descrittivo per un plugin o per una modalità a dialogo +draft.of: Per i frammenti bozza, contiene il titolo del frammento di cui questo è una bozza draft.title: Per i frammenti bozza, contiene la proposta di nuovo titolo per il frammento footer: Il testo del footer per una finestra modale hide-body: Il modello di visualizzazione nasconderà i corpi dei frammenti se impostato su ''sì'' @@ -20,11 +22,13 @@ icon: Il titolo del frammento che contiene l'icona associata con il frammento library: Indica che il frammento deve essere salvato come una libreria JavaScript se impostato su ''sì'' list: Una lista ordinata di titoli di frammenti associati con un frammento list-after: Se impostato, il titolo del frammento dopo il quale questo frammento deve essere aggiunto all'elenco ordinato dei titoli dei frammenti, o alla fine dell'elenco se questo campo è presente ma vuoto -list-before: Se impostato, il titolo del frammento prima del quale questo frammento deve essere aggiunto all'elenco ordinato dei titoli dei frammenti, o all'inizio della lista se questo campo è presente ma vuoto -modified: La data e l'ora in cui un frammento è stato modificato l'ultima volta +list-before: Se impostato, il titolo del frammento prima del quale questo frammento deve essere aggiunto all'elenco ordinato dei titoli dei frammenti, o all'inizio della lista se questo campo è presente ma vuoto +modified: La data e l'ora in cui un frammento è stato modificato l'ultima volta modifier: Il titolo del frammento associato con la persona che ha modificato un frammento l'ultima volta +module-type: Per i frammenti javascript, specifica di che tipo di modulo si tratta name: Il nome leggibile associato con un frammento plugin -plugin-priority: Un valore numerico che indica la priorità di un frammento plugin +parent-plugin: Per un plugin, specifica il plugin di cui è un sotto-plugin +plugin-priority: Un valore numerico che indica la priorità di un frammento plugin plugin-type: Il tipo di plugin di un frammento plugin released: La data di rilascio di un TiddlyWiki revision: La revisione del frammento mantenuta sul server From c39ef398bffae12c0ed7324d9b6d9d29f0f2f9ff Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 15 Jan 2023 18:55:36 +0000 Subject: [PATCH 225/937] Share plugin: decode the URI component before checking for the leading hash sign MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Should compensate for the mangling we get from Discourse – see https://talk.tiddlywiki.org/t/revived-share-plugin/5887 --- plugins/tiddlywiki/share/rawmarkup.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/plugins/tiddlywiki/share/rawmarkup.js b/plugins/tiddlywiki/share/rawmarkup.js index c0ab77659..264f7fc73 100644 --- a/plugins/tiddlywiki/share/rawmarkup.js +++ b/plugins/tiddlywiki/share/rawmarkup.js @@ -13,19 +13,17 @@ Read tiddlers from the browser location hash "use strict"; // Get the hash -var rawHash = document.location.hash.substring(1); -if(rawHash.charAt(0) === "#") { - var hash; - try{ - hash = decodeURIComponent(rawHash.substring(1)); - } catch(ex) { - console.log("Share plugin: Error decoding location hash",ex); - } +var hash; +try { + hash = decodeURIComponent(document.location.hash.substring(1)); +} catch(e) { +} +if(hash && hash.charAt(0) === "#") { // Try to parse the hash as JSON if(hash) { var tiddlers; try { - tiddlers= JSON.parse(hash); + tiddlers= JSON.parse(hash.substr(1)); } catch(ex) { console.log("Share plugin: Error parsing JSON from location hash",ex); } From c0615e20ecf7d5d5e66d8a2acd28b80e8d59688d Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 15 Jan 2023 20:22:52 +0000 Subject: [PATCH 226/937] Revert "Fix table overflow for small screens (#7010)" This reverts commit 2db886793e095ef3040cae197936356b0f474ccd. --- themes/tiddlywiki/vanilla/base.tid | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index bcb6954ec..baf195107 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -30,10 +30,6 @@ background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}` <$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/> \end -\define tiddler-width() - <$text text={{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}}/> -\end - \define if-fluid-fixed(text,hiddenSidebarText) <$reveal state="$:/themes/tiddlywiki/vanilla/options/sidebarlayout" type="match" text="fluid-fixed"> $text$ @@ -146,7 +142,7 @@ pre { display: block; margin-top: 1em; margin-bottom: 1em; - word-break: break-word; + word-break: normal; word-wrap: break-word; white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}}; background-color: <<colour pre-background>>; @@ -1161,28 +1157,6 @@ button.tc-btn-invisible.tc-remove-tag-button { } } - -/* prevent overflow for table content for small screens*/ -@media (max-width: <<sidebarbreakpoint>>) { - .tc-tiddler-frame tr { - word-wrap: anywhere; - } - - .tc-tiddler-frame table blockquote { - margin-left: 12.5px; - margin-right: 12.5px; - } - - .tc-tiddler-frame table dd { - margin-left: 12.5px; - } - - .tc-tiddler-frame table ol, - .tc-tiddler-frame table ul { - padding-left: 20px; - } -} - .tc-site-title, .tc-titlebar { font-weight: normal; From 4d040d2499e51adba369562e1f8e0d547cfb334f Mon Sep 17 00:00:00 2001 From: twMat <boardsmm@gmail.com> Date: Mon, 16 Jan 2023 13:56:51 +0100 Subject: [PATCH 227/937] Docs: Update is.tid (#7213) Ref [discussion](https://talk.tiddlywiki.org/t/filter-q-is-tiddler-or-shadow-how/5888) --- editions/tw5.com/tiddlers/filters/is.tid | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/filters/is.tid b/editions/tw5.com/tiddlers/filters/is.tid index a38f8315f..cc23a9598 100644 --- a/editions/tw5.com/tiddlers/filters/is.tid +++ b/editions/tw5.com/tiddlers/filters/is.tid @@ -33,6 +33,8 @@ If <<.place C>> is anything else an error message is returned. <<.from-version " When <<.op is[missing]>> is the first operator in a [[run|Filter Run]], its output is always empty. And when <<.op is[shadow]>> comes first, it outputs only those shadow tiddlers that have been overridden. This is because the [[initial input to a run|Filter Expression]] contains only <<.em non>>-shadow tiddlers. -The <<.olink all>> operator is similar, but its scope is the whole wiki. +<<.tip "Use `has[title]` to match any tiddler title that is either a tiddler //or// a shadow tiddler.">> -<<.operator-examples "is">> \ No newline at end of file +The <<.olink all>> operator is similar to <<.olink is>>, but its scope is the whole wiki. + +<<.operator-examples "is">> From 34643a42790777f1b235f57b5093bb29bd0b3a14 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 16 Jan 2023 13:21:40 +0000 Subject: [PATCH 228/937] Add icon to default page layout and show in switcher Thanks @linonetwo Fixes #7197 --- core/ui/LayoutSwitcher.tid | 4 ++-- core/ui/PageTemplate.tid | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/ui/LayoutSwitcher.tid b/core/ui/LayoutSwitcher.tid index 2c5243553..0f7e3f15e 100644 --- a/core/ui/LayoutSwitcher.tid +++ b/core/ui/LayoutSwitcher.tid @@ -13,13 +13,13 @@ caption: {{$:/language/ControlPanel/LayoutSwitcher/Caption}} <$set name="cls" filter="[all[current]field:title{$:/layout}]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item"> <div class=<<cls>>> <$link to={{!!title}}> - ''<$transclude field="name"/>'' - <$transclude field="description"/> + ''<$transclude tiddler={{{ [<currentTiddler>get[icon]] }}}/><$transclude field="name"/>'' - <$transclude field="description"/> </$link></div></$set> """> <$set name="cls" filter="[all[current]field:title[$:/core/ui/PageTemplate]]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item"> <div class=<<cls>>> <$link to={{!!title}}> -''<$transclude field="name"/>'' - <$transclude field="description"/> +''<$transclude tiddler={{{ [<currentTiddler>get[icon]] }}}/><$transclude field="name"/>'' - <$transclude field="description"/> </$link> </div> </$set> diff --git a/core/ui/PageTemplate.tid b/core/ui/PageTemplate.tid index c9e929551..892e1b166 100644 --- a/core/ui/PageTemplate.tid +++ b/core/ui/PageTemplate.tid @@ -1,6 +1,7 @@ title: $:/core/ui/PageTemplate name: {{$:/language/PageTemplate/Name}} description: {{$:/language/PageTemplate/Description}} +icon: $:/core/images/layout-button \whitespace trim \import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]] From 0039c2134bfa9266c879079cdcef91e455b4217d Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 16 Jan 2023 14:05:36 +0000 Subject: [PATCH 229/937] Use correct image for Mastodon link --- editions/tw5.com/tiddlers/hellothere/HelloThere.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index bcb85c071..d80da69c4 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -32,7 +32,7 @@ Unlike conventional online services, TiddlyWiki lets you choose where to keep yo {{$:/core/images/twitter}} Twitter </a> <a rel="me" href="https://fosstodon.org/@TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#2b90d9;" target="_blank" rel="noopener noreferrer"> -{{$:/core/images/globe}} Mastodon +{{$:/core/images/mastodon}} Mastodon </a> <a href="https://github.com/Jermolene/TiddlyWiki5" class="tc-btn-big-green" style="border-radius:4px;background-color:#444;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/github}} ~GitHub From fecb7edca4068173c6054fe337c2265959ea8dcd Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Mon, 16 Jan 2023 19:34:02 +0000 Subject: [PATCH 230/937] Fix typo in messagecatcher widget I think this was a copy-paste error, but would appreciate other eyes on this... --- core/modules/widgets/messagecatcher.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/widgets/messagecatcher.js b/core/modules/widgets/messagecatcher.js index 85a3561f2..1457cd11f 100644 --- a/core/modules/widgets/messagecatcher.js +++ b/core/modules/widgets/messagecatcher.js @@ -82,7 +82,7 @@ MessageCatcherWidget.prototype.render = function(parent,nextSibling) { } }); // Render children - this.renderChildren(parent,null); + this.renderChildren(parent,nextSibling); }; /* From 166f68cc15f2b85371efae2effae7a051c4b5308 Mon Sep 17 00:00:00 2001 From: yaisog <m@rcuswinter.de> Date: Tue, 17 Jan 2023 13:31:07 +0100 Subject: [PATCH 231/937] Improve \parsermode documentation (#7214) --- editions/tw5.com/tiddlers/concepts/Pragma.tid | 6 ++++-- .../tiddlers/pragmas/Pragma_ _parsermode.tid | 16 ++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/editions/tw5.com/tiddlers/concepts/Pragma.tid b/editions/tw5.com/tiddlers/concepts/Pragma.tid index 05a29a2cc..4c39b022c 100644 --- a/editions/tw5.com/tiddlers/concepts/Pragma.tid +++ b/editions/tw5.com/tiddlers/concepts/Pragma.tid @@ -1,5 +1,5 @@ created: 20150219175930000 -modified: 20220122182842041 +modified: 20230117112239663 tags: Concepts [[WikiText Parser Modes]] title: Pragma type: text/vnd.tiddlywiki @@ -17,4 +17,6 @@ The following pragmas are available: ;`\whitespace trim` or `\whitespace notrim` : <<.from-version "5.1.15">> Control whether whitespace is trimmed from the start and end of text runs (the default is ''notrim''). This setting can be useful when the whitespace generated by linebreaks disturbs formatting ;`\import <filter-expression>` -: <<.from-version "5.1.18">> for importing macro definitions from tiddlers identified by a filter expression +: <<.from-version "5.1.18">> Import macro definitions from tiddlers identified by a filter expression +;`\parsermode block` or `\parsermode inline` +: <<.from-version "5.2.4">> Adjust whether the remaining text is parsed in block mode or inline mode. \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/pragmas/Pragma_ _parsermode.tid b/editions/tw5.com/tiddlers/pragmas/Pragma_ _parsermode.tid index 2b0444ef4..13574551a 100644 --- a/editions/tw5.com/tiddlers/pragmas/Pragma_ _parsermode.tid +++ b/editions/tw5.com/tiddlers/pragmas/Pragma_ _parsermode.tid @@ -1,17 +1,13 @@ created: 20221123223127425 -modified: 20221123223127425 -tags: Pragmas +modified: 20230117112244779 +tags: Pragma title: Pragma: \parsermode type: text/vnd.tiddlywiki -The ''\parsermode'' [[pragma|Pragmas]] adjusts whether the remaining text is parsed in block mode or inline mode. See [[WikiText Parser Modes]] for details of parser modes. +<<.from-version "5.2.4">> -``` -\parsermode block|inline -``` +The ''\parsermode'' [[pragma|Pragma]] adjusts whether the remaining text is parsed in block mode or inline mode. See [[WikiText Parser Modes]] for details of parser modes. -For example: +As with all pragmas, setting the parser mode this way can only be done at the start of text, not within the main body of the text. -``` -\parsermode inline -``` +;`\parsermode block` or `\parsermode inline` From 8f7441f296351a4dd0852c3c782f8874d398e052 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 17 Jan 2023 14:34:06 +0000 Subject: [PATCH 232/937] Share plugin: Further fixes to c39ef398bffae12c0ed7324d9b6d9d29f0f2f9ff See https://talk.tiddlywiki.org/t/revived-share-plugin/5887/14 Thanks @btheado --- boot/boot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot/boot.js b/boot/boot.js index aeaa919fe..1a06c843f 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -313,7 +313,7 @@ $tw.utils.getLocationHash = function() { var idx = href.indexOf('#'); if(idx === -1) { return "#"; - } else if(idx < href.length-1 && href[idx+1] === '#') { + } else if(href.substr(idx + 1,1) === "#" || href.substr(idx + 1,3) === "%23") { // Special case: ignore location hash if it itself starts with a # return "#"; } else { From e41511c6523d58b3fce92b2cc55a6a2b87c6f9cd Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Tue, 17 Jan 2023 15:57:49 +0100 Subject: [PATCH 233/937] make core/ui/MoreSideBar/Tags look nice in the story river (#7212) --- core/ui/MoreSideBar/Tags.tid | 27 +++++++++------------------ core/ui/UntaggedTemplate.tid | 8 +++----- themes/tiddlywiki/vanilla/base.tid | 11 ++++++++--- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/core/ui/MoreSideBar/Tags.tid b/core/ui/MoreSideBar/Tags.tid index 6eeb010be..0a4727bc3 100644 --- a/core/ui/MoreSideBar/Tags.tid +++ b/core/ui/MoreSideBar/Tags.tid @@ -2,26 +2,17 @@ title: $:/core/ui/MoreSideBar/Tags tags: $:/tags/MoreSideBar caption: {{$:/language/SideBar/Tags/Caption}} -<$set name="tv-config-toolbar-icons" value="yes"> - -<$set name="tv-config-toolbar-text" value="yes"> - -<$set name="tv-config-toolbar-class" value=""> - -{{$:/core/ui/Buttons/tag-manager}} - -</$set> - -</$set> - -</$set> +\whitespace trim +<$let tv-config-toolbar-icons="yes" tv-config-toolbar-text="yes" tv-config-toolbar-class=""> + <div class="tc-tiny-v-gap-bottom"> + {{$:/core/ui/Buttons/tag-manager}} + </div> +</$let> <$list filter={{$:/core/Filters/AllTags!!filter}}> - -<$transclude tiddler="$:/core/ui/TagTemplate"/> - + <div class="tc-tiny-v-gap-bottom"> + <$transclude tiddler="$:/core/ui/TagTemplate"/> + </div> </$list> - <hr class="tc-untagged-separator"> - {{$:/core/ui/UntaggedTemplate}} diff --git a/core/ui/UntaggedTemplate.tid b/core/ui/UntaggedTemplate.tid index 95ebcd695..d5cd97006 100644 --- a/core/ui/UntaggedTemplate.tid +++ b/core/ui/UntaggedTemplate.tid @@ -3,10 +3,8 @@ title: $:/core/ui/UntaggedTemplate \define lingo-base() $:/language/SideBar/ \whitespace trim <$button popup=<<qualify "$:/state/popup/tag">> class="tc-btn-invisible tc-untagged-label tc-tag-label"> -<<lingo Tags/Untagged/Caption>> + <<lingo Tags/Untagged/Caption>> </$button> -<$reveal state=<<qualify "$:/state/popup/tag">> type="popup" position="below"> -<div class="tc-drop-down"> -<$list filter="[untagged[]!is[system]] -[tags[]] +[sort[title]]" template="$:/core/ui/ListItemTemplate"/> -</div> +<$reveal class="tc-drop-down" tag="div" state=<<qualify "$:/state/popup/tag">> type="popup" position="below"> + <$list filter="[untagged[]!is[system]] -[tags[]] +[sort[title]]" template="$:/core/ui/ListItemTemplate"/> </$reveal> diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index baf195107..027541cc7 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -814,9 +814,6 @@ button.tc-tag-label, span.tc-tag-label { } .tc-untagged-separator { - width: 10em; - left: 0; - margin-left: 0; border: 0; height: 1px; background: <<colour tab-divider>>; @@ -3137,6 +3134,8 @@ select { ** Other utility classes */ +/* Horizontal gaps */ + .tc-tiny-gap { margin-left: .25em; margin-right: .25em; @@ -3179,3 +3178,9 @@ select { .tc-word-break { word-break: break-all; } + +/* Vertical gaps */ + +.tc-tiny-v-gap-bottom { + margin-bottom: 3px; +} \ No newline at end of file From c51816e8260e1423a0b415c041d40f711ca10422 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Tue, 17 Jan 2023 16:02:57 +0100 Subject: [PATCH 234/937] Fix pasting of multiple types at once (#6622) * wip fix dropzone closure variable problem * just a new commit to autocreate at test wiki --- core/modules/widgets/dropzone.js | 51 ++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/core/modules/widgets/dropzone.js b/core/modules/widgets/dropzone.js index efa08162c..729ad26ed 100644 --- a/core/modules/widgets/dropzone.js +++ b/core/modules/widgets/dropzone.js @@ -232,10 +232,32 @@ DropZoneWidget.prototype.handleDropEvent = function(event) { }; DropZoneWidget.prototype.handlePasteEvent = function(event) { - var self = this, - readFileCallback = function(tiddlerFieldsArray) { + var self = this; + var readFileCallback = function(tiddlerFieldsArray) { self.readFileCallback(tiddlerFieldsArray); }; + var getItem = function(type) { + type = type || "text/plain"; + return function(str) { + // Use the deserializer specified if any + if(self.dropzoneDeserializer) { + tiddlerFields = self.wiki.deserializeTiddlers(null,str,{title: self.wiki.generateNewTitle("Untitled " + type)},{deserializer:self.dropzoneDeserializer}); + if(tiddlerFields && tiddlerFields.length) { + readFileCallback(tiddlerFields); + } + } else { + tiddlerFields = { + title: self.wiki.generateNewTitle("Untitled " + type), + text: str, + type: type + }; + if($tw.log.IMPORT) { + console.log("Importing string '" + str + "', type: '" + type + "'"); + } + readFileCallback([tiddlerFields]); + } + } + }; // Let the browser handle it if we're in a textarea or input box if(["TEXTAREA","INPUT"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) { var self = this, @@ -251,27 +273,10 @@ DropZoneWidget.prototype.handlePasteEvent = function(event) { }); } else if(item.kind === "string") { // Create tiddlers from string items - var tiddlerFields, - type = item.type; - item.getAsString(function(str) { - // Use the deserializer specified if any - if(self.dropzoneDeserializer) { - tiddlerFields = self.wiki.deserializeTiddlers(null,str,{title: self.wiki.generateNewTitle("Untitled")},{deserializer:self.dropzoneDeserializer}); - if(tiddlerFields && tiddlerFields.length) { - readFileCallback(tiddlerFields); - } - } else { - tiddlerFields = { - title: self.wiki.generateNewTitle("Untitled"), - text: str, - type: type - }; - if($tw.log.IMPORT) { - console.log("Importing string '" + str + "', type: '" + type + "'"); - } - readFileCallback([tiddlerFields]); - } - }); + var tiddlerFields; + // It's important to give getAsString a closure with the right type + // So it can be added to the import queue + item.getAsString(getItem(item.type)); } } // Tell the browser that we've handled the paste From db88eed88f5fa8db9390e1288dd4c673c70e6fe5 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Tue, 17 Jan 2023 17:45:51 +0100 Subject: [PATCH 235/937] Improve docs for genesis-widget (#7174) * Improve docs for genesis-widget * improve wording * use <<.attr macro instead of <<.param --- .../tiddlers/widgets/GenesisWidget.tid | 24 ++++++++++++------- .../tiddlers/wikitext/HTML in WikiText.tid | 11 +++++++-- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid index 4f60c96dc..acc4c36ec 100644 --- a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid @@ -1,34 +1,34 @@ caption: genesis created: 20221101100729587 -modified: 20221101100729587 +modified: 20230115101800345 tags: Widgets title: GenesisWidget type: text/vnd.tiddlywiki ! Introduction -<<.from-version "5.2.4">> The <<.wlink GenesisWidget>> widget allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance. +<<.from-version "5.2.4">> The <<.wid genesis>> widget allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance. ! Content and Attributes -The content of the <<.wlink GenesisWidget>> widget is used as the content of the dynamically created widget. +The content of the <<.wid genesis>> widget is used as the content of the dynamically created widget. |!Attribute |!Description | |$type |The type of widget or element to create (an initial `$` indicates a widget, otherwise an HTML element will be created) | |$names |An optional filter evaluating to the names of a list of attributes to be applied to the widget | -|$values |An optional filter evaluating to the values corresponding to the list of names specified in `$names` | +|$values |An optional filter evaluating to the values corresponding to the list of names specified in <<.attr $names>> | |//{other attributes starting with $}// |Other attributes starting with a single dollar sign are reserved for future use | |//{attributes starting with $$}// |Attributes starting with two dollar signs are applied as attributes to the output widget, but with the attribute name changed to use a single dollar sign | |//{attributes not starting with $}// |Any other attributes that do not start with a dollar are applied as attributes to the output widget | -Note that attributes explicitly specified take precedence over attributes with the same name specified in the `$names` filter. +<<.tip """Note that attributes explicitly specified take precedence over attributes with the same name specified in the <<.attr $names>> filter.""">> ! Examples -<$macrocall $name='wikitext-example-without-html' -src='<$genesis $type="div" class="tc-thing" label="Squeak">Mouse</$genesis>'/> +<$macrocall $name="wikitext-example" +src="""<$genesis $type="div" class="tc-thing" label="Squeak">Mouse</$genesis>"""/> -<$macrocall $name='wikitext-example-without-html' +<$macrocall $name="wikitext-example" src="""\define my-banner(mode:"inline",caption) <$genesis $type={{{ [<__mode__>match[inline]then[span]else[div]] }}} class="tc-mybanner"> <<__caption__>> @@ -39,3 +39,11 @@ src="""\define my-banner(mode:"inline",caption) <<my-banner mode:"block" caption:"I'm in a DIV">> """/> + +! Important + +<$macrocall $name=".warning" _=""" +In the following example the widget attribute named `one` is absent from the HTML output, since HTML attributes with the prefix `on` are removed for security reasons. See [[HTML in WikiText]] "Security" for more details. + +<<wikitext-example '<$genesis $type="my-element" $names="one two" $values="1 2">Test Genesis Widget</$genesis>'>> +"""/> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid index 544c3c5fc..ea926336d 100644 --- a/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid @@ -1,6 +1,6 @@ caption: HTML created: 20131205160816081 -modified: 20220123174919252 +modified: 20230115100934146 tags: WikiText title: HTML in WikiText type: text/vnd.tiddlywiki @@ -31,7 +31,14 @@ some text <!-- inline comment --> ! Important -<<.tip """[[Widgets share the same syntax as HTML tags|Widgets in WikiText]], and so the following information applies to them, too.""">> +!! Security + +<<.warning """Every HTML attribute prefixed with `on` is removed from rendered HTML content for security reasons. eg: `onclick="some evil code"` would be executed, if no sanitation is active. In ~TiddlyWiki It's important to remove every attribute prefixed with `on` so future extensions to the HTML spec will be secure by default. This can lead to some inconvenience since custom attributes like eg: `one` are removed too. """>> + +!! Widgets + +<<.tip """[[Widgets share the same syntax as HTML tags|Widgets in WikiText]]<br>and so the following information applies to them, too.""">> + ! Block mode versus Inline mode From 45468285413ca4b5564e74c3832724b796716657 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 17 Jan 2023 16:56:25 +0000 Subject: [PATCH 236/937] Genesis widget rewording --- editions/tw5.com/tiddlers/widgets/GenesisWidget.tid | 3 +-- editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid index acc4c36ec..e37183c8a 100644 --- a/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid @@ -43,7 +43,6 @@ src="""\define my-banner(mode:"inline",caption) ! Important <$macrocall $name=".warning" _=""" -In the following example the widget attribute named `one` is absent from the HTML output, since HTML attributes with the prefix `on` are removed for security reasons. See [[HTML in WikiText]] "Security" for more details. +In the following example the widget attribute named `one` is not present in the HTML output. This is because HTML attributes starting with the prefix `on` are removed for security reasons. See [[HTML in WikiText]] "Security" for more details. This restriction only affects generated HTML elements, and does not prevent the use of attributes prefixed `on` with other widgets"""/> <<wikitext-example '<$genesis $type="my-element" $names="one two" $values="1 2">Test Genesis Widget</$genesis>'>> -"""/> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid index ea926336d..15d8b0a2f 100644 --- a/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid @@ -33,7 +33,7 @@ some text <!-- inline comment --> !! Security -<<.warning """Every HTML attribute prefixed with `on` is removed from rendered HTML content for security reasons. eg: `onclick="some evil code"` would be executed, if no sanitation is active. In ~TiddlyWiki It's important to remove every attribute prefixed with `on` so future extensions to the HTML spec will be secure by default. This can lead to some inconvenience since custom attributes like eg: `one` are removed too. """>> +<<.warning """Note that any HTML attributes prefixed with `on` are removed from the rendered HTML content. This is done to prevent event handlers (such as "onclick") being used as a clandestine way to execute untrusted JavaScript. A design goal of TiddlyWiki is to ensure that executable JavaScript can only enter the system through explicit JavaScript module tiddlers or raw markup tiddlers. This makes it possible to filter unsafe content in multiuser environments, and also makes it safer to copy untrusted wikitext examples.""">> !! Widgets From 5bf60cd26f835c92ca6bc4152eea80861b167872 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 17 Jan 2023 16:56:52 +0000 Subject: [PATCH 237/937] Remove some contractions that have crept in They do not belong in technical documentation --- editions/tw5.com/tiddlers/filters/indexes.tid | 2 +- editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid | 2 +- editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/editions/tw5.com/tiddlers/filters/indexes.tid b/editions/tw5.com/tiddlers/filters/indexes.tid index 44b5fbf50..a65784118 100644 --- a/editions/tw5.com/tiddlers/filters/indexes.tid +++ b/editions/tw5.com/tiddlers/filters/indexes.tid @@ -11,7 +11,7 @@ op-output: all the property names or indices contained in the input data tiddler Each input title is processed in turn, and is ignored if it does not denote a [[data tiddler|DataTiddlers]]. The sorted list of property names is retrieved from the data tiddler and then [[dominantly appended|Dominant Append]] to the operator's output. -Note that behind the scenes, the name/value pairs in a dictionary tiddler are represented as a [[JSON object|JSONTiddlers]]. JSON objects do not maintain a guaranteed ordering and so we can’t reliably retain the ordering of the data in the file. +Note that behind the scenes, the name/value pairs in a dictionary tiddler are represented as a [[JSON object|JSONTiddlers]]. JSON objects do not maintain a guaranteed ordering and so we cannot reliably retain the ordering of the data in the file. Where the content of a tiddler is in JSON format with an array as its root, the <<.op indexes>> operator retrieves a selection of integer indices instead. diff --git a/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid b/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid index fe10ad98e..63959a1d6 100644 --- a/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid +++ b/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid @@ -34,7 +34,7 @@ Lightweight, portable and easy to use solutions * ~SharePoint / ~OneDrive for Windows ** Save your ~TiddlyWiki file with an `.aspx` extension ** Copy it to a ~SharePoint/~OneDrive for Business sync'd library -** As long as ~WebDAV hasn’t been disabled, renaming single-file wiki from .html to .aspx “just works” when stored in one of these folders +** As long as ~WebDAV has not been disabled, renaming single-file wiki from .html to .aspx “just works” when stored in one of these folders ** This //might// work with Mac also. !! OSX diff --git a/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid index 15d8b0a2f..d000cd975 100644 --- a/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid @@ -54,7 +54,7 @@ The following tags are treated as 'void'. This means that `<tag>` is treated as * `<area>`, `<base>`, `<br>`, `<col>`, `<command>`, `<embed>`, `<hr>`, `<img>`, `<input>`, `<keygen>`, `<link>`, `<meta>`, `<param>`, `<source>`, `<track>`, `<wbr>` -If you don’t close any other tag then it will behave as if the missing closing tag were at the end of the tiddler. +If you do not close any other tag then it will behave as if the missing closing tag were at the end of the tiddler. ! Attributes @@ -121,7 +121,7 @@ attr={{tiddler}} attr={{!!field}} attr={{tiddler!!field}} ``` -<<.warning "The attribute's value will be the exact text retrieved from the TextReference. Any wiki syntax in that text will be left as-is.">> +<<.warning "The value of the attribute value will be the exact text retrieved from the TextReference. Any wiki syntax in that text will be left as-is.">> !! Variable Attribute Values @@ -132,7 +132,7 @@ Variable attribute values are indicated with double angle brackets around a [[ma ... </div> ``` -<<.warning "The text from the macro's definition will be retrieved and text substitution will be performed (i.e. <<.param $param$>> and <<.param $(...)$>> syntax). The attribute's value will be the resulting text. Any wiki syntax in that text (including further macro calls and variable references) will be left as-is.">> +<<.warning "The text from the definition of the macro will be retrieved and text substitution will be performed (i.e. <<.param $param$>> and <<.param $(...)$>> syntax). The value of the attribute value will be the resulting text. Any wiki syntax in that text (including further macro calls and variable references) will be left as-is.">> !! Filtered Attribute Values @@ -145,4 +145,4 @@ This example shows how to add a prefix to a value: ``` <$text text={{{ [<currentTiddler>addprefix[$:/myprefix/]] }}} /> ``` -<<.warning "The attribute's value will be the exact text from the first item in the resulting list. Any wiki syntax in that text will be left as-is.">> +<<.warning "The value of the attribute will be the exact text from the first item in the resulting list. Any wiki syntax in that text will be left as-is.">> From af1cc56c0c3f9c933f34278b4b85d43493a11ba8 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Tue, 17 Jan 2023 18:29:08 +0100 Subject: [PATCH 238/937] [DOC] Improve ActionCreateTiddlerWidget documentation (#7202) * [DOC] Improve ActionCreateTiddlerWidget documentation * action-createtitddler improve docs as requested --- .../ActionCreateTiddlerWidget Example 1.tid | 2 +- .../ActionCreateTiddlerWidget Example 2.tid | 2 +- .../ActionCreateTiddlerWidget Example 3.tid | 2 +- .../ActionCreateTiddlerWidget Example 4.tid | 2 +- .../ActionCreateTiddlerWidget Example 5.tid | 32 +++++++++++++++++++ .../widgets/ActionCreateTiddlerWidget.tid | 27 ++++++++++------ .../ActionCreateTiddlerWidget_Example.tid | 2 +- 7 files changed, 55 insertions(+), 14 deletions(-) create mode 100644 editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 5.tid diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 1.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 1.tid index 713b6b156..57aee6673 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 1.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 1.tid @@ -1,6 +1,6 @@ created: 20200131142401129 modified: 20211113230406823 -tags: ActionCreateTiddlerWidget Widgets +tags: ActionCreateTiddlerWidget title: ActionCreateTiddlerWidget Example 1 type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 2.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 2.tid index bfb0d759f..336972a16 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 2.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 2.tid @@ -1,6 +1,6 @@ created: 20200131144828713 modified: 20211113011036840 -tags: ActionCreateTiddlerWidget Widgets +tags: ActionCreateTiddlerWidget title: ActionCreateTiddlerWidget Example 2 type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid index 296b32e74..2e137e330 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid @@ -1,6 +1,6 @@ created: 20200131145355658 modified: 20211113011111052 -tags: ActionCreateTiddlerWidget Widgets +tags: ActionCreateTiddlerWidget title: ActionCreateTiddlerWidget Example 3 type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid index 394bf61a9..1335893e5 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid @@ -1,6 +1,6 @@ created: 20200131150229551 modified: 20211113011129601 -tags: ActionCreateTiddlerWidget Widgets +tags: ActionCreateTiddlerWidget title: ActionCreateTiddlerWidget Example 4 type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 5.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 5.tid new file mode 100644 index 000000000..03f719b8b --- /dev/null +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 5.tid @@ -0,0 +1,32 @@ +created: 20200131144828713 +modified: 20230111220933412 +tags: ActionCreateTiddlerWidget +title: ActionCreateTiddlerWidget Example 5 +type: text/vnd.tiddlywiki + +\define testCreate() +<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template"> + <$action-sendmessage $message="tm-edit-tiddler" $param=<<createTiddler-title>>/> +</$action-createtiddler> +\end + +This example will use the base title defined in [[ActionCreateTiddlerWidget Template]]. + +It will create: "base", "base 1", "base 2" and so on, and navigate to this tiddler in draft mode. + +``` +\define testCreate() +<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template"> + <$action-sendmessage $message="tm-edit-tiddler" $param=<<createTiddler-title>>/> +</$action-createtiddler> +\end + +<$button actions=<<testCreate>> > +Create Tiddler +</$button> +``` + +<$button actions=<<testCreate>> > +<$action-setfield $tiddler="$:/state/tab/sidebar--595412856" text="$:/core/ui/SideBar/Recent"/> +Create Tiddler +</$button> - Clicking this button, will also open the Right sidebar: Recent tab diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid index 56b3e0e27..632b71686 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid @@ -1,35 +1,39 @@ caption: action-createtiddler created: 20161020152745942 -modified: 20210601092956998 +modified: 20230115084716196 tags: Widgets ActionWidgets title: ActionCreateTiddlerWidget type: text/vnd.tiddlywiki ! Introduction -The ''action-createtiddler'' widget is an [[action widget|ActionWidgets]] that creates new tiddlers. ActionWidgets are used within triggering widgets such as the ButtonWidget. +The <<.wid "action-createtiddler">> widget is an [[action widget|ActionWidgets]] that creates new tiddlers. Action widgets are used within triggering widgets such as the ButtonWidget. -There are several differences from the [[tm-new-tiddler message|WidgetMessage: tm-new-tiddler]]: +There are several //differences// from the [[tm-new-tiddler message|WidgetMessage: tm-new-tiddler]]: -* The new tiddler is not automatically displayed in the [[story river|StoryRiver]] +* The new tiddler is not automatically displayed in the [[story river|Story River]] * The title of the new tiddler is made available for subsequent operations ! Content and Attributes The ''action-createtiddler'' widget is invisible. -<<.from-version "5.2.0">> The action widgets contained within the ''action-createtiddler'' widget are executed after the new tiddler has been created with the title of the tiddler in the variable `createTiddler-title` and `createTiddler-draftTitle`. - |!Attribute |!Description | |$basetitle |The initial title that will be attempted. If a tiddler with that title already exists, then a numerical counter is added to the title and incremented until it is unique| -|$savetitle |//(deprecated – see below)// A text reference identifying a field or index into which the title of the newly created tiddler will be stored after it is created | -|$savedrafttitle |//(deprecated – see below)// <<.from-version "5.1.20">> A text reference identifying a field or index into which the draft title associated with the newly created tiddler will be stored after it is created. This is useful when using a sequence of action widgets to create a new tiddler, put it into edit mode, and position it within the list of its parent tag | +|$savetitle |<<.deprecated-since "5.1.20" "ActionCreateTiddlerWidget Example 5">> A text reference identifying a field or index into which the title of the newly created tiddler will be stored after it is created | +|$savedrafttitle |<<.deprecated-since "5.1.20" "ActionCreateTiddlerWidget Example 5">> A text reference identifying a field or index into which the draft title associated with the newly created tiddler will be stored after it is created. This is useful when using a sequence of action widgets to create a new tiddler, put it into edit mode, and position it within the list of its parent tag | |$timestamp |Specifies whether the timestamp(s) of the target tiddler will be updated (''modified'' and ''modifier'', plus ''created'' and ''creator'' for newly created tiddlers). Can be "yes" (the default) or "no" | |$template |<<.from-version "5.1.22">> The title of a template tiddler, that will be used to create a new tiddler | |$overwrite |<<.from-version "5.1.22">> If set to "yes", it will overwrite existing tiddlers. ''Be careful!'' | |//{any attributes not starting with $}// |Each attribute name specifies a field to be created in the new tiddler | -<<.from-version "5.2.0">> Note that the attributes `$savetitle` and `$savedrafttitle` are no longer needed. Instead, any action widgets that need to use the title of the newly created tiddler should be contained within the ''action-createtiddler'' widget, and reference the variables `createTiddler-title` and `createTiddler-draftTitle` to obtain the title. +! Variables + +<<.from-version "5.2.0">> The content of the <<.wid "action-createtiddler">> widget is executed after the new tiddler has been created. The title of the newly created tiddler is stored in the variable <<.var "createTiddler-title">>. + +|!Variables |!Description | +|`createTiddler-title` |The tittle of the tiddler that has been created. See [[ActionCreateTiddlerWidget Example 5]] | +|`createTiddler-draftTitle` |This variable only exists to have feature parity with the deprecated parameters. It contains the title of a "draft tiddler" | ! Examples @@ -61,4 +65,9 @@ The ''action-createtiddler'' widget is invisible. {{ActionCreateTiddlerWidget Example 4}} <<< +--- + +<<< +{{ActionCreateTiddlerWidget Example 5}} +<<< diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid index e1184f00f..2a431ead9 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid @@ -1,6 +1,6 @@ created: 20161020153426686 modified: 20211113011019510 -tags: ActionCreateTiddlerWidget Widgets +tags: ActionCreateTiddlerWidget title: ActionCreateTiddlerWidget Example type: text/vnd.tiddlywiki From 005dfdadf09e588a23a5c775d17c0ced52daebb6 Mon Sep 17 00:00:00 2001 From: fkmiec <fkmiec@gmail.com> Date: Tue, 17 Jan 2023 16:12:18 -0600 Subject: [PATCH 239/937] Automatic sync of tiddler changes in browser storage when sync connection is re-established (#7169) * Add automatic sync of tiddler changes in browswer-storage on restoration of server connection in tiddlywebadaptor * Fix issue with new tiddlers not being synced. * Fix issue with new tiddlers not being synced. * Added logging * Modified browser-storage plugin. Refactored into utility class. * Modified browser-storage plugin. Refactored into utility class. * Fix: browser storage config tiddler created on load only if not already exists * Fix: Removed extra indent in util.js --- .../tiddlywiki/browser-storage/rawmarkup.js | 1 - plugins/tiddlywiki/browser-storage/startup.js | 78 +++---------- plugins/tiddlywiki/browser-storage/util.js | 106 ++++++++++++++++++ .../tiddlywiki/tiddlyweb/tiddlywebadaptor.js | 12 ++ 4 files changed, 134 insertions(+), 63 deletions(-) create mode 100644 plugins/tiddlywiki/browser-storage/util.js diff --git a/plugins/tiddlywiki/browser-storage/rawmarkup.js b/plugins/tiddlywiki/browser-storage/rawmarkup.js index ad788476b..bf7c41e0a 100644 --- a/plugins/tiddlywiki/browser-storage/rawmarkup.js +++ b/plugins/tiddlywiki/browser-storage/rawmarkup.js @@ -14,7 +14,6 @@ $tw = window.$tw || Object.create(null); $tw.hooks = $tw.hooks || { names: {}}; $tw.boot = $tw.boot || {}; $tw.boot.preloadDirty = $tw.boot.preloadDirty || []; - // Hook the point in the startup process when the tiddlers have been loaded but plugins not unpacked var hookName = "th-boot-tiddlers-loaded"; if(Object.prototype.hasOwnProperty.call($tw.hooks.names,hookName)) { diff --git a/plugins/tiddlywiki/browser-storage/startup.js b/plugins/tiddlywiki/browser-storage/startup.js index 33989e8a7..69cc5119e 100644 --- a/plugins/tiddlywiki/browser-storage/startup.js +++ b/plugins/tiddlywiki/browser-storage/startup.js @@ -19,19 +19,29 @@ exports.after = ["startup"]; exports.synchronous = true; var ENABLED_TITLE = "$:/config/BrowserStorage/Enabled", - SAVE_FILTER_TITLE = "$:/config/BrowserStorage/SaveFilter", - QUOTA_EXCEEDED_ALERT_TITLE = "$:/config/BrowserStorage/QuotaExceededAlert", - DEFAULT_QUOTA_EXCEEDED_ALERT_PREFIX = "Quota exceeded attempting to store `", - DEFAULT_QUOTA_EXCEEDED_ALERT_SUFFIX = "` in browser local storage"; + SAVE_FILTER_TITLE = "$:/config/BrowserStorage/SaveFilter"; + +var BrowserStorageUtil = require("$:/plugins/tiddlywiki/browser-storage/util.js").BrowserStorageUtil; exports.startup = function() { var self = this; + + // If not exists, add ENABLED tiddler with default value "yes" + if(!$tw.wiki.getTiddler(ENABLED_TITLE)) { + $tw.wiki.addTiddler({title: ENABLED_TITLE, text: "yes"}); + } // Compute our prefix for local storage keys var prefix = "tw5#" + window.location.pathname + "#"; // Make a logger var logger = new $tw.utils.Logger("browser-storage",{ colour: "cyan" }); + // Add browserStorage object to $tw + $tw.browserStorage = new BrowserStorageUtil($tw.wiki,{ + enabledTitle: ENABLED_TITLE, + prefix: prefix, + logger: logger + }); // Function to compile the filter var filterFn, compileFilter = function() { @@ -41,7 +51,7 @@ exports.startup = function() { // Listen for tm-clear-browser-storage messages $tw.rootWidget.addEventListener("tm-clear-browser-storage",function(event) { $tw.wiki.addTiddler({title: ENABLED_TITLE, text: "no"}); - clearLocalStorage(); + $tw.browserStorage.clearLocalStorage(); }); // Track tiddler changes $tw.wiki.addEventListener("change",function(changes) { @@ -67,65 +77,9 @@ exports.startup = function() { return; } // Save the tiddler - saveTiddlerToLocalStorage(title,{ - logger: logger, - prefix: prefix - }); + $tw.browserStorage.saveTiddlerToLocalStorage(title); }); }); }; -function saveTiddlerToLocalStorage(title,options) { - options = options || {}; - // Get the tiddler - var tiddler = $tw.wiki.getTiddler(title); - if(tiddler) { - console.log("browser-storage: Saving",title); - // Get the JSON of the tiddler - var json = JSON.stringify(tiddler.getFieldStrings()); - // Try to save it to local storage - try { - window.localStorage.setItem(options.prefix + title,json); - } catch(e) { - if(e.name === "QuotaExceededError") { - // Complain if we failed - var msg = $tw.wiki.getTiddlerText(QUOTA_EXCEEDED_ALERT_TITLE,DEFAULT_QUOTA_EXCEEDED_ALERT_PREFIX + title + DEFAULT_QUOTA_EXCEEDED_ALERT_SUFFIX); - if(options.logger) { - options.logger.alert(msg); - } - // No point in keeping old values around for this tiddler - window.localStorage.removeItem(options.prefix + title); - } else { - console.log("Browser-storage error:",e); - } - } - } else { - // In local storage, use the special value of empty string to mark the tiddler as deleted - // On future page loads, if the tiddler is already gone from startup then the blank entry - // will be removed from localstorage. Otherwise, the tiddler will be deleted. - console.log("browser-storage: Blanking",title); - try { - window.localStorage.setItem(options.prefix + title, ""); - } catch(e) { - console.log("Browser-storage error:",e); - } - } -} - -function clearLocalStorage() { - var url = window.location.pathname, - log = []; - // Step through each browser storage item - if(window.localStorage) { - for(var index=window.localStorage.length - 1; index>=0; index--) { - var key = window.localStorage.key(index), - parts = key.split("#"); - // Delete it if it is ours - if(parts[0] === "tw5" && parts[1] === url) { - window.localStorage.removeItem(key); - } - } - } -} - })(); diff --git a/plugins/tiddlywiki/browser-storage/util.js b/plugins/tiddlywiki/browser-storage/util.js new file mode 100644 index 000000000..a88c358f6 --- /dev/null +++ b/plugins/tiddlywiki/browser-storage/util.js @@ -0,0 +1,106 @@ +/*\ +title: $:/plugins/tiddlywiki/browser-storage/util.js +type: application/javascript +module-type: library + +Utility methods for browser-storage plugin + +\*/ + +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +function BrowserStorageUtil(wiki,options) { + this.options = options || {}; + this.wiki = wiki; + this.cachedTiddlers = []; + this.QUOTA_EXCEEDED_ALERT_TITLE = "$:/config/BrowserStorage/QuotaExceededAlert"; + this.DEFAULT_QUOTA_EXCEEDED_ALERT_PREFIX = "Quota exceeded attempting to store `"; + this.DEFAULT_QUOTA_EXCEEDED_ALERT_SUFFIX = "` in browser local storage"; +} + +BrowserStorageUtil.prototype.isEnabled = function() { + return $tw.wiki.getTiddlerText(this.options.enabledTitle) === "yes"; +}; + +BrowserStorageUtil.prototype.cachePreloadTiddlers = function() { + var self = this; + $tw.utils.each($tw.boot.preloadDirty, function(item){ + var tiddler = $tw.wiki.getTiddler(item); + self.cachedTiddlers.push(tiddler); + }); +}; + +BrowserStorageUtil.prototype.addCachedTiddlers = function() { + var self = this; + if(this.cachedTiddlers.length > 0) { + $tw.utils.each(this.cachedTiddlers, function(item){ + $tw.wiki.addTiddler(item); + }); + this.cachedTiddlers.length = 0; + } +}; + +BrowserStorageUtil.prototype.removeTiddlerFromLocalStorage = function(title) { + console.log("browser-storage: Removing", title); + window.localStorage.removeItem(this.options.prefix + title); +}; + +BrowserStorageUtil.prototype.saveTiddlerToLocalStorage = function(title) { + // Get the tiddler + var tiddler = $tw.wiki.getTiddler(title); + if(tiddler) { + console.log("browser-storage: Saving",title); + // Get the JSON of the tiddler + var json = JSON.stringify(tiddler.getFieldStrings()); + // Try to save it to local storage + try { + window.localStorage.setItem(this.options.prefix + title,json); + } catch(e) { + if(e.name === "QuotaExceededError") { + // Complain if we failed + var msg = $tw.wiki.getTiddlerText(this.QUOTA_EXCEEDED_ALERT_TITLE,this.DEFAULT_QUOTA_EXCEEDED_ALERT_PREFIX + title + this.DEFAULT_QUOTA_EXCEEDED_ALERT_SUFFIX); + if(this.options.logger) { + this.options.logger.alert(msg); + } + // No point in keeping old values around for this tiddler + window.localStorage.removeItem(this.options.prefix + title); + } else { + console.log("Browser-storage error:",e); + } + } + } else { + // In local storage, use the special value of empty string to mark the tiddler as deleted + // On future page loads, if the tiddler is already gone from startup then the blank entry + // will be removed from localstorage. Otherwise, the tiddler will be deleted. + console.log("browser-storage: Blanking",title); + try { + window.localStorage.setItem(this.options.prefix + title, ""); + } catch(e) { + console.log("Browser-storage error:",e); + } + } +}; + +BrowserStorageUtil.prototype.clearLocalStorage = function() { + var url = window.location.pathname, + log = []; + // Step through each browser storage item + if(window.localStorage) { + for(var index=window.localStorage.length - 1; index>=0; index--) { + var key = window.localStorage.key(index), + parts = key.split("#"); + // Delete it if it is ours + if(parts[0] === "tw5" && parts[1] === url) { + window.localStorage.removeItem(key); + } + } + } +}; + +exports.BrowserStorageUtil = BrowserStorageUtil; + +})(); diff --git a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js index 712077974..15fbaa4fd 100644 --- a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js +++ b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js @@ -76,6 +76,10 @@ TiddlyWebAdaptor.prototype.getStatus = function(callback) { if(err) { return callback(err); } + //If Browser-Storage plugin is present, cache pre-loaded tiddlers and add back after sync from server completes + if($tw.browserStorage && $tw.browserStorage.isEnabled()) { + $tw.browserStorage.cachePreloadTiddlers(); + } // Decode the status JSON var json = null; try { @@ -188,6 +192,10 @@ TiddlyWebAdaptor.prototype.getSkinnyTiddlers = function(callback) { } // Invoke the callback with the skinny tiddlers callback(null,tiddlers); + // If Browswer Storage tiddlers were cached on reloading the wiki, add them after sync from server completes in the above callback. + if($tw.browserStorage && $tw.browserStorage.isEnabled()) { + $tw.browserStorage.addCachedTiddlers(); + } } }); }; @@ -211,6 +219,10 @@ TiddlyWebAdaptor.prototype.saveTiddler = function(tiddler,callback,options) { if(err) { return callback(err); } + //If Browser-Storage plugin is present, remove tiddler from local storage after successful sync to the server + if($tw.browserStorage && $tw.browserStorage.isEnabled()) { + $tw.browserStorage.removeTiddlerFromLocalStorage(tiddler.fields.title) + } // Save the details of the new revision of the tiddler var etag = request.getResponseHeader("Etag"); if(!etag) { From 5aa5fc72b17dfc0c30569f1daa3ce33e73f9ec80 Mon Sep 17 00:00:00 2001 From: GameDungeon <60719255+GameDungeon@users.noreply.github.com> Date: Tue, 17 Jan 2023 16:16:09 -0600 Subject: [PATCH 240/937] Gamedungeon Sign CLA (#7216) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 3ffb6e552..290fa85f5 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -517,3 +517,5 @@ Pippo Peppo, @pippep, 2023-01-03 Scott Sauye, @CrossEye, 2023-01-04 Marcus Winter, @yaisog, 2023-01-07 + +Ethan Weller, @gamedungeon, 2023-01-17 From 9541f3c28315848a0b46a69a04b8390e058881a3 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 17 Jan 2023 23:13:58 +0000 Subject: [PATCH 241/937] Clean up build errors --- bin/build-site.sh | 16 ++++++++-------- editions/de-DE/tiddlywiki.info | 7 ++++--- editions/es-ES/tiddlywiki.info | 4 ++-- editions/fr-FR/tiddlywiki.info | 4 ++-- editions/introduction/tiddlywiki.info | 3 --- editions/ja-JP/tiddlywiki.info | 4 ++-- languages/ja-JP/Misc.multids | 2 -- languages/pl-PL/ControlPanel.multids | 2 -- 8 files changed, 18 insertions(+), 24 deletions(-) diff --git a/bin/build-site.sh b/bin/build-site.sh index cd5267389..7f56e6d30 100755 --- a/bin/build-site.sh +++ b/bin/build-site.sh @@ -359,14 +359,14 @@ node $TW5_BUILD_TIDDLYWIKI \ # Delete any existing static content -rm $TW5_BUILD_OUTPUT/languages/de-AT/static/* -rm $TW5_BUILD_OUTPUT/languages/de-DE/static/* -rm $TW5_BUILD_OUTPUT/languages/es-ES/static/* -rm $TW5_BUILD_OUTPUT/languages/fr-FR/static/* -rm $TW5_BUILD_OUTPUT/languages/ja-JP/static/* -rm $TW5_BUILD_OUTPUT/languages/ko-KR/static/* -rm $TW5_BUILD_OUTPUT/languages/zh-Hans/static/* -rm $TW5_BUILD_OUTPUT/languages/zh-Hant/static/* +rm -rf $TW5_BUILD_OUTPUT/languages/de-AT/static/* +rm -rf $TW5_BUILD_OUTPUT/languages/de-DE/static/* +rm -rf $TW5_BUILD_OUTPUT/languages/es-ES/static/* +rm -rf $TW5_BUILD_OUTPUT/languages/fr-FR/static/* +rm -rf $TW5_BUILD_OUTPUT/languages/ja-JP/static/* +rm -rf $TW5_BUILD_OUTPUT/languages/ko-KR/static/* +rm -rf $TW5_BUILD_OUTPUT/languages/zh-Hans/static/* +rm -rf $TW5_BUILD_OUTPUT/languages/zh-Hant/static/* # /languages/de-AT/index.html Demo wiki with de-AT language # /languages/de-AT/empty.html Empty wiki with de-AT language diff --git a/editions/de-DE/tiddlywiki.info b/editions/de-DE/tiddlywiki.info index e1806f4a8..5c0224f62 100755 --- a/editions/de-DE/tiddlywiki.info +++ b/editions/de-DE/tiddlywiki.info @@ -1,7 +1,9 @@ { "description": "Deutsche Basis Edition", "plugins": [ - "tiddlywiki/browser-sniff"], + "tiddlywiki/browser-sniff", + "tiddlywiki/internals" + ], "themes": [ "tiddlywiki/vanilla", "tiddlywiki/snowwhite", @@ -9,8 +11,7 @@ "tiddlywiki/seamless", "tiddlywiki/centralised", "tiddlywiki/tight", - "tiddlywiki/readonly", - "tiddlywiki/internals" + "tiddlywiki/readonly" ], "languages": [ "de-AT", diff --git a/editions/es-ES/tiddlywiki.info b/editions/es-ES/tiddlywiki.info index b72f0b5ee..466e87c01 100644 --- a/editions/es-ES/tiddlywiki.info +++ b/editions/es-ES/tiddlywiki.info @@ -1,6 +1,7 @@ { "description": "Spanish (Spain) edition", "plugins": [ + "tiddlywiki/internals" ], "themes": [ "tiddlywiki/vanilla", @@ -9,8 +10,7 @@ "tiddlywiki/seamless", "tiddlywiki/centralised", "tiddlywiki/tight", - "tiddlywiki/readonly", - "tiddlywiki/internals" + "tiddlywiki/readonly" ], "languages": [ "es-ES" diff --git a/editions/fr-FR/tiddlywiki.info b/editions/fr-FR/tiddlywiki.info index a710d5775..186c610e6 100644 --- a/editions/fr-FR/tiddlywiki.info +++ b/editions/fr-FR/tiddlywiki.info @@ -1,6 +1,7 @@ { "description": "French (France) edition", "plugins": [ + "tiddlywiki/internals" ], "themes": [ "tiddlywiki/vanilla", @@ -9,8 +10,7 @@ "tiddlywiki/seamless", "tiddlywiki/centralised", "tiddlywiki/tight", - "tiddlywiki/readonly", - "tiddlywiki/internals" + "tiddlywiki/readonly" ], "languages": [ "fr-FR" diff --git a/editions/introduction/tiddlywiki.info b/editions/introduction/tiddlywiki.info index 14c629414..456316e06 100644 --- a/editions/introduction/tiddlywiki.info +++ b/editions/introduction/tiddlywiki.info @@ -49,9 +49,6 @@ ], "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", diff --git a/editions/ja-JP/tiddlywiki.info b/editions/ja-JP/tiddlywiki.info index b6732ac05..3b4187547 100644 --- a/editions/ja-JP/tiddlywiki.info +++ b/editions/ja-JP/tiddlywiki.info @@ -1,6 +1,7 @@ { "description": "Japanese (Japan) edition", "plugins": [ + "tiddlywiki/internals" ], "themes": [ "tiddlywiki/vanilla", @@ -9,8 +10,7 @@ "tiddlywiki/seamless", "tiddlywiki/centralised", "tiddlywiki/tight", - "tiddlywiki/readonly", - "tiddlywiki/internals" + "tiddlywiki/readonly" ], "languages": [ "ja-JP" diff --git a/languages/ja-JP/Misc.multids b/languages/ja-JP/Misc.multids index c939ccb08..9caa602dc 100644 --- a/languages/ja-JP/Misc.multids +++ b/languages/ja-JP/Misc.multids @@ -104,5 +104,3 @@ TagManager/Tag/Heading: タグ Tiddler/DateFormat: YYYY年MM月DD日(ddd) 0hh:0mm UnsavedChangesWarning: 保存していない編集内容があります。 Yes: はい -$:/SiteSubtitle: 非線形パーソナルウェブノートブック -$:/SiteTitle: 私の ~TiddlyWiki diff --git a/languages/pl-PL/ControlPanel.multids b/languages/pl-PL/ControlPanel.multids index 38e4b7fad..2ee8983c2 100644 --- a/languages/pl-PL/ControlPanel.multids +++ b/languages/pl-PL/ControlPanel.multids @@ -8,8 +8,6 @@ Basics/AnimDuration/Prompt: Długość animacji Basics/AutoFocus/Prompt: Domyślne wybrane pole do edycji przy tworzeniu nowego tiddlera Basics/Caption: Podstawowe Basics/DefaultTiddlers/BottomHint: Tiddlery, które mają spację w nazie otocz [[podwójnymi nawiasami kwadratowymi]]. Możesz też ustawić, by zawsze widzieć {{ostatnio otwarte tiddlery||$:/snippets/retain-story-ordering-button}} -Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">retain story ordering</$button> -Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to {{retain story ordering||$:/snippets/retain-story-ordering-button}} Basics/DefaultTiddlers/Prompt: Domyślnie otwarte tiddlery Basics/DefaultTiddlers/TopHint: Wybierz które tiddlery mają być widoczne przy uruchomieniu Basics/Language/Prompt: Cześć! Wybrany język to: From 586d44f6ce002c6baa66f7930e7c17995c05e24f Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 18 Jan 2023 16:50:58 +0000 Subject: [PATCH 242/937] Allow missing tiddlers to be deleted (ie closed) Fixes #7217 --- core/modules/widgets/navigator.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/core/modules/widgets/navigator.js b/core/modules/widgets/navigator.js index 3f1efbe7a..2e39fdd20 100755 --- a/core/modules/widgets/navigator.js +++ b/core/modules/widgets/navigator.js @@ -227,10 +227,7 @@ NavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) { originalTitle = tiddler ? tiddler.fields["draft.of"] : "", originalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined, confirmationTitle, - win = event.event && event.event.view ? event.event.view : window; - if(!tiddler) { - return false; - } + win = event.event && event.event.view ? event.event.view : window; // Check if the tiddler we're deleting is in draft mode if(originalTitle) { // If so, we'll prompt for confirmation referencing the original tiddler @@ -240,7 +237,7 @@ NavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) { confirmationTitle = title; } // Seek confirmation - if((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || "") !== "") && !win.confirm($tw.language.getString( + if(((originalTitle && this.wiki.getTiddler(originalTitle)) || (tiddler && ((tiddler.fields.text || "") !== ""))) && !win.confirm($tw.language.getString( "ConfirmDeleteTiddler", {variables: {title: confirmationTitle} @@ -257,8 +254,10 @@ NavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) { this.removeTitleFromStory(storyList,originalTitle); } // Invoke the hook function and delete this tiddler - $tw.hooks.invokeHook("th-deleting-tiddler",tiddler); - this.wiki.deleteTiddler(title); + if(tiddler) { + $tw.hooks.invokeHook("th-deleting-tiddler",tiddler); + this.wiki.deleteTiddler(title); + } // Remove the closed tiddler from the story this.removeTitleFromStory(storyList,title); this.saveStoryList(storyList); From 485bf19c3cbfb8c22cd34f26a6642598f2d99630 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Thu, 19 Jan 2023 16:43:48 +0000 Subject: [PATCH 243/937] Remove docs references to Beaker Browser now it is archived See https://github.com/beakerbrowser/beaker/blob/master/archive-notice.md --- .../saving/Saving on Beaker Browser.tid | 35 ------------------- .../tiddlers/platforms/Beaker_Browser.tid | 21 ----------- .../saving/Saving on Beaker Browser.tid | 34 ------------------ 3 files changed, 90 deletions(-) delete mode 100644 editions/fr-FR/tiddlers/saving/Saving on Beaker Browser.tid delete mode 100644 editions/tw5.com/tiddlers/platforms/Beaker_Browser.tid delete mode 100644 editions/tw5.com/tiddlers/saving/Saving on Beaker Browser.tid diff --git a/editions/fr-FR/tiddlers/saving/Saving on Beaker Browser.tid b/editions/fr-FR/tiddlers/saving/Saving on Beaker Browser.tid deleted file mode 100644 index a1541c9bf..000000000 --- a/editions/fr-FR/tiddlers/saving/Saving on Beaker Browser.tid +++ /dev/null @@ -1,35 +0,0 @@ -caption: Beaker Browser -color: #FF8A65 -created: 20161229121316912 -delivery: App -description: Nouveau navigateur puissant pour Mac, Windows et Linux -fr-title: Enregistrer avec Beaker Browser -method: save -modified: 20220402105820520 -tags: Saving Windows Linux Mac -title: Saving on Beaker Browser -type: text/vnd.tiddlywiki - -<<.from-version "5.1.14">> <<tw>> intègre un module qui lui permet d'enregistrer les modifications directement avec [[Beaker Browser]], un navigateur internet en peer-to-peer expérimental. - -! Instructions - -# Téléchargez et installez Beaker Browser depuis https://beakerbrowser.com/ -# Lancez Beaker et si nécessaire ouvrez un onglet vers l'adresse `beaker:start` -# Cliquez sur le bouton <<gf "New site">> en haut à gauche de la page -# Saisissez les détails sur votre site -# Cliquez sur le lien <<gf "Add files">> et sélectionnez le fichier `index.html` de votre <<tw>> -# Naviguez sur votre site en cliquant sur le lien vers `index.html`<<;>> il devrait s'ouvrir dans un nouvel onglet -# Essayez de créer des tiddlers et d'enregistrer les modifications - -Jusque là, le wiki est entièrement privé et les autres utilisateurs ne peuvent pas en voir le contenu, même en connaissant l'URL. Pour le partager avec d'autres utilisateurs<<:>> - -# Publiez vos modifications -## Visitez la page <<gf Library>> à l'aide du menu <<gf System>> de Beaker Browser -## Sélectionnez votre site dans la liste -## Recherchez un encart <<gf "Unpublished changes">>. S'il n'est pas présent, passez au point suivant -## Cliquez sur le bouton <<gf "Review changes">> -## Cliquez sur le bouton <<gf "Publish">> -# Partagez l'URL `dat:` -## Copiez l'URL de votre site à partir de la barre d'adresse et partagez-la avec d'autres utilisateurs -## Les autres utilisateurs devraient pouvoir accéder à votre site mais ils ne pourront pas le modifier avant d'en avoir fait leur propre clone diff --git a/editions/tw5.com/tiddlers/platforms/Beaker_Browser.tid b/editions/tw5.com/tiddlers/platforms/Beaker_Browser.tid deleted file mode 100644 index 1d43928aa..000000000 --- a/editions/tw5.com/tiddlers/platforms/Beaker_Browser.tid +++ /dev/null @@ -1,21 +0,0 @@ -created: 20161229113910984 -modified: 20171113110222980 -title: Beaker Browser -type: text/vnd.tiddlywiki - -From [[Beaker Browser website|https://beakerbrowser.com/]]: - -> Beaker is a Peer-to-Peer Web Browser, made for users to run applications independently of hosts. Using P2P Hypermedia, Beaker separates frontend apps from backend services, so that users are completely in control of their software and data. Read more. - -Beaker is a fork of the open source Chromium browser (which is the core engine powering Google's Chrome browser). - -Beaker adds the ability to host sites within the browser, and browse to those sites via the `dat://` protocol. The extraordinary thing is that if you are running Beaker then you can also browse to sites hosted by other users, without needing any server in between. - -Further, you can opt to host a site belonging to somebody else, forming part of a Bittorrent-like swarm of peers serving the content to other browsers. You can also //fork// a site, making your own copy that you can change as you need. - -The main disadvantage is that mainstream browsers cannot use `dat://` sites. - -Most of the magic is accomplished by the underlying [[Dat protocol|https://datproject.org/]]. - -<<.from-version "5.1.14">> TiddlyWiki incorporates a special saver module permitting changes to be saved directly from Beaker browser. See [[Saving on Beaker Browser]] for instructions. - diff --git a/editions/tw5.com/tiddlers/saving/Saving on Beaker Browser.tid b/editions/tw5.com/tiddlers/saving/Saving on Beaker Browser.tid deleted file mode 100644 index ea5777186..000000000 --- a/editions/tw5.com/tiddlers/saving/Saving on Beaker Browser.tid +++ /dev/null @@ -1,34 +0,0 @@ -caption: Beaker Browser -color: #FF8A65 -created: 20161229121316912 -delivery: App -description: Powerful new browser for Mac, Windows and Linux -method: save -modified: 20200507104016915 -tags: Saving Windows Linux Mac -title: Saving on Beaker Browser -type: text/vnd.tiddlywiki - -<<.from-version "5.1.14">> TiddlyWiki incorporates a saver module that allows it to save changes directly with the [[Beaker Browser]], an experimental peer-to-peer browser. - -! Instructions - -# Download and install the Beaker Browser from https://beakerbrowser.com/ -# Run Beaker, and if necessary open a tab to beaker:start -# Click the "New site" button at the top left of the page -# Enter the details of your site -# Click the link “Add files” and upload your TiddlyWiki index.html file -# View the site by clicking on the link to index.html; it should open in a new tab -# Try out creating tiddlers, and saving changes - -At this point, the wiki is entirely private, and other users cannot see the content even if they have the URL. To share the wiki with other users: - -# Publish your changes -## Visit the "Library" page in Beaker Browser via the system menu -## Select your site in the list -## Look for a box mentioning "n unpublished changes". If not present, skip to the next step -## Click the "Review changes" button -## Click the "Publish" button -# Share the dat: URL -## Copy the URL of your site from the address bar and share it with other users -## Other users should be able to access your site but they won't be able to make changes unless they fork their own copy From 5d650e87dd6ba66829c7e29b39b1eb3069a78ebf Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Thu, 19 Jan 2023 16:45:30 +0000 Subject: [PATCH 244/937] Remove savers for Beaker Browser now it is archived See https://github.com/beakerbrowser/beaker/blob/master/archive-notice.md --- core/modules/savers/beaker.js | 64 ------------------------------- core/modules/savers/hyperdrive.js | 64 ------------------------------- 2 files changed, 128 deletions(-) delete mode 100644 core/modules/savers/beaker.js delete mode 100644 core/modules/savers/hyperdrive.js diff --git a/core/modules/savers/beaker.js b/core/modules/savers/beaker.js deleted file mode 100644 index dc24ef67f..000000000 --- a/core/modules/savers/beaker.js +++ /dev/null @@ -1,64 +0,0 @@ -/*\ -title: $:/core/modules/savers/beaker.js -type: application/javascript -module-type: saver - -Saves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/) -Compatible with beaker >= V0.7.2 - -\*/ -(function(){ - -/*jslint node: true, browser: true */ -/*global $tw: false */ -"use strict"; - -/* -Set up the saver -*/ -var BeakerSaver = function(wiki) { - this.wiki = wiki; -}; - -BeakerSaver.prototype.save = function(text,method,callback) { - var dat = new DatArchive("" + window.location), - pathname = ("" + window.location.pathname).split("#")[0]; - dat.stat(pathname).then(function(value) { - if(value.isDirectory()) { - pathname = pathname + "/index.html"; - } - dat.writeFile(pathname,text,"utf8").then(function(value) { - callback(null); - },function(reason) { - callback("Beaker Saver Write Error: " + reason); - }); - },function(reason) { - callback("Beaker Saver Stat Error: " + reason); - }); - return true; -}; - -/* -Information about this saver -*/ -BeakerSaver.prototype.info = { - name: "beaker", - priority: 3000, - capabilities: ["save", "autosave"] -}; - -/* -Static method that returns true if this saver is capable of working -*/ -exports.canSave = function(wiki) { - return !!window.DatArchive && location.protocol==="dat:"; -}; - -/* -Create an instance of this saver -*/ -exports.create = function(wiki) { - return new BeakerSaver(wiki); -}; - -})(); diff --git a/core/modules/savers/hyperdrive.js b/core/modules/savers/hyperdrive.js deleted file mode 100644 index 232392672..000000000 --- a/core/modules/savers/hyperdrive.js +++ /dev/null @@ -1,64 +0,0 @@ -/*\ -title: $:/core/modules/savers/hyperdrive.js -type: application/javascript -module-type: saver - -Saves files using the Hyperdrive Protocol (https://hypercore-protocol.org/#hyperdrive) Beaker browser beta-1.0 and later (https://beakerbrowser.com) -Compatible with beaker >= V1.0.0 - -\*/ -(function(){ - -/*jslint node: true, browser: true */ -/*global $tw: false */ -"use strict"; - -/* -Set up the saver -*/ -var HyperdriveSaver = function(wiki) { - this.wiki = wiki; -}; - -HyperdriveSaver.prototype.save = function(text,method,callback) { - var dat = beaker.hyperdrive.drive("" + window.location), - pathname = ("" + window.location.pathname).split("#")[0]; - dat.stat(pathname).then(function(value) { - if(value.isDirectory()) { - pathname = pathname + "/index.html"; - } - dat.writeFile(pathname,text,"utf8").then(function(value) { - callback(null); - },function(reason) { - callback("Hyperdrive Saver Write Error: " + reason); - }); - },function(reason) { - callback("Hyperdrive Saver Stat Error: " + reason); - }); - return true; -}; - -/* -Information about this saver -*/ -HyperdriveSaver.prototype.info = { - name: "beaker-1.x", - priority: 3000, - capabilities: ["save", "autosave"] -}; - -/* -Static method that returns true if this saver is capable of working -*/ -exports.canSave = function(wiki) { - return !!window.beaker && !!beaker.hyperdrive && location.protocol==="hyper:"; -}; - -/* -Create an instance of this saver -*/ -exports.create = function(wiki) { - return new HyperdriveSaver(wiki); -}; - -})(); From aa8f7f77d69301f65380378d2a41841af53b1b48 Mon Sep 17 00:00:00 2001 From: cdruan <80615570+cdruan@users.noreply.github.com> Date: Thu, 19 Jan 2023 08:52:12 -0800 Subject: [PATCH 245/937] External.js: Allow boot code to remain as tiddlers in tiddlywikicore.js (#7210) * Allow boot code to remain as tiddlers * Sync up with tiddlywiki5.html * Add \whitespace trim * Add download-full-wiki button * Simplify ExportTiddlyWikiCore code No longer needs the if-boot-code-is-missing part of the code. * Replace space btw icon and button text with CSS --- .../external-js/save-all-external-js.tid | 1 + .../external-js/save-offline-external-js.tid | 1 + .../external-js/tiddlywiki.js.load.tid | 3 + core/templates/external-js/tiddlywiki.js.tid | 55 +++++++++++++++---- .../tiddlywiki5-external-js.html.tid | 36 ++++++------ core/ui/DownloadFullWiki.tid | 18 ++++++ core/ui/ExportTiddlyWikiCore.tid | 16 +----- 7 files changed, 89 insertions(+), 41 deletions(-) create mode 100644 core/templates/external-js/tiddlywiki.js.load.tid create mode 100644 core/ui/DownloadFullWiki.tid diff --git a/core/templates/external-js/save-all-external-js.tid b/core/templates/external-js/save-all-external-js.tid index cd15cedc3..2616fed20 100644 --- a/core/templates/external-js/save-all-external-js.tid +++ b/core/templates/external-js/save-all-external-js.tid @@ -1,5 +1,6 @@ title: $:/core/save/all-external-js +\whitespace trim \import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]] \define saveTiddlerFilter() [is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$ diff --git a/core/templates/external-js/save-offline-external-js.tid b/core/templates/external-js/save-offline-external-js.tid index 2dfca5d52..01ae88aa0 100644 --- a/core/templates/external-js/save-offline-external-js.tid +++ b/core/templates/external-js/save-offline-external-js.tid @@ -1,5 +1,6 @@ title: $:/core/save/offline-external-js +\whitespace trim \import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]] \define saveTiddlerFilter() [is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/core]] -[[$:/plugins/tiddlywiki/filesystem]] -[[$:/plugins/tiddlywiki/tiddlyweb]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$ diff --git a/core/templates/external-js/tiddlywiki.js.load.tid b/core/templates/external-js/tiddlywiki.js.load.tid new file mode 100644 index 000000000..496d6ed04 --- /dev/null +++ b/core/templates/external-js/tiddlywiki.js.load.tid @@ -0,0 +1,3 @@ +title: $:/core/templates/tiddlywiki.js/load-tiddler + +_load(window,<$macrocall $name="jsontiddler" $output="text/raw"/>); \ No newline at end of file diff --git a/core/templates/external-js/tiddlywiki.js.tid b/core/templates/external-js/tiddlywiki.js.tid index a8170663f..f962569a2 100644 --- a/core/templates/external-js/tiddlywiki.js.tid +++ b/core/templates/external-js/tiddlywiki.js.tid @@ -1,15 +1,48 @@ + title: $:/core/templates/tiddlywiki5.js \rules only filteredtranscludeinline transcludeinline codeinline -/* -{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}} -`*/ -`<!--~~ Library modules ~~--> -{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}} -<!--~~ Boot prefix ~~--> -{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}} -<!--~~ Core plugin ~~--> -{{$:/core/templates/tiddlywiki5.js/tiddlers}} -<!--~~ Boot kernel ~~--> -{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}} +`/* +`{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}` +*/ + +$tw = (typeof $tw === 'undefined') ? Object.create(null) : $tw; + +$tw.preloadTiddlers = $tw.preloadTiddlers || []; + +_load = function(window,tiddler) { + "use strict"; + var f; + $tw.preloadTiddlers.push(tiddler); + if(tiddler.library === "yes") { + var module = { exports:{} }; + var moduleName = function moduleName(path) { + var word = path.split("/").pop(); + word = word.substring(0,word.indexOf(".")) || word; + return word; + } + f = new Function("module",tiddler.text); + f(module); + window[moduleName(tiddler.title)] = module.exports; + } else { + f = new Function("window",tiddler.text); + f(window); + } +} + +/* ~~ Library modules ~~ */ + +`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/tiddlywiki.js/load-tiddler}}}` + +/* ~~ Boot kernel prologue ~~ */ + +`{{ $:/boot/bootprefix.js ||$:/core/templates/tiddlywiki.js/load-tiddler}}` + +/* ~~ Core tiddlers ~~ */ + +`{{$:/core/templates/tiddlywiki5.js/tiddlers}}` + +/* ~~ Boot kernel ~~ */ + +`{{ $:/boot/boot.js ||$:/core/templates/tiddlywiki.js/load-tiddler}}` diff --git a/core/templates/external-js/tiddlywiki5-external-js.html.tid b/core/templates/external-js/tiddlywiki5-external-js.html.tid index 6a5c4c1bb..b161584d7 100644 --- a/core/templates/external-js/tiddlywiki5-external-js.html.tid +++ b/core/templates/external-js/tiddlywiki5-external-js.html.tid @@ -1,48 +1,50 @@ title: $:/core/templates/tiddlywiki5-external-js.html -\rules only filteredtranscludeinline transcludeinline -<!doctype html> -{{$:/core/templates/MOTW.html}}<html lang="{{{ [{$:/language}get[name]] }}}"> +<$set name="saveTiddlerAndShadowsFilter" filter="[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]"> +`<!doctype html> +`{{$:/core/templates/MOTW.html}}`<html lang="`<$text text={{{ [{$:/language}get[name]] }}}/>`"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <!--~~ Raw markup for the top of the head section ~~--> -{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}} +`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}` <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <meta name="application-name" content="TiddlyWiki" /> <meta name="generator" content="TiddlyWiki" /> -<meta name="tiddlywiki-version" content="{{$:/core/templates/version}}" /> +<meta name="tiddlywiki-version" content="`{{$:/core/templates/version}}`" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> <meta name="mobile-web-app-capable" content="yes"/> <meta name="format-detection" content="telephone=no" /> -<meta name="copyright" content="{{$:/core/copyright.txt}}" /> +<meta name="copyright" content="`{{$:/core/copyright.txt}}`" /> <link id="faviconLink" rel="shortcut icon" href="favicon.ico"> -<title>{{$:/core/wiki/title}} +`{{$:/core/wiki/title}}` -{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}} -{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}} +`{{{ [enlisttag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}` +`{{{ [enlisttag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}` +`{{{ [enlisttag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}` -{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}} +`{{{ [enlisttag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`
-{{$:/boot/boot.css||$:/core/templates/css-tiddler}} +`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`
-{{$:/core/templates/store.area.template.html}} +`{{$:/core/templates/store.area.template.html}}` -{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}} +`{{{ [enlisttag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}` + + - - - +` + \ No newline at end of file diff --git a/core/ui/DownloadFullWiki.tid b/core/ui/DownloadFullWiki.tid new file mode 100644 index 000000000..bfae2ceb6 --- /dev/null +++ b/core/ui/DownloadFullWiki.tid @@ -0,0 +1,18 @@ +title: $:/core/ui/DownloadFullWiki + +\whitespace trim +\rules except wikilink + +To download the standard single-file version of your wiki: + +<$wikify name="site-title" text={{$:/config/SaveWikiButton/Filename}}> +<$let publishFilter="""-[[$:/config/SaveWikiButton/Template]] -[[$:/plugins/tiddlywiki/filesystem]] -[[$:/plugins/tiddlywiki/tiddlyweb]]"""> +<$button tooltip="Download fully standalone wiki" aria-label="download full wiki" class="tc-btn-big-green"> +<$action-sendmessage $message="tm-download-file" $param="$:/core/save/all" publishFilter=<> filename=<>/> +{{$:/core/images/download-button}} + +Download full wiki + + + + \ No newline at end of file diff --git a/core/ui/ExportTiddlyWikiCore.tid b/core/ui/ExportTiddlyWikiCore.tid index 8c85c87a4..4b913a020 100644 --- a/core/ui/ExportTiddlyWikiCore.tid +++ b/core/ui/ExportTiddlyWikiCore.tid @@ -1,11 +1,6 @@ title: $:/core/ui/ExportTiddlyWikiCore \define jsFileName() tiddlywikicore-$(version)$.js -\define noExportMsg() -It appears that you have a wiki with an external ~TiddlyWiki core. The export action cannot be performed. -

You will need to view the page source in your browser. Then go to the very bottom the the source, find the last `` \ No newline at end of file +-->`` data-tiddler-revision="`<>`" data-tiddler-bag="default" type="text/javascript">`<$view field="text" format="text" />`` \ No newline at end of file From c20c35c0a65f20c7c362fba39d62832b10261b58 Mon Sep 17 00:00:00 2001 From: Cameron Fischer Date: Thu, 19 Jan 2023 12:48:23 -0500 Subject: [PATCH 250/937] Fully committing core to the $genesis widget (#7129) --- core/wiki/macros/list.tid | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/wiki/macros/list.tid b/core/wiki/macros/list.tid index 2d82b601a..5464ecad1 100644 --- a/core/wiki/macros/list.tid +++ b/core/wiki/macros/list.tid @@ -26,7 +26,7 @@ tags: $:/tags/Macro \whitespace trim <$vars targetTiddler="""$tiddler$""" targetField="""$field$"""> -<$type$ class="$class$"> +<$genesis $type=<<__type__>> class="$class$"> <$list filter="[list[$tiddler$!!$field$]]" emptyMessage=<<__emptyMessage__>>> <$droppable actions=<> tag="""$subtype$""" enable=<>>

@@ -51,7 +51,7 @@ tags: $:/tags/Macro
- + \end @@ -84,24 +84,24 @@ tags: $:/tags/Macro <$set name="tag" value=<<__tag__>>> <$list filter="[<__tag__>tagging[]$subFilter$]" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>> -<$elementTag$ class="tc-menu-list-item"> +<$genesis $type=<<__elementTag__>> class="tc-menu-list-item"> <$droppable actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>""" enable=<>> -<$elementTag$ class="tc-droppable-placeholder"/> -<$elementTag$> +<$genesis $type=<<__elementTag__>> class="tc-droppable-placeholder"/> +<$genesis $type=<<__elementTag__>>> <$transclude tiddler="""$itemTemplate$"""> <$link to={{!!title}}> <$view field="title"/> - + - + <$tiddler tiddler=""> <$droppable actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>""" enable=<>> -<$elementTag$ class="tc-droppable-placeholder"/> -<$elementTag$ style="height:0.5em;"> - +<$genesis $type=<<__elementTag__>> class="tc-droppable-placeholder"/> +<$genesis $type=<<__elementTag__>> style="height:0.5em;"> + From e6189078ffa8d4026eb18e88e93c0e29d854fdf1 Mon Sep 17 00:00:00 2001 From: Mario Pietsch Date: Thu, 19 Jan 2023 21:44:00 +0100 Subject: [PATCH 251/937] Make tag-picker and keyboard-driven-input macros human readable (#7118) * make tag-picker and keyboard-driven-input macros human readable * fix indentation as requested --- core/wiki/macros/keyboard-driven-input.tid | 125 +++++++------ core/wiki/macros/tag-picker.tid | 203 ++++++++++++++------- 2 files changed, 208 insertions(+), 120 deletions(-) diff --git a/core/wiki/macros/keyboard-driven-input.tid b/core/wiki/macros/keyboard-driven-input.tid index f7563996a..7983ea9f0 100644 --- a/core/wiki/macros/keyboard-driven-input.tid +++ b/core/wiki/macros/keyboard-driven-input.tid @@ -4,76 +4,85 @@ tags: $:/tags/Macro \define change-input-tab(stateTitle,tag,beforeafter,defaultState,actions) \whitespace trim <$set name="tabsList" filter="[all[shadows+tiddlers]tag<__tag__>!has[draft.of]]"> -<$let - currentState={{{ [<__stateTitle__>!is[missing]get[text]] ~[<__defaultState__>] }}} - firstTab={{{ [enlistnth[1]] }}} - lastTab={{{ [enlistlast[]] }}} - nextTab={{{ [all[shadows+tiddlers]tag<__tag__>!has[draft.of]$beforeafter$] ~[[$beforeafter$]removeprefix[after]suffix[]addprefix] ~[[$beforeafter$]removeprefix[before]suffix[]addprefix] }}}> -<$action-setfield $tiddler=<<__stateTitle__>> text=<>/> -$actions$ - + <$let + currentState={{{ [<__stateTitle__>!is[missing]get[text]] ~[<__defaultState__>] }}} + firstTab={{{ [enlistnth[1]] }}} + lastTab={{{ [enlistlast[]] }}} + nextTab={{{ [all[shadows+tiddlers]tag<__tag__>!has[draft.of]$beforeafter$] ~[[$beforeafter$]removeprefix[after]suffix[]addprefix] ~[[$beforeafter$]removeprefix[before]suffix[]addprefix] }}} + > + <$action-setfield $tiddler=<<__stateTitle__>> text=<>/> + $actions$ + \end \define keyboard-input-actions() \whitespace trim <$list filter="[<__index__>match[]]"> -<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>get<__field__>] }}}/> + <$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>get<__field__>] }}}/> <$list filter="[<__index__>!match[]]"> -<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>getindex<__index__>] }}}/> + <$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>getindex<__index__>] }}}/> \end \define input-next-actions-inner() \whitespace trim <$list filter="[minlength[1]]" variable="ignore"> -<$action-setfield $tiddler=<<__selectionStateTitle__>> text=<>/> -<$list filter="[<__index__>match[]]"> -<$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value={{{ [] +[splitregexp[(?:.(?!-))+$]] }}}/> - -<$list filter="[<__index__>!match[]]"> -<$action-setfield $tiddler=<<__tiddler__>> $index=<<__index__>> $value={{{ [] +[splitregexp[(?:.(?!-))+$]] }}}/> - -<$action-setfield $tiddler=<<__refreshTitle__>> text="yes"/> + <$action-setfield $tiddler=<<__selectionStateTitle__>> text=<>/> + <$list filter="[<__index__>match[]]"> + <$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value={{{ [] +[splitregexp[(?:.(?!-))+$]] }}}/> + + <$list filter="[<__index__>!match[]]"> + <$action-setfield $tiddler=<<__tiddler__>> $index=<<__index__>> $value={{{ [] +[splitregexp[(?:.(?!-))+$]] }}}/> + + <$action-setfield $tiddler=<<__refreshTitle__>> text="yes"/> \end \define input-next-actions(afterOrBefore:"after",reverse:"") \whitespace trim -<$list filter="[<__storeTitle__>get[text]minlength<__filterMinLength__>] [<__filterMinLength__>match[0]] +[limit[1]]" variable="ignore"> -<$let - userInput={{{ [<__storeTitle__>get[text]] }}} - selectedItem={{{ [<__selectionStateTitle__>get[text]] }}} - configTiddler={{{ [subfilter<__configTiddlerFilter__>] }}} - primaryListFilter={{{ [get<__firstSearchFilterField__>] }}} - secondaryListFilter={{{ [get<__secondSearchFilterField__>] }}}> -<$set name="filteredList" filter="[subfilteraddsuffix[-primaryList]] =[subfilteraddsuffix[-secondaryList]]"> -<$let - nextItem={{{ [enlist$afterOrBefore$] ~[enlist$reverse$nth[1]] }}} - firstItem={{{ [enlistnth[1]] }}} - lastItem={{{ [enlistlast[]] }}}> -<$list filter="[match!match]" variable="ignore"> -<$set name="nextItem" value={{{ [[$afterOrBefore$]match[before]thenaddsuffix[-userInput]] ~[] }}}> -<> - - -<$list filter="[match!match]" variable="ignore"> -<$set name="nextItem" value={{{ [[$afterOrBefore$]match[after]thenaddsuffix[-userInput]] ~[] }}}> -<> - - -<$list filter="[matchmatch]" variable="ignore"> -<$set name="nextItem" value={{{ [addsuffix[-userInput]] }}}> -<> - - -<$list filter="[!match!match]" variable="ignore"> -<> - - - - +<$list + filter="[<__storeTitle__>get[text]minlength<__filterMinLength__>] [<__filterMinLength__>match[0]] +[limit[1]]" + variable="ignore" +> + <$let + userInput={{{ [<__storeTitle__>get[text]] }}} + selectedItem={{{ [<__selectionStateTitle__>get[text]] }}} + configTiddler={{{ [subfilter<__configTiddlerFilter__>] }}} + primaryListFilter={{{ [get<__firstSearchFilterField__>] }}} + secondaryListFilter={{{ [get<__secondSearchFilterField__>] }}} + > + <$set + name="filteredList" + filter="[subfilteraddsuffix[-primaryList]] =[subfilteraddsuffix[-secondaryList]]" + > + <$let + nextItem={{{ [enlist$afterOrBefore$] ~[enlist$reverse$nth[1]] }}} + firstItem={{{ [enlistnth[1]] }}} + lastItem={{{ [enlistlast[]] }}} + > + <$list filter="[match!match]" variable="ignore"> + <$set name="nextItem" value={{{ [[$afterOrBefore$]match[before]thenaddsuffix[-userInput]] ~[] }}}> + <> + + + <$list filter="[match!match]" variable="ignore"> + <$set name="nextItem" value={{{ [[$afterOrBefore$]match[after]thenaddsuffix[-userInput]] ~[] }}}> + <> + + + <$list filter="[matchmatch]" variable="ignore"> + <$set name="nextItem" value={{{ [addsuffix[-userInput]] }}}> + <> + + + <$list filter="[!match!match]" variable="ignore"> + <> + + + + \end @@ -84,12 +93,14 @@ $actions$ <$keyboard key="((input-up))" actions=<>> <$keyboard key="((input-down))" actions=<>> <$keyboard key="((input-cancel))" actions=<<__inputCancelActions__>>> -<$edit-text tiddler=<<__tiddler__>> field=<<__field__>> index=<<__index__>> - inputActions=<> tag=<<__tag__>> class=<<__class__>> - placeholder=<<__placeholder__>> default=<<__default__>> focusPopup=<<__focusPopup__>> - focus=<<__focus__>> type=<<__type__>> rows=<<__rows__>> minHeight=<<__minHeight__>> - tabindex=<<__tabindex__>> size=<<__size__>> autoHeight=<<__autoHeight__>> - refreshTitle=<<__refreshTitle__>> cancelPopups=<<__cancelPopups__>>/> + <$edit-text + tiddler=<<__tiddler__>> field=<<__field__>> index=<<__index__>> + inputActions=<> tag=<<__tag__>> class=<<__class__>> + placeholder=<<__placeholder__>> default=<<__default__>> focusPopup=<<__focusPopup__>> + focus=<<__focus__>> type=<<__type__>> rows=<<__rows__>> minHeight=<<__minHeight__>> + tabindex=<<__tabindex__>> size=<<__size__>> autoHeight=<<__autoHeight__>> + refreshTitle=<<__refreshTitle__>> cancelPopups=<<__cancelPopups__>> + /> diff --git a/core/wiki/macros/tag-picker.tid b/core/wiki/macros/tag-picker.tid index 92982a656..e1b1a7139 100644 --- a/core/wiki/macros/tag-picker.tid +++ b/core/wiki/macros/tag-picker.tid @@ -10,10 +10,14 @@ second-search-filter: [tags[]is[system]search:titlesort[]] \define add-tag-actions(actions,tagField:"tags") \whitespace trim <$set name="tag" value={{{ [<__tiddler__>get[text]] }}}> -<$list filter="[!contains:$tagField$!match[]]" variable="ignore" emptyMessage="<$action-listops $tiddler=<> $field=<<__tagField__>> $subfilter='-[]'/>"> -<$action-listops $tiddler=<> $field=<<__tagField__>> $subfilter="[trim[]]"/> -$actions$ - + <$list + filter="[!contains:$tagField$!match[]]" + variable="ignore" + emptyMessage="<$action-listops $tiddler=<> $field=<<__tagField__>> $subfilter='-[]'/>" + > + <$action-listops $tiddler=<> $field=<<__tagField__>> $subfilter="[trim[]]"/> + $actions$ + <> <$action-setfield $tiddler=<> text="yes"/> @@ -21,80 +25,153 @@ $actions$ \define clear-tags-actions-inner() \whitespace trim -<$list filter="[has[text]] [has[text]]" variable="ignore" emptyMessage="<>"> -<> +<$list + filter="[has[text]] [has[text]]" + variable="ignore" + emptyMessage="<>" +> + <> \end \define clear-tags-actions() \whitespace trim <$set name="userInput" value={{{ [get[text]] }}}> -<$list filter="[get[text]!match]" emptyMessage="<>"> -<$action-setfield $tiddler=<> text=<>/><$action-setfield $tiddler=<> text="yes"/> - + <$list filter="[get[text]!match]" emptyMessage="<>"> + <$action-setfield $tiddler=<> text=<>/><$action-setfield $tiddler=<> text="yes"/> + \end \define tag-picker-inner(actions,tagField:"tags") \whitespace trim -<$vars newTagNameInputTiddlerQualified=<> newTagNameSelectionTiddlerQualified=<> fallbackTarget={{$(palette)$##tag-background}} colourA={{$(palette)$##foreground}} colourB={{$(palette)$##background}}> -<$vars storeTitle={{{ [!match[]] ~[] }}} tagSelectionState={{{ [!match[]] ~[] }}}> -<$vars refreshTitle=<> nonSystemTagsFilter="[tags[]!is[system]search:titlesort[]]" systemTagsFilter="[tags[]is[system]search:titlesort[]]"> -
-
- -<$macrocall $name="keyboard-driven-input" tiddler=<> storeTitle=<> refreshTitle=<> - selectionStateTitle=<> inputAcceptActions="<$macrocall $name='add-tag-actions' actions=<<__actions__>> tagField=<<__tagField__>>/>" - inputCancelActions=<> tag="input" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} - focusPopup=<> class="tc-edit-texteditor tc-popup-handle" tabindex=<> - focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} filterMinLength={{$:/config/Tags/MinLength}} - cancelPopups=<> configTiddlerFilter="[[$:/core/macros/tag-picker]]"/> -<$button popup=<> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}<$reveal state=<> type="nomatch" text=""><$button class="tc-btn-invisible tc-small-gap tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}}>{{$:/core/images/close-button}}<> -<$set name="tag" value={{{ [get[text]] }}}> -<$button set=<> setTo="" class=""> -<$action-listops $tiddler=<> $field=<<__tagField__>> $subfilter="[trim[]]"/> -$actions$ -<$set name="currentTiddlerCSSEscaped" value={{{ [escapecss[]] }}}> -<><$action-sendmessage $message="tm-focus-selector" $param=<>/> - -{{$:/language/EditTemplate/Tags/Add/Button}} - - - -
-
-<$reveal state=<> type="nomatch" text="" default=""> -
-<$set name="userInput" value={{{ [get[text]] }}}> -<$list filter="[minlength{$:/config/Tags/MinLength}limit[1]]" emptyMessage="
{{$:/language/Search/Search/TooShort}}
" variable="listItem"> -<$list filter=<> variable="tag"> -<$list filter="[addsuffix[-primaryList]] -[get[text]]" emptyMessage="<$vars button-classes='tc-btn-invisible tc-tag-button-selected' actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<>>{{||$:/core/ui/TagPickerTagTemplate}}"> -<$vars button-classes="tc-btn-invisible" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<>>{{||$:/core/ui/TagPickerTagTemplate}} - - -
-<$list filter="[minlength{$:/config/Tags/MinLength}limit[1]]" emptyMessage="
{{$:/language/Search/Search/TooShort}}
" variable="listItem"> -<$list filter=<> variable="tag"> -<$list filter="[addsuffix[-secondaryList]] -[get[text]]" emptyMessage="<$vars button-classes='tc-btn-invisible tc-tag-button-selected' actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<>>{{||$:/core/ui/TagPickerTagTemplate}}"> -<$vars button-classes="tc-btn-invisible" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<>>{{||$:/core/ui/TagPickerTagTemplate}} - - - -
- -
-
- - +<$vars + newTagNameInputTiddlerQualified=<> + newTagNameSelectionTiddlerQualified=<> + fallbackTarget={{$(palette)$##tag-background}} + colourA={{$(palette)$##foreground}} + colourB={{$(palette)$##background}} +> + <$vars + storeTitle={{{ [!match[]] ~[] }}} + tagSelectionState={{{ [!match[]] ~[] }}} + > + <$vars + refreshTitle=<> + nonSystemTagsFilter="[tags[]!is[system]search:titlesort[]]" + systemTagsFilter="[tags[]is[system]search:titlesort[]]" + > +
+
+ + <$macrocall + $name="keyboard-driven-input" + tiddler=<> + storeTitle=<> + refreshTitle=<> + selectionStateTitle=<> + inputAcceptActions="<$macrocall $name='add-tag-actions' actions=<<__actions__>> tagField=<<__tagField__>>/>" + inputCancelActions=<> + tag="input" + placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} + focusPopup=<> + class="tc-edit-texteditor tc-popup-handle" + tabindex=<> + focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} + filterMinLength={{$:/config/Tags/MinLength}} + cancelPopups=<> + configTiddlerFilter="[[$:/core/macros/tag-picker]]" + /> + + <$button popup=<> + class="tc-btn-invisible tc-btn-dropdown" + tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} + aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}} + > + {{$:/core/images/down-arrow}} + + <$reveal state=<> type="nomatch" text=""> + <$button class="tc-btn-invisible tc-small-gap tc-btn-dropdown" + tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} + aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}} + > + {{$:/core/images/close-button}}<> + + + + <$set name="tag" value={{{ [get[text]] }}}> + <$button set=<> setTo="" class=""> + <$action-listops $tiddler=<> $field=<<__tagField__>> $subfilter="[trim[]]"/> + $actions$ + <$set name="currentTiddlerCSSEscaped" value={{{ [escapecss[]] }}}> + <><$action-sendmessage $message="tm-focus-selector" $param=<>/> + + {{$:/language/EditTemplate/Tags/Add/Button}} + + + +
+
+ <$reveal state=<> type="nomatch" text="" default=""> +
+ <$set name="userInput" value={{{ [get[text]] }}}> + <$list + filter="[minlength{$:/config/Tags/MinLength}limit[1]]" + emptyMessage="
+ {{$:/language/Search/Search/TooShort}}
" variable="listItem"> + <$list filter=<> variable="tag"> + <$list + filter="[addsuffix[-primaryList]] -[get[text]]" + emptyMessage="<$vars button-classes='tc-btn-invisible tc-tag-button-selected' actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<>>{{||$:/core/ui/TagPickerTagTemplate}}" + > + <$vars button-classes="tc-btn-invisible" + actions=<<__actions__>> + tagField=<<__tagField__>> + currentTiddler=<> + > + {{||$:/core/ui/TagPickerTagTemplate}} + + + + +
+ <$list filter="[minlength{$:/config/Tags/MinLength}limit[1]]" emptyMessage="
+ {{$:/language/Search/Search/TooShort}}
" variable="listItem"> + <$list filter=<> variable="tag"> + <$list filter="[addsuffix[-secondaryList]] -[get[text]]" + emptyMessage="<$vars button-classes='tc-btn-invisible tc-tag-button-selected' actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<>>{{||$:/core/ui/TagPickerTagTemplate}}" + > + <$vars button-classes="tc-btn-invisible" + actions=<<__actions__>> + tagField=<<__tagField__>> + currentTiddler=<> + > + {{||$:/core/ui/TagPickerTagTemplate}} + + + + + +
+ +
+
+ + \end + \define tag-picker(actions,tagField:"tags") \whitespace trim <$vars saveTiddler=<> palette={{$:/palette}}> -<$list filter="[match[]]" emptyMessage="<$macrocall $name='tag-picker-inner' actions=<<__actions__>> tagField=<<__tagField__>>/>"> -<$set name="newTagNameTiddler" value=<>> -<$macrocall $name="tag-picker-inner" actions=<<__actions__>> tagField=<<__tagField__>>/> - - + <$list + filter="[match[]]" + emptyMessage="<$macrocall $name='tag-picker-inner' actions=<<__actions__>> tagField=<<__tagField__>>/>" + > + <$set name="newTagNameTiddler" value=<>> + <$macrocall $name="tag-picker-inner" actions=<<__actions__>> tagField=<<__tagField__>>/> + + \end From 8ef6d78beffb6496fe5daa2c81a529a79046ba3c Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Thu, 19 Jan 2023 21:16:46 +0000 Subject: [PATCH 252/937] Filesystemadaptor: Use json format for tiddlers with fieldnames containing hash Fixes #7144 --- core/modules/utils/filesystem.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/utils/filesystem.js b/core/modules/utils/filesystem.js index dd2672ceb..cb542493f 100644 --- a/core/modules/utils/filesystem.js +++ b/core/modules/utils/filesystem.js @@ -228,7 +228,7 @@ exports.generateTiddlerFileInfo = function(tiddler,options) { hasUnsafeFields = hasUnsafeFields || /[\x00-\x1F]/mg.test(value); hasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value); } - hasUnsafeFields = hasUnsafeFields || /:/mg.test(fieldName); + hasUnsafeFields = hasUnsafeFields || /:|#/mg.test(fieldName); }); // Check for field values if(hasUnsafeFields) { From 6718f82b4cbb9b73772ff371bcca0baf16e5c2f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A9lumire?= <31185220+Telumire@users.noreply.github.com> Date: Fri, 20 Jan 2023 11:15:35 +0100 Subject: [PATCH 253/937] Small gap fix for the updated toc macro (alternative to tc-tiny-gap-left) (#7219) --- core/wiki/macros/toc.tid | 2 +- themes/tiddlywiki/vanilla/base.tid | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/core/wiki/macros/toc.tid b/core/wiki/macros/toc.tid index c26351385..6b8a83295 100644 --- a/core/wiki/macros/toc.tid +++ b/core/wiki/macros/toc.tid @@ -7,7 +7,7 @@ tags: $:/tags/Macro \define toc-caption() \whitespace trim - + <$set name="tv-wikilinks" value="no"> <$transclude field="caption"> <$view field="title"/> diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 027541cc7..9b7104cbd 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -2774,6 +2774,11 @@ input.tc-palette-manager-colour-input { color: <>; } +button + .tc-toc-caption, +button > .tc-toc-caption{ + margin-left: .25em; +} + .tc-table-of-contents svg { width: 0.7em; height: 0.7em; From 194df33de3d590b5ba52166bf18af013f12bbd27 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 21 Jan 2023 13:57:14 +0000 Subject: [PATCH 254/937] Update release note --- .../prerelease/tiddlers/Release 5.2.6.tid | 42 +++++++++++++++---- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.2.6.tid b/editions/prerelease/tiddlers/Release 5.2.6.tid index d1b1343bc..d4bde1632 100644 --- a/editions/prerelease/tiddlers/Release 5.2.6.tid +++ b/editions/prerelease/tiddlers/Release 5.2.6.tid @@ -1,6 +1,6 @@ caption: 5.2.6 -created: 20221219172444961 -modified: 20221219172444961 +created: 20230119221001957 +modified: 20230119221001957 tags: ReleaseNotes title: Release 5.2.6 type: text/vnd.tiddlywiki @@ -13,11 +13,21 @@ type: text/vnd.tiddlywiki Improvements to the following translations: -* +* Chinese +* Italian + +! Plugin Improvements + +* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6528">> the [[Markdown Plugin]] to use the newer and better maintained [[markdown-it|https://github.com/markdown-it/markdown-it]] library. The previous Markdown plugin remains available as "markdown-legacy" +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7176">> [[Innerwiki Plugin]] to allow the `<$data>` widget to override existing tiddler fields +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7207">>, <<.link-badge-here "https://github.com/Jermolene/TiddlyWiki5/commit/c39ef398bffae12c0ed7324d9b6d9d29f0f2f9ff">> and <<.link-badge-here "https://github.com/Jermolene/TiddlyWiki5/commit/8f7441f296351a4dd0852c3c782f8874d398e052">> problem preventing [[Share Plugin]] from working properly + ! Usability Improvements -* +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7217">> consistency of tiddler deletion by allowing missing tiddlers to be 'deleted', which just results in them being closed +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/34643a42790777f1b235f57b5093bb29bd0b3a14">> layout switcher to include an optional icon for each layout +* <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/commit/c0615e20ecf7d5d5e66d8a2acd28b80e8d59688d">> [[improvements to table layout|https://github.com/Jermolene/TiddlyWiki5/pull/7010]] from v5.2.5 that have proved to not be backwards compatible ! Widget Improvements @@ -25,19 +35,35 @@ Improvements to the following translations: ! Filter improvements -* +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/7121">> [[encodeuricomponent Operator]] to encode characters such as `*` that are illegal in Windows filenames ! Hackability Improvements -* +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/7185">> the [[pragma|Pragma]] syntax to allow them to be indented with whitespace +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7118">> readability of [[tag-picker Macro]] and [[keyboard-driven-input Macro]] +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7129">> reliability of [[list-links-draggable Macro]] and [[list-tagged-draggable Macro]] by using the new GenesisWidget instead of textual substitution +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7210">> [[external JavaScript core support|Using the external JavaScript template]] to make it possible to save an external JS wiki as a standard single file wiki ! Bug Fixes -* +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6622">> bug with the DropzoneWidget that prevented all the available formats being pasted +* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/7102">> PDF rendering to use an `