mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2026-02-11 20:50:20 +00:00
Compare commits
9 Commits
mvv-furthe
...
release-no
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f63d56e21f | ||
|
|
e11c3033cf | ||
|
|
65fef1a731 | ||
|
|
aed4e082f7 | ||
|
|
ec01222171 | ||
|
|
1bc9b4bf33 | ||
|
|
42a908e1c9 | ||
|
|
70689a6de4 | ||
|
|
64ee20edd2 |
@@ -122,15 +122,15 @@ tags: $:/tags/Macro
|
||||
\whitespace trim
|
||||
\procedure keyboard-driven-input-actions()
|
||||
<%if [<event-key-descriptor>match[((input-accept))]] %>
|
||||
<<inputAcceptActions>>
|
||||
<$transclude $variable=inputAcceptActions $fillignore=yes />
|
||||
<%elseif [<event-key-descriptor>match[((input-accept-variant))]] %>
|
||||
<<inputAcceptVariantActions>>
|
||||
<$transclude $variable=inputAcceptVariantActions $fillignore=yes />
|
||||
<%elseif [<event-key-descriptor>match[((input-up))]] %>
|
||||
<<input-next-actions-before>>
|
||||
<$transclude $variable=input-next-actions-before $fillignore=yes />
|
||||
<%elseif [<event-key-descriptor>match[((input-down))]] %>
|
||||
<<input-next-actions-after>>
|
||||
<$transclude $variable=input-next-actions-after $fillignore=yes />
|
||||
<%elseif [<event-key-descriptor>match[((input-cancel))]] %>
|
||||
<<inputCancelActions>>
|
||||
<$transclude $variable=inputCancelActions $fillignore=yes />
|
||||
<%endif%>
|
||||
\end keyboard-driven-input-actions
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
change-category: internal
|
||||
change-category: developer
|
||||
change-type: enhancement
|
||||
created: 20260120153052332
|
||||
description: Adds a destroy method for widgets allowing for clean up of resources when a widget is removed.
|
||||
|
||||
@@ -4,5 +4,5 @@ release: 5.4.0
|
||||
tags: $:/tags/ChangeNote
|
||||
change-type: performance
|
||||
change-category: internal
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9118
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9119
|
||||
github-contributors: Leilei332
|
||||
|
||||
@@ -4,5 +4,5 @@ release: 5.4.0
|
||||
tags: $:/tags/ChangeNote
|
||||
change-type: deprecation
|
||||
change-category: internal
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9118
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9131
|
||||
github-contributors: Leilei332
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
title: $:/changenotes/5.4.0/#9177
|
||||
description: Add Display Field to list-tagged-draggable and list-links-draggable
|
||||
description: Add Display Field to list-tagged-draggable and list-links-draggable macros
|
||||
release: 5.4.0
|
||||
tags: $:/tags/ChangeNote
|
||||
change-type: enhancement
|
||||
change-category: usability
|
||||
change-category: hackability
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9177
|
||||
github-contributors: kookma
|
||||
|
||||
|
||||
@@ -7,4 +7,4 @@ change-category: internal
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9235 https://github.com/TiddlyWiki/TiddlyWiki5/pull/9325
|
||||
github-contributors: Leilei332
|
||||
|
||||
Removes nested `<span class="tc-keyboard">` element in core search field.
|
||||
Removes nested `<span class="tc-keyboard">` element in core search field.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
change-category: usability
|
||||
change-category: hackability
|
||||
change-type: enhancement
|
||||
created: 20251115012214040
|
||||
description: list-links-draggable defaults to currentTiddler if tiddler parameter is missing
|
||||
|
||||
@@ -4,7 +4,7 @@ release: 5.4.0
|
||||
tags: $:/tags/ChangeNote
|
||||
change-type: enhancement
|
||||
change-category: internal
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9287
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9287 https://github.com/TiddlyWiki/TiddlyWiki5/pull/9657
|
||||
github-contributors: Jermolene
|
||||
|
||||
Doing so enables us to filter and group changes. For example, we could show all the breaking changes between two releases.
|
||||
|
||||
@@ -3,7 +3,7 @@ description: Add the prevailing mimetype for CSV parser
|
||||
release: 5.4.0
|
||||
tags: $:/tags/ChangeNote
|
||||
change-type: enhancement
|
||||
change-category: internal
|
||||
change-category: developer
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9445
|
||||
github-contributors: EvidentlyCube
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ description: Import UI now conditionally displays file-type-specific import opti
|
||||
tags: $:/tags/ChangeNote
|
||||
release: 5.4.0
|
||||
change-type: enhancement
|
||||
change-category: hackability
|
||||
change-category: usability
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9465
|
||||
github-contributors: linonetwo
|
||||
|
||||
|
||||
@@ -5,6 +5,6 @@ tags: $:/tags/ChangeNote
|
||||
change-type: bugfix
|
||||
change-category: internal
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9570
|
||||
github-contributors: jermolene
|
||||
github-contributors: Jermolene
|
||||
|
||||
Fixes issue whereby transcluding a _canonical_uri tiddler with a missing image did not assign the progress classes `tc-image-loading`, `tc-image-loaded` and `tc-image-error`.
|
||||
@@ -3,7 +3,7 @@ created: 20260106174849522
|
||||
modified: 20260106174849522
|
||||
tags: $:/tags/ChangeNote
|
||||
change-type: enhancement
|
||||
change-category: usability
|
||||
change-category: hackability
|
||||
description: The button classes of Editor toolbar buttons can now be evaluated as filter expressions
|
||||
release: 5.4.0
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9585
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
change-category: widget
|
||||
change-type: enhancement
|
||||
created: 20260125124838970
|
||||
description: adds support for pointer capture and enabling/disabling the widget
|
||||
description: Adds support for pointer capture and enabling/disabling to the EventCatcherWidget.
|
||||
github-contributors: saqimtiaz
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9609
|
||||
modified: 20260125202924515
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
change-category: usability
|
||||
change-category: hackability
|
||||
change-type: enhancement
|
||||
created: 20260124121646761
|
||||
description: The simple toc macro now supports a level parameter
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
change-category: usability
|
||||
change-category: hackability
|
||||
change-type: enhancement
|
||||
created: 20260126125300
|
||||
description: Add start- and endactions to link-widget, list-links-draggable and list-tagged-draggable macros
|
||||
|
||||
@@ -3,7 +3,7 @@ description: Add "Cascade Details" to the Advanced tab of the Tiddler Info panel
|
||||
tags: $:/tags/ChangeNote
|
||||
release: 5.4.0
|
||||
change-type: enhancement
|
||||
change-category: hackability
|
||||
change-category: usability
|
||||
github-links: https://github.com/Jermolene/TiddlyWiki5/pull/9634 https://github.com/Jermolene/TiddlyWiki5/pull/9643
|
||||
github-contributors: DesignThinkerer
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@ description: Background actions and media query tracking
|
||||
tags: $:/tags/ChangeNote
|
||||
release: 5.4.0
|
||||
change-type: enhancement
|
||||
change-category: internal
|
||||
change-category: hackability
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9641
|
||||
github-contributors: Jermolene
|
||||
|
||||
Introduces[[Background Actions]] that are triggered whenever there is a change to the results of a specified filter.
|
||||
Introduces [[Background Actions]] that are triggered whenever there is a change to the results of a specified filter.
|
||||
|
||||
Building on that, it also introduces a new [[Media Query Tracker Mechanism]] that can track the results of any CSS media query (not just dark mode), storing the results in a shadow `$:/info/...` tiddler
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ type: text/vnd.tiddlywiki
|
||||
description: Under development
|
||||
|
||||
\procedure release-introduction()
|
||||
Release v5.4.0 is an important release because it deliberately and forensically loosens backwards compatibility where needed to allow significant new features and fundamental improvements to be made.
|
||||
Release v5.4.0 deliberately and forensically loosens backwards compatibility to clear the path for significant new features and fundamental improvements to be made in the future.
|
||||
|
||||
''Please note that this release note is not yet fully completed, please see the change history on ~GitHub for the full list of changes included in this release.''
|
||||
''Please note that there are some changes that do not yet change notes, please see the change history on ~GitHub for the full list of changes.''
|
||||
|
||||
See the [[project plan|https://github.com/orgs/TiddlyWiki/projects/4]] for full details.
|
||||
\end release-introduction
|
||||
|
||||
@@ -3,7 +3,7 @@ description: Draft title internationalization
|
||||
release: 5.4.0
|
||||
tags: $:/tags/ChangeNote
|
||||
change-type: enhancement
|
||||
change-category: internal
|
||||
change-category: translation
|
||||
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/8891
|
||||
github-contributors: Leilei332
|
||||
|
||||
|
||||
@@ -53,3 +53,13 @@ Impact note fields:
|
||||
* `description` - a brief description of the impact
|
||||
* `impact-type` - the type of impact; see [[here|Release Notes and Changes]] for valid values
|
||||
* `text` - description of the impact if required
|
||||
|
||||
! Summary Lists
|
||||
|
||||
Summary sections are curated via lists stored in fields on the tiddler `$:/tw5.com/releases/info/summary-lists`.
|
||||
|
||||
Each field is named `<section>/<release>` and contains a list of change note tiddler titles, for example:
|
||||
|
||||
* `highlights/5.4.0`
|
||||
* `big-bug-fixes/5.4.0`
|
||||
* `clearing-the-decks/5.4.0`
|
||||
|
||||
@@ -1,35 +1,75 @@
|
||||
title: $:/tw5.com/releases/info/
|
||||
|
||||
category-order: translation plugin usability theme hackability widget filters performance nodejs internal developer
|
||||
categories/internal/caption: Internal
|
||||
categories/translation/caption: Translation
|
||||
categories/plugin/caption: Plugin
|
||||
categories/widget/caption: Widget
|
||||
categories/usability/caption: Usability
|
||||
categories/theme/caption: Theme
|
||||
categories/hackability/caption: Hackability
|
||||
categories/nodejs/caption: Node.js
|
||||
categories/performance/caption: Performance
|
||||
categories/developer/caption: Developer
|
||||
categories/filters/caption: Filters
|
||||
change-types/bugfix/caption: Bugfix
|
||||
category-order: translation usability hackability performance widget filters plugin theme nodejs developer internal
|
||||
|
||||
summary-section-order: highlights big-bug-fixes clearing-the-decks
|
||||
change-type-order: feature enhancement performance bugfix deprecation security
|
||||
impact-type-order: compatibility-break deprecation pluginisation
|
||||
tab-order: [[Summary]] [[Change Types]] [[Change Categories]] [[Impacts]]
|
||||
categories/developer/singular: Developer
|
||||
categories/developer/plural: Developer
|
||||
categories/filters/singular: Filters
|
||||
categories/filters/plural: Filters
|
||||
categories/hackability/singular: Hackability
|
||||
categories/hackability/plural: Hackability
|
||||
categories/internal/singular: Internal
|
||||
categories/internal/plural: Internal
|
||||
categories/nodejs/singular: Node.js
|
||||
categories/nodejs/plural: Node.js
|
||||
categories/performance/singular: Performance
|
||||
categories/performance/plural: Performance
|
||||
categories/plugin/singular: Plugin
|
||||
categories/plugin/plural: Plugins
|
||||
categories/theme/singular: Theme
|
||||
categories/theme/plural: Theming
|
||||
categories/translation/singular: Translation
|
||||
categories/translation/plural: Translation
|
||||
categories/usability/singular: Usability
|
||||
categories/usability/plural: Usability
|
||||
categories/widget/singular: Widget
|
||||
categories/widget/plural: Widgets
|
||||
change-types/bugfix/singular: Bugfix
|
||||
change-types/bugfix/colour: #ffe246
|
||||
change-types/feature/caption: Feature
|
||||
change-types/feature/colour: #91ba66
|
||||
change-types/enhancement/caption: Enhancement
|
||||
change-types/enhancement/colour: #cba5ff
|
||||
change-types/deprecation/caption: Deprecation
|
||||
change-types/bugfix/plural: Bugfixes
|
||||
change-types/deprecation/singular: Deprecation
|
||||
change-types/deprecation/colour: #ff9d6c
|
||||
change-types/security/caption: Security
|
||||
change-types/security/colour: #ff6666
|
||||
change-types/performance/caption: Performance
|
||||
change-types/deprecation/plural: Deprecations
|
||||
change-types/enhancement/singular: Enhancement
|
||||
change-types/enhancement/colour: #cba5ff
|
||||
change-types/enhancement/plural: Enhancements
|
||||
change-types/feature/singular: Feature
|
||||
change-types/feature/colour: #91ba66
|
||||
change-types/feature/plural: Features
|
||||
change-types/performance/singular: Performance
|
||||
change-types/performance/colour: #c2c7ff
|
||||
impact-types/deprecation/caption: Deprecation
|
||||
impact-types/deprecation/colour/foreground: #882222
|
||||
impact-types/deprecation/colour/background: #ffdddd
|
||||
impact-types/compatibility-break/caption: Compatibility Break
|
||||
impact-types/compatibility-break/colour/foreground: #228822
|
||||
change-types/performance/plural: Performance
|
||||
change-types/security/singular: Security
|
||||
change-types/security/colour: #ff6666
|
||||
change-types/security/plural: Security
|
||||
impact-types/compatibility-break/singular: Compatibility Break
|
||||
impact-types/compatibility-break/colour/background: #ddffdd
|
||||
impact-types/pluginisation/caption: Pluginisation
|
||||
impact-types/pluginisation/colour/foreground: #222288
|
||||
impact-types/compatibility-break/colour/foreground: #228822
|
||||
impact-types/compatibility-break/plural: Compatibility Breaks
|
||||
impact-types/deprecation/singular: Deprecation
|
||||
impact-types/deprecation/colour/background: #ffdddd
|
||||
impact-types/deprecation/colour/foreground: #882222
|
||||
impact-types/deprecation/plural: Deprecations
|
||||
impact-types/pluginisation/singular: Pluginisation
|
||||
impact-types/pluginisation/colour/background: #ddddff
|
||||
impact-types/pluginisation/colour/foreground: #222288
|
||||
impact-types/pluginisation/plural: Pluginisations
|
||||
summary-sections/big-bug-fixes/plural: Big Bug Fixes
|
||||
summary-sections/clearing-the-decks/plural: Clearing the Decks
|
||||
summary-sections/highlights/plural: Highlights
|
||||
summary-sections/highlights/default-state: open
|
||||
categories/translation/colour: #7ec8e3
|
||||
categories/usability/colour: #f4a261
|
||||
categories/hackability/colour: #9b8ec4
|
||||
categories/performance/colour: #87ceeb
|
||||
categories/widget/colour: #e78ac3
|
||||
categories/filters/colour: #8cc56d
|
||||
categories/plugin/colour: #f0c674
|
||||
categories/theme/colour: #d4a76a
|
||||
categories/nodejs/colour: #77bb66
|
||||
categories/developer/colour: #6baed6
|
||||
categories/internal/colour: #b0b0b0
|
||||
|
||||
@@ -48,69 +48,295 @@ tags: $:/tags/Global
|
||||
</span>
|
||||
\end impact-pill
|
||||
|
||||
\procedure change-list()
|
||||
\procedure release-section-toggle(state,default)
|
||||
\whitespace trim
|
||||
<div class="doc-release-note">
|
||||
<$list filter="[enlist{$:/tw5.com/releases/info/category-order}]" variable="category">
|
||||
<%if [tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-category}match<category>] %>
|
||||
<div class="doc-release-note-heading">
|
||||
<h2 class="doc-change-note-category">
|
||||
<$text text={{{ [[$:/tw5.com/releases/info/categories/]addsuffix<category>addsuffix[/caption]get[text]] }}} />
|
||||
</h2>
|
||||
</div>
|
||||
<$list filter="[tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-category}match<category>sort[description]]" variable="change">
|
||||
<div class="doc-change-note-item">
|
||||
<h3 class="doc-change-note-heading">
|
||||
<$link
|
||||
to="Release Notes and Changes"
|
||||
class="doc-link-badge"
|
||||
style.backgroundColor={{{ [<change>get[change-type]addprefix[$:/tw5.com/releases/info/change-types/]addsuffix[/colour]get[text]] }}}
|
||||
>
|
||||
<$text text={{{ [<change>get[change-type]addprefix[$:/tw5.com/releases/info/change-types/]addsuffix[/caption]get[text]] }}}/>
|
||||
</$link> <$transclude $tiddler=<<change>> $field="description" $mode="inline"/></h3>
|
||||
<div class="doc-change-note-info-list">
|
||||
<$list filter="[tag[$:/tags/ImpactNote]] :filter[{!!changenote}match<change>] +[sort[description]]" variable="impact" counter="impactCount">
|
||||
<div class="doc-change-note-info-list-item-caption">
|
||||
<%if [<impactCount>match[1]] %>
|
||||
Impact:
|
||||
<%endif%>
|
||||
</div>
|
||||
<div class="doc-change-note-info-list-item-description">
|
||||
<div class="doc-change-note-info-list-item-description-summary">
|
||||
<$transclude $variable="impact-pill" $mode="inline" impact-type={{{ [<impact>get[impact-type]] }}}/>
|
||||
<$text text=": "/>
|
||||
<$transclude $tiddler=<<impact>> $field="description" $mode="inline"/>
|
||||
</div>
|
||||
<div class="doc-change-note-info-list-item-description-details">
|
||||
<$transclude $tiddler=<<impact>> $field="text" $mode="block"/>
|
||||
</div>
|
||||
</div>
|
||||
</$list>
|
||||
<div class="doc-change-note-info-list-item-caption">
|
||||
<$text text="GitHub: "/>
|
||||
</div>
|
||||
<div class="doc-change-note-info-list-item-description">
|
||||
<$list filter="[<change>get[github-links]enlist-input[]]" variable="link">
|
||||
<a
|
||||
href=<<link>>
|
||||
class="doc-github-link"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{{$:/core/images/github}}
|
||||
</a>
|
||||
</$list>
|
||||
</div>
|
||||
</div>
|
||||
<div class="doc-change-note-description">
|
||||
<$transclude $tiddler=<<change>> $mode="block"/>
|
||||
</div>
|
||||
</div>
|
||||
</$list>
|
||||
<%endif%>
|
||||
<$reveal type="nomatch" state=<<state>> text="open" default=<<default>> tag="span">
|
||||
<$action-setfield $tiddler=<<state>> $field="text" $value="open"/>
|
||||
<span class="doc-release-section-toggle">{{$:/core/images/right-arrow}}</span>
|
||||
</$reveal>
|
||||
<$reveal type="match" state=<<state>> text="open" default=<<default>> tag="span">
|
||||
<$action-setfield $tiddler=<<state>> $field="text" $value="close"/>
|
||||
<span class="doc-release-section-toggle">{{$:/core/images/down-arrow}}</span>
|
||||
</$reveal>
|
||||
\end release-section-toggle
|
||||
|
||||
\procedure change-note-type-badge()
|
||||
\whitespace trim
|
||||
<$link
|
||||
to="Release Notes and Changes"
|
||||
class="doc-link-badge"
|
||||
style.backgroundColor={{{ [<change>get[change-type]addprefix[$:/tw5.com/releases/info/change-types/]addsuffix[/colour]get[text]] }}}
|
||||
>
|
||||
<$text text={{{ [<change>get[change-type]addprefix[$:/tw5.com/releases/info/change-types/]addsuffix[/singular]get[text]] }}}/>
|
||||
</$link>
|
||||
\end change-note-type-badge
|
||||
|
||||
\procedure change-note-category-badge()
|
||||
\whitespace trim
|
||||
<$link
|
||||
to="Release Notes and Changes"
|
||||
class="doc-link-badge"
|
||||
style.backgroundColor={{{ [<change>get[change-category]addprefix[$:/tw5.com/releases/info/categories/]addsuffix[/colour]get[text]] }}}
|
||||
>
|
||||
<$text text={{{ [<change>get[change-category]addprefix[$:/tw5.com/releases/info/categories/]addsuffix[/singular]get[text]] }}}/>
|
||||
</$link>
|
||||
\end change-note-category-badge
|
||||
|
||||
\procedure change-note-heading()
|
||||
\whitespace trim
|
||||
<h3 class="doc-change-note-heading"
|
||||
style.backgroundColor={{{ [<change>get[change-type]addprefix[$:/tw5.com/releases/info/change-types/]addsuffix[/colour]get[text]addsuffix[40]] }}}
|
||||
>
|
||||
<%if [<show-type-badge>!match[no]] %><<change-note-type-badge>><%endif%>
|
||||
<%if [<show-category-badge>match[yes]] %><<change-note-category-badge>><%endif%>
|
||||
<%if [<show-tiddler-link>match[yes]] %><$link to=<<change>> class="doc-change-note-description-link"><$transclude $tiddler=<<change>> $field="description" $mode="inline"/></$link><%else%><$transclude $tiddler=<<change>> $field="description" $mode="inline"/><%endif%>
|
||||
</h3>
|
||||
\end change-note-heading
|
||||
|
||||
\procedure change-note-impacts()
|
||||
\whitespace trim
|
||||
<$list filter="[tag[$:/tags/ImpactNote]] :filter[{!!changenote}match<change>] +[sort[description]]" variable="impact" counter="impactCount">
|
||||
<div class="doc-change-note-info-list-item-caption">
|
||||
<%if [<impactCount>match[1]] %>Impact:<%endif%>
|
||||
</div>
|
||||
<div class="doc-change-note-info-list-item-description">
|
||||
<div class="doc-change-note-info-list-item-description-summary">
|
||||
<$transclude $variable="impact-pill" $mode="inline" impact-type={{{ [<impact>get[impact-type]] }}}/>
|
||||
<$text text=": "/>
|
||||
<%if [<show-tiddler-link>match[yes]] %><$link to=<<impact>> class="doc-change-note-description-link"><$transclude $tiddler=<<impact>> $field="description" $mode="inline"/></$link><%else%><$transclude $tiddler=<<impact>> $field="description" $mode="inline"/><%endif%>
|
||||
</div>
|
||||
<div class="doc-change-note-info-list-item-description-details">
|
||||
<$transclude $tiddler=<<impact>> $field="text" $mode="block"/>
|
||||
</div>
|
||||
</div>
|
||||
</$list>
|
||||
\end change-note-impacts
|
||||
|
||||
\procedure change-note-github-links()
|
||||
\whitespace trim
|
||||
<div class="doc-change-note-info-list-item-caption">
|
||||
<$text text="GitHub: "/>
|
||||
</div>
|
||||
<div class="doc-change-note-info-list-item-description">
|
||||
<$list filter="[<change>get[github-links]enlist-input[]]" variable="link">
|
||||
<a href=<<link>> class="doc-github-link" target="_blank" rel="noopener noreferrer">
|
||||
{{$:/core/images/github}}
|
||||
</a>
|
||||
</$list>
|
||||
</div>
|
||||
\end change-list
|
||||
\end change-note-github-links
|
||||
|
||||
\procedure change-note-info()
|
||||
\whitespace trim
|
||||
<div class="doc-change-note-info-list">
|
||||
<%if [<show-change-impacts>!match[no]] %><<change-note-impacts>><%endif%>
|
||||
<<change-note-github-links>>
|
||||
</div>
|
||||
\end change-note-info
|
||||
|
||||
\procedure change-note-description()
|
||||
\whitespace trim
|
||||
<div class="doc-change-note-description">
|
||||
<$transclude $tiddler=<<change>> $mode="block"/>
|
||||
</div>
|
||||
\end change-note-description
|
||||
|
||||
\procedure change-note-item()
|
||||
\whitespace trim
|
||||
<div class="doc-change-note-item">
|
||||
<<change-note-heading>>
|
||||
<<change-note-info>>
|
||||
<<change-note-description>>
|
||||
</div>
|
||||
\end change-note-item
|
||||
|
||||
\procedure change-note-list(filter)
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter=<<filter>>
|
||||
variable="change"
|
||||
emptyMessage="<div class='doc-change-note-empty'>No curated changes yet.</div>"
|
||||
>
|
||||
<<change-note-item>>
|
||||
</$list>
|
||||
\end change-note-list
|
||||
|
||||
\procedure summary-section()
|
||||
\whitespace trim
|
||||
<$let
|
||||
summaryState={{{ [<release>addprefix[$:/state/release/summary/]addsuffix[/]addsuffix<summary-key>] }}}
|
||||
summaryDefault={{{ [[$:/tw5.com/releases/info/summary-sections/]addsuffix<summary-key>addsuffix[/default-state]get[text]] }}}
|
||||
summaryListTiddler="$:/tw5.com/releases/info/summary-lists"
|
||||
summaryListField={{{ [<summary-key>addsuffix[/]addsuffix<release>] }}}
|
||||
>
|
||||
<$let summaryFilter="[<summaryListTiddler>get<summaryListField>enlist-input[]]">
|
||||
<div class="doc-release-section">
|
||||
<$button class="tc-btn-invisible doc-release-section-summary">
|
||||
<$macrocall $name="release-section-toggle" state=<<summaryState>> default=<<summaryDefault>>/>
|
||||
<span class="doc-release-section-summary-text">
|
||||
<$text text={{{ [[$:/tw5.com/releases/info/summary-sections/]addsuffix<summary-key>addsuffix[/plural]get[text]] }}} />
|
||||
<$text text=" "/><span class="doc-release-section-count">(<$text text={{{ [<summaryListTiddler>get<summaryListField>enlist-input[]] +[count[]] }}}/>)</span>
|
||||
</span>
|
||||
</$button>
|
||||
<$reveal type="match" state=<<summaryState>> text="open" default=<<summaryDefault>> tag="div" class="doc-release-section-body">
|
||||
<$macrocall $name="change-note-list" filter=<<summaryFilter>>/>
|
||||
</$reveal>
|
||||
</div>
|
||||
</$let>
|
||||
</$let>
|
||||
\end summary-section
|
||||
|
||||
\procedure summary-tab()
|
||||
\whitespace trim
|
||||
<$let show-type-badge="yes" show-category-badge="yes" show-change-impacts="yes" show-tiddler-link="yes">
|
||||
<div class="doc-release-summary">
|
||||
<$list filter="[enlist{$:/tw5.com/releases/info/summary-section-order}]" variable="summary-key">
|
||||
<div class="doc-release-summary-section">
|
||||
<$macrocall $name="summary-section"/>
|
||||
</div>
|
||||
</$list>
|
||||
</div>
|
||||
</$let>
|
||||
\end summary-tab
|
||||
|
||||
\procedure change-type-section()
|
||||
\whitespace trim
|
||||
<$let changeTypeState={{{ [<release>addprefix[$:/state/release/change-type/]addsuffix[/]addsuffix<change-type>] }}}>
|
||||
<div class="doc-release-section">
|
||||
<$button class="tc-btn-invisible doc-release-section-summary"
|
||||
style.backgroundColor={{{ [[$:/tw5.com/releases/info/change-types/]addsuffix<change-type>addsuffix[/colour]get[text]addsuffix[40]] }}}
|
||||
>
|
||||
<$macrocall $name="release-section-toggle" state=<<changeTypeState>>/>
|
||||
<span class="doc-release-section-summary-text">
|
||||
<$text text={{{ [[$:/tw5.com/releases/info/change-types/]addsuffix<change-type>addsuffix[/plural]get[text]] }}} />
|
||||
<$text text=" "/><span class="doc-release-section-count">(<$text text={{{ [tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-type}match<change-type>] +[count[]] }}}/>)</span>
|
||||
</span>
|
||||
</$button>
|
||||
<$reveal type="match" state=<<changeTypeState>> text="open" tag="div" class="doc-release-section-body">
|
||||
<$let typeFilter="[tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-type}match<change-type>] +[sort[description]]">
|
||||
<$macrocall $name="change-note-list" filter=<<typeFilter>>/>
|
||||
</$let>
|
||||
</$reveal>
|
||||
</div>
|
||||
</$let>
|
||||
\end change-type-section
|
||||
|
||||
\procedure change-types-tab()
|
||||
\whitespace trim
|
||||
<$let show-type-badge="no" show-category-badge="yes" show-change-impacts="yes" show-tiddler-link="yes">
|
||||
<$list filter="[enlist{$:/tw5.com/releases/info/change-type-order}]" variable="change-type">
|
||||
<<change-type-section>>
|
||||
</$list>
|
||||
</$let>
|
||||
\end change-types-tab
|
||||
|
||||
\procedure change-category-section()
|
||||
\whitespace trim
|
||||
<$let changeCategoryState={{{ [<release>addprefix[$:/state/release/change-category/]addsuffix[/]addsuffix<category>] }}}>
|
||||
<div class="doc-release-section">
|
||||
<$button class="tc-btn-invisible doc-release-section-summary"
|
||||
style.backgroundColor={{{ [[$:/tw5.com/releases/info/categories/]addsuffix<category>addsuffix[/colour]get[text]addsuffix[40]] }}}
|
||||
>
|
||||
<$macrocall $name="release-section-toggle" state=<<changeCategoryState>>/>
|
||||
<span class="doc-release-section-summary-text">
|
||||
<$text text={{{ [[$:/tw5.com/releases/info/categories/]addsuffix<category>addsuffix[/plural]get[text]] }}} />
|
||||
<$text text=" "/><span class="doc-release-section-count">(<$text text={{{ [tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-category}match<category>] +[count[]] }}}/>)</span>
|
||||
</span>
|
||||
</$button>
|
||||
<$reveal type="match" state=<<changeCategoryState>> text="open" tag="div" class="doc-release-section-body">
|
||||
<$let categoryFilter="[tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-category}match<category>] +[sort[description]]">
|
||||
<$macrocall $name="change-note-list" filter=<<categoryFilter>>/>
|
||||
</$let>
|
||||
</$reveal>
|
||||
</div>
|
||||
</$let>
|
||||
\end change-category-section
|
||||
|
||||
\procedure change-categories-tab()
|
||||
\whitespace trim
|
||||
<$let show-type-badge="yes" show-category-badge="no" show-change-impacts="yes" show-tiddler-link="yes">
|
||||
<$list filter="[enlist{$:/tw5.com/releases/info/category-order}]" variable="category">
|
||||
<<change-category-section>>
|
||||
</$list>
|
||||
</$let>
|
||||
\end change-categories-tab
|
||||
|
||||
\procedure impact-change-note()
|
||||
\whitespace trim
|
||||
<$let change={{{ [<impact>get[changenote]] }}} show-change-impacts="no">
|
||||
<<change-note-item>>
|
||||
</$let>
|
||||
\end impact-change-note
|
||||
|
||||
\procedure impact-note-item()
|
||||
\whitespace trim
|
||||
<div class="doc-impact-note-item">
|
||||
<h3 class="doc-impact-note-heading"
|
||||
style.backgroundColor={{{ [<impact>get[impact-type]addprefix[$:/tw5.com/releases/info/impact-types/]addsuffix[/colour/background]get[text]] }}}
|
||||
>
|
||||
<$transclude $variable="impact-pill" $mode="inline" impact-type={{{ [<impact>get[impact-type]] }}}/>
|
||||
<$text text=": "/>
|
||||
<%if [<show-tiddler-link>match[yes]] %><$link to=<<impact>> class="doc-change-note-description-link"><$transclude $tiddler=<<impact>> $field="description" $mode="inline"/></$link><%else%><$transclude $tiddler=<<impact>> $field="description" $mode="inline"/><%endif%>
|
||||
</h3>
|
||||
<div class="doc-impact-note-details">
|
||||
<$transclude $tiddler=<<impact>> $field="text" $mode="block"/>
|
||||
</div>
|
||||
<<impact-change-note>>
|
||||
</div>
|
||||
\end impact-note-item
|
||||
|
||||
\procedure impact-type-section()
|
||||
\whitespace trim
|
||||
<$let impactTypeState={{{ [<release>addprefix[$:/state/release/impact-type/]addsuffix[/]addsuffix<impact-type>] }}}>
|
||||
<div class="doc-release-section">
|
||||
<$button class="tc-btn-invisible doc-release-section-summary"
|
||||
style.backgroundColor={{{ [[$:/tw5.com/releases/info/impact-types/]addsuffix<impact-type>addsuffix[/colour/background]get[text]] }}}
|
||||
>
|
||||
<$macrocall $name="release-section-toggle" state=<<impactTypeState>>/>
|
||||
<span class="doc-release-section-summary-text">
|
||||
<$text text={{{ [[$:/tw5.com/releases/info/impact-types/]addsuffix<impact-type>addsuffix[/plural]get[text]] }}} />
|
||||
<$text text=" "/><span class="doc-release-section-count">(<$text text={{{ [tag[$:/tags/ImpactNote]] :filter[{!!impact-type}match<impact-type>] :filter[{!!changenote}get[release]match<release>] +[count[]] }}}/>)</span>
|
||||
</span>
|
||||
</$button>
|
||||
<$reveal type="match" state=<<impactTypeState>> text="open" tag="div" class="doc-release-section-body">
|
||||
<$list
|
||||
filter="[tag[$:/tags/ImpactNote]] :filter[{!!impact-type}match<impact-type>] :filter[{!!changenote}get[release]match<release>] +[sort[description]]"
|
||||
variable="impact"
|
||||
>
|
||||
<<impact-note-item>>
|
||||
</$list>
|
||||
</$reveal>
|
||||
</div>
|
||||
</$let>
|
||||
\end impact-type-section
|
||||
|
||||
\procedure impacts-tab()
|
||||
\whitespace trim
|
||||
<$let show-tiddler-link="yes">
|
||||
<$list filter="[enlist{$:/tw5.com/releases/info/impact-type-order}]" variable="impact-type">
|
||||
<<impact-type-section>>
|
||||
</$list>
|
||||
</$let>
|
||||
\end impacts-tab
|
||||
|
||||
\procedure credits-tab()
|
||||
\whitespace trim
|
||||
<div class="doc-release-credits">
|
||||
A warm thank you to the developers who have contributed to this release:
|
||||
<<acknowledgements>>
|
||||
</div>
|
||||
\end credits-tab
|
||||
|
||||
\procedure release-tabs()
|
||||
\whitespace trim
|
||||
<$macrocall
|
||||
$name="tabs"
|
||||
tabsList="[enlist{$:/tw5.com/releases/info/tab-order}]"
|
||||
default="Summary"
|
||||
class="doc-release-tabs"
|
||||
template="$:/tw5.com/releases/tab-template"
|
||||
/>
|
||||
\end release-tabs
|
||||
|
||||
\procedure acknowledgements()
|
||||
<ol class="doc-github-contributors">
|
||||
@@ -136,21 +362,13 @@ See <<github-release-changes-link>> and [[other releases|TiddlyWiki Releases]].
|
||||
|
||||
<<banner-credits>>
|
||||
|
||||
! Introduction
|
||||
|
||||
<$transclude $variable="release-introduction" $mode="block"/>
|
||||
|
||||
! Changes
|
||||
<<release-tabs>>
|
||||
|
||||
<$transclude $variable="change-list" $mode="inline"/>
|
||||
! Credits
|
||||
|
||||
<!-- Acknowledgement list -->
|
||||
|
||||
! Acknowledgements
|
||||
|
||||
A warm thank you to the developers who have contributed to this release:
|
||||
|
||||
<<acknowledgements>>
|
||||
<<credits-tab>>
|
||||
|
||||
</$let>
|
||||
\end releasenote
|
||||
|
||||
@@ -5,6 +5,57 @@ type: text/vnd.tiddlywiki
|
||||
.doc-release-note {
|
||||
}
|
||||
|
||||
.tc-tab-set.doc-release-tabs {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.doc-release-summary-section {
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
|
||||
.doc-release-section {
|
||||
border: 1px solid #e8e8e8;
|
||||
border-radius: 0.5em;
|
||||
margin: 0.75em 0;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.doc-release-section-summary {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.5em 0.75em;
|
||||
font-weight: 600;
|
||||
background: #f1f1f1;
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
border: none;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
border-radius: 0.5em 0.5em 0 0;
|
||||
}
|
||||
|
||||
.doc-release-section-toggle {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
.doc-release-section-summary-text {
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
.doc-release-section-count {
|
||||
font-weight: normal;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.doc-release-credits {
|
||||
margin: 0.75em 0;
|
||||
}
|
||||
|
||||
.doc-release-section-body {
|
||||
padding: 0.5em 0.75em;
|
||||
}
|
||||
|
||||
.doc-release-note-heading {
|
||||
}
|
||||
|
||||
@@ -84,3 +135,56 @@ type: text/vnd.tiddlywiki
|
||||
padding: 0.25em;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.doc-impact-note-item {
|
||||
border: 1px solid #e8e8e8;
|
||||
border-radius: 0.5em;
|
||||
margin: 0.5em 0;
|
||||
padding: 0.5em;
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
.doc-impact-note-heading {
|
||||
font-weight: 600;
|
||||
margin: 0 0 0.25em 0;
|
||||
padding: 0.25em 0.5em;
|
||||
border-radius: 0.25em;
|
||||
}
|
||||
|
||||
.doc-impact-note-item > .doc-change-note-item {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.doc-impact-note-details {
|
||||
font-size: 0.9em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.doc-impact-note-change {
|
||||
display: flex;
|
||||
gap: 0.5em;
|
||||
align-items: baseline;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.doc-impact-note-change-caption {
|
||||
text-transform: uppercase;
|
||||
font-size: 0.7em;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.doc-impact-note-change-link {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.doc-change-note-description-link {
|
||||
font-weight: inherit;
|
||||
color: inherit;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: dotted;
|
||||
}
|
||||
|
||||
.doc-change-note-description-link:hover {
|
||||
text-decoration-style: solid;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
title: $:/tw5.com/releases/info/summary-lists
|
||||
type: text/vnd.tiddlywiki
|
||||
highlights/5.4.0: [[$:/changenotes/5.4.0/#9055]] [[$:/changenotes/5.4.0/#9641]] [[$:/changenotes/5.4.0/#8972]]
|
||||
big-bug-fixes/5.4.0: [[$:/changenotes/5.4.0/#9259]]
|
||||
clearing-the-decks/5.4.0:
|
||||
@@ -0,0 +1,14 @@
|
||||
title: $:/tw5.com/releases/tab-template
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<%if [<currentTab>match[Summary]] %>
|
||||
<<summary-tab>>
|
||||
<%elseif [<currentTab>match[Change Types]] %>
|
||||
<<change-types-tab>>
|
||||
<%elseif [<currentTab>match[Change Categories]] %>
|
||||
<<change-categories-tab>>
|
||||
<%elseif [<currentTab>match[Impacts]] %>
|
||||
<<impacts-tab>>
|
||||
<%elseif [<currentTab>match[Credits]] %>
|
||||
<<credits-tab>>
|
||||
<%endif%>
|
||||
@@ -0,0 +1,6 @@
|
||||
title: $:/tw5.com/releases/ViewTemplate/body/changenote
|
||||
|
||||
\whitespace trim
|
||||
<$let change=<<currentTiddler>> show-type-badge="yes" show-category-badge="yes" show-change-impacts="yes">
|
||||
<<change-note-item>>
|
||||
</$let>
|
||||
@@ -0,0 +1,6 @@
|
||||
title: $:/tw5.com/releases/ViewTemplateBodyFilters
|
||||
tags: $:/tags/ViewTemplateBodyFilter
|
||||
list-before:
|
||||
|
||||
[tag[$:/tags/ChangeNote]then[$:/tw5.com/releases/ViewTemplate/body/changenote]]
|
||||
[tag[$:/tags/ImpactNote]then[$:/tw5.com/releases/ViewTemplate/body/impactnote]]
|
||||
@@ -0,0 +1,6 @@
|
||||
title: $:/tw5.com/releases/ViewTemplate/body/impactnote
|
||||
|
||||
\whitespace trim
|
||||
<$let impact=<<currentTiddler>> show-tiddler-link="yes">
|
||||
<<impact-note-item>>
|
||||
</$let>
|
||||
@@ -58,7 +58,7 @@ js.configs.recommended,
|
||||
"array-callback-return": "off",
|
||||
"@stylistic/array-element-newline": "off",
|
||||
"arrow-body-style": "error",
|
||||
"@stylistic/arrow-parens": ["error", "as-needed"],
|
||||
"@stylistic/arrow-parens": ["error", "always"],
|
||||
"@stylistic/arrow-spacing": ["error", {
|
||||
after: true,
|
||||
before: true,
|
||||
|
||||
45
prompt.md
Normal file
45
prompt.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Release Notes Redesign Prompt (TiddlyWiki5)
|
||||
|
||||
You are editing the TiddlyWiki5 repo, focusing on the release notes presentation under `editions/tw5.com/tiddlers/releasenotes/`.
|
||||
|
||||
## Goals
|
||||
- Present release notes with tabs:
|
||||
- **Summary**: collapsible sections for Highlights, Big Bug Fixes, Clearing the Decks (curated lists).
|
||||
- **Change Types**
|
||||
- **Change Categories**
|
||||
- **Impacts**
|
||||
- **Credits** (acknowledgements)
|
||||
- Headings must be customisable via the releases info tiddler.
|
||||
- Use TiddlyWiki idioms: state stored in tiddlers (not DOM).
|
||||
- Keep procedures small (≈20 lines), with sensible identifiers.
|
||||
|
||||
## Current Implementation (after recent edits)
|
||||
- `editions/tw5.com/tiddlers/releasenotes/ReleasesProcedures.tid`
|
||||
- Reworked into many small procedures.
|
||||
- Tabs use `$:/core/macros/tabs` and template `$:/tw5.com/releases/tab-template`.
|
||||
- Sections use `$reveal` + `$action-setfield` toggles; state stored in `$:/state/release/...`.
|
||||
- Summary pulls curated lists from `$:/tw5.com/releases/info/summary-lists` (fields named `<section>/<release>`).
|
||||
- Change Types/Categories/Impacts list change notes by filters; Credits tab shows acknowledgements.
|
||||
- `editions/tw5.com/tiddlers/releasenotes/ReleasesTabTemplate.tid`
|
||||
- Uses `<$list match>` to choose the tab body: Summary, Change Types, Change Categories, Impacts, Credits.
|
||||
- `editions/tw5.com/tiddlers/releasenotes/ReleasesInfo.multids`
|
||||
- Added tab order, summary sections & captions/order, change/impact orders.
|
||||
- `editions/tw5.com/tiddlers/releasenotes/ReleasesStyles.tid`
|
||||
- Styles for tabs, section headers, toggle icons, impact cards.
|
||||
- `editions/tw5.com/tiddlers/releasenotes/ReleasesSummaryLists.tid`
|
||||
- Example curated fields for 5.4.0 (Highlights, Big Bug Fixes, Clearing the Decks) using wiki-links.
|
||||
|
||||
## Outstanding Issue
|
||||
- Summary tab still shows raw keys (e.g., “highlights”) and not the curated change lists. Captions/list lookup likely still failing; needs robust caption lookup and ensuring summary lists are read correctly (field names and filters).
|
||||
- Other tabs (types/categories/impacts) expand/collapse correctly.
|
||||
|
||||
## Open Files in IDE (for context)
|
||||
- ReleasesProcedures.tid
|
||||
- ReleasesStyles.tid
|
||||
- Release Notes and Changes Internals.tid
|
||||
- Release 5.3.8.tid
|
||||
- Release 5.4.0.tid
|
||||
|
||||
## Reminder
|
||||
- Avoid adding fields to change notes; curation is via list fields on `$:/tw5.com/releases/info/summary-lists`.
|
||||
- Keep using tiddler-store state; no DOM state.
|
||||
Reference in New Issue
Block a user