From 904cfde5683b42d6a3088ebd8e40eb753b65dd21 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9ophile=20Desmedt?=
<34781168+DesignThinkerer@users.noreply.github.com>
Date: Mon, 2 Dec 2024 19:03:53 +0100
Subject: [PATCH 1/2] refactor to use modern tiddlywiki features:
Replace reveal widget by conditional shortcut syntax, use string substitution, let widget
---
core/wiki/peek-stylesheets.tid | 73 +++++++++++++++-------------------
1 file changed, 32 insertions(+), 41 deletions(-)
diff --git a/core/wiki/peek-stylesheets.tid b/core/wiki/peek-stylesheets.tid
index 7d9726fbeda..6f364de7760 100644
--- a/core/wiki/peek-stylesheets.tid
+++ b/core/wiki/peek-stylesheets.tid
@@ -1,35 +1,28 @@
title: $:/snippets/peek-stylesheets
-\define expandable-stylesheets-list()
+\procedure expandable-stylesheets-list()
\whitespace trim
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]">
-<$vars state=<>>
-<$set name="state" value={{{ [addsuffix] }}}>
+<$let openState=`$:/state/peek-tiddler/open/$(currentTiddler)$$(qualify)$` open={{{ [get[text]else[no]] }}}>
-
-<$reveal type="match" state=<> text="yes" tag="span">
-<$button set=<> setTo="no" class="tc-btn-invisible">
-{{$:/core/images/down-arrow}}
-$button>
-$reveal>
-<$reveal type="nomatch" state=<> text="yes" tag="span">
-<$button set=<> setTo="yes" class="tc-btn-invisible">
-{{$:/core/images/right-arrow}}
-$button>
-$reveal>
-<$link>
-<$view field="title"/>
-$link>
-<$reveal type="match" state=<> text="yes" tag="div">
-<$set name="source" tiddler=<>>
-<$wikify name="styles" text=<
-$set>
-$vars>
+$let>
$list>
\end
@@ -39,38 +32,36 @@ title: $:/snippets/peek-stylesheets
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]">
-
-<$link>
-<$view field="title"/>
-$link>
-<$set name="source" tiddler=<>>
-<$wikify name="styles" text=<
$list>
\end
\whitespace trim
-<$vars modeState=<>>
+<$let modeState=`$:/state/peek-stylesheets/mode/$(qualify)$` mode={{{ [get[text]else[expand]] }}}>
-<$reveal type="nomatch" state=<> text="expanded" tag="div">
-<$button set=<> setTo="expanded" class="tc-btn-invisible">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}$button>
-$reveal>
-<$reveal type="match" state=<> text="expanded" tag="div">
-<$button set=<> setTo="restored" class="tc-btn-invisible">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}$button>
-$reveal>
+<$checkbox tiddler=<> field="text" checked="yes" style.appearance="none">
+
+<%if [match[expand]]%>
+{{$:/core/images/chevron-right|1em}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}
+<%else%>
+{{$:/core/images/chevron-down|1em}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}
+<%endif%>
+
+$checkbox>
-<$reveal type="nomatch" state=<> text="expanded" tag="div">
+<%if [match[expand]]%>
<>
-$reveal>
-<$reveal type="match" state=<> text="expanded" tag="div">
+<%else%>
<>
-$reveal>
+<%endif%>
-$vars>
+$let>
\ No newline at end of file
From 62e1f9442190fc4cf0216e88d25d972ee0b7d440 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9ophile=20Desmedt?=
<34781168+DesignThinkerer@users.noreply.github.com>
Date: Mon, 2 Dec 2024 20:11:21 +0100
Subject: [PATCH 2/2] Improve macro for better modularity
---
core/wiki/peek-stylesheets.tid | 67 +++++++++++++---------------------
1 file changed, 26 insertions(+), 41 deletions(-)
diff --git a/core/wiki/peek-stylesheets.tid b/core/wiki/peek-stylesheets.tid
index 6f364de7760..58ffaebcac4 100644
--- a/core/wiki/peek-stylesheets.tid
+++ b/core/wiki/peek-stylesheets.tid
@@ -1,67 +1,52 @@
title: $:/snippets/peek-stylesheets
-\procedure expandable-stylesheets-list()
-\whitespace trim
-
-<$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]">
-<$let openState=`$:/state/peek-tiddler/open/$(currentTiddler)$$(qualify)$` open={{{ [get[text]else[no]] }}}>
--
-<$checkbox tiddler=<> field="text" checked="yes" style.appearance="none">
+\procedure expandable-content()
+<$wikify name="styles" text={{!!text}}>
+<$codeblock code=<> language="css"/>
+$wikify>
+\end
+
+\procedure toggle-content()
+<$parameters openState="" open="[substitute[]get[text]else[no]]" openImage="$:/core/images/down-arrow" closedImage="$:/core/images/right-arrow" openCaption="" closedCaption="">
+<%if [!is[blank]] %>
+<$checkbox tiddler={{{ [substitute[]] }}} field="text" checked="yes" style.appearance="none">
-<%if [match[yes]]%>
-{{$:/core/images/down-arrow|1em}}
+<%if [subfiltermatch[yes]] %>
+<$transclude $tiddler=<> size="1em" /> <>
<%else%>
-{{$:/core/images/right-arrow|1em}}
+<$transclude $tiddler=<> size="1em" /> <>
<%endif%>
$checkbox>
-<$link/>
-<%if [match[yes]]%>
-<$wikify name="styles" text={{!!text}}>
-<$codeblock code=<> language="css"/>
-$wikify>
<%endif%>
-
-$let>
-$list>
-
+$parameters>
\end
-\define stylesheets-list()
+\procedure expandable-list()
\whitespace trim
+<$parameters filter="" openState="" open="[substitute[]get[text]else[no]]">
-<$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]">
+<$list filter=<> >
-
+<$transclude $variable="toggle-content" open=<> openState=<> />
<$link/>
-<$wikify name="styles" text={{!!text}}>
-
-
-<$text text=<>/>
-
-
-$wikify>
+<%if [subfiltermatch[yes]]%>
+<>
+<%endif%>
$list>
+$parameters>
\end
-\whitespace trim
-<$let modeState=`$:/state/peek-stylesheets/mode/$(qualify)$` mode={{{ [get[text]else[expand]] }}}>
+<$let modeState=`$:/state/peek-stylesheets/mode/$(qualify)$` mode={{{ [get[text]else[expand]] }}} listFilter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]">
-<$checkbox tiddler=<> field="text" checked="yes" style.appearance="none">
-
-<%if [match[expand]]%>
-{{$:/core/images/chevron-right|1em}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}
-<%else%>
-{{$:/core/images/chevron-down|1em}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}
-<%endif%>
-
-$checkbox>
+<$transclude $variable="toggle-content" openImage="$:/core/images/chevron-right" closedImage="$:/core/images/chevron-down" openState=<> openCaption={{$:/language/ControlPanel/Stylesheets/Expand/Caption}} closedCaption={{$:/language/ControlPanel/Stylesheets/Restore/Caption}}/>
<%if [match[expand]]%>
-<>
+<$transclude $variable="expandable-list" filter=<> open="yes"/>
<%else%>
-<>
+<$transclude $variable="expandable-list" filter=<> openState="$:/state/peek-tiddler/open/$(currentTiddler)$$(qualify)$"/>
<%endif%>
$let>
\ No newline at end of file