From acee686318bbfa92d4c2d77ff710e3fef5917416 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 10 Jun 2026 13:41:07 -0400 Subject: [PATCH 01/37] wrap helpers that return html with {{}] --- templates/account/blocks.tpl | 2 +- templates/account/info.tpl | 14 +++++++------- templates/account/settings.tpl | 4 ++-- templates/category.tpl | 2 +- templates/groups/details.tpl | 2 +- templates/header.tpl | 9 +++++---- templates/partials/account/category-item.tpl | 2 +- templates/partials/account/header.tpl | 2 +- templates/partials/account/session-list.tpl | 2 +- templates/partials/buttons/newTopic.tpl | 2 +- templates/partials/categories/item.tpl | 2 +- templates/partials/categories/lastpost.tpl | 2 +- templates/partials/groups/invited.tpl | 2 +- templates/partials/groups/memberlist.tpl | 2 +- templates/partials/groups/pending.tpl | 2 +- templates/partials/notifications_list.tpl | 2 +- templates/partials/posts_list_item.tpl | 4 ++-- .../partials/quick-category-search-results.tpl | 2 +- templates/partials/quick-search-results.tpl | 2 +- templates/partials/search-filters.tpl | 4 ++-- templates/partials/search-results.tpl | 2 +- templates/partials/sidebar/user-menu.tpl | 2 +- templates/partials/topic/navigation-post.tpl | 2 +- templates/partials/topic/post.tpl | 10 +++++----- templates/partials/topic/quickreply.tpl | 2 +- templates/partials/topics_list.tpl | 6 +++--- templates/partials/users/item.tpl | 2 +- templates/topic.tpl | 2 +- templates/world.tpl | 4 ++-- 29 files changed, 49 insertions(+), 48 deletions(-) diff --git a/templates/account/blocks.tpl b/templates/account/blocks.tpl index fb7a60aa..3827411c 100644 --- a/templates/account/blocks.tpl +++ b/templates/account/blocks.tpl @@ -17,7 +17,7 @@
  • @@ -138,7 +138,7 @@
  • - {buildAvatar(./user, "24px", true)} + {{buildAvatar(./user, "24px", true)}} @@ -240,7 +240,7 @@
    - {buildAvatar(./user, "24px", true)} + {{buildAvatar(./user, "24px", true)}} diff --git a/templates/account/settings.tpl b/templates/account/settings.tpl index b735a19a..68afcd1a 100644 --- a/templates/account/settings.tpl +++ b/templates/account/settings.tpl @@ -67,7 +67,7 @@
    {{{ each settings.chatAllowListUsers }}}
    - {buildAvatar(@value, "16px", true)} {./username} + {{buildAvatar(@value, "16px", true)}} {./username}
    {{{ end }}} @@ -82,7 +82,7 @@
    {{{ each settings.chatDenyListUsers }}}
    - {buildAvatar(@value, "16px", true)} {./username} + {{buildAvatar(@value, "16px", true)}} {./username}
    {{{ end }}} diff --git a/templates/category.tpl b/templates/category.tpl index a371faba..1f996521 100644 --- a/templates/category.tpl +++ b/templates/category.tpl @@ -5,7 +5,7 @@
    - {buildCategoryIcon(@value, "60px", "rounded-1 flex-shrink-0")} + {{buildCategoryIcon(@value, "60px", "rounded-1 flex-shrink-0")}}

    {./name}

    diff --git a/templates/groups/details.tpl b/templates/groups/details.tpl index 2d76a18e..04f464aa 100644 --- a/templates/groups/details.tpl +++ b/templates/groups/details.tpl @@ -28,7 +28,7 @@
    {{{ if loggedIn }}} - {membershipBtn(group)} + {{membershipBtn(group)}} {{{ end }}} {{{ if isAdmin }}} [[user:edit]] diff --git a/templates/header.tpl b/templates/header.tpl index df942889..b72e48e8 100644 --- a/templates/header.tpl +++ b/templates/header.tpl @@ -2,13 +2,14 @@ {browserTitle} - {{{each metaTags}}}{buildMetaTag(@value)}{{{end}}} + {{{each metaTags}}}{{buildMetaTag(@value)}}{{{end}}} - {{{each linkTags}}}{buildLinkTag(@value)}{{{end}}} + {{{each linkTags}}}{{buildLinkTag(@value)}}{{{end}}} \ No newline at end of file From 70a3b41cfabb349dd46c6c546e36bff099d3cb6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 11 Jun 2026 23:34:14 -0400 Subject: [PATCH 14/37] 3.0.0-beta.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 67e3cf1e..4a609fb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nodebb-theme-harmony", - "version": "2.2.72", + "version": "3.0.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "nodebb-theme-harmony", - "version": "2.2.72", + "version": "3.0.0-beta.1", "license": "MIT", "dependencies": { "@fontsource/inter": "5.2.8", diff --git a/package.json b/package.json index d3f2be39..eb73d609 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nodebb-theme-harmony", - "version": "2.2.72", + "version": "3.0.0-beta.1", "nbbpm": { "compatibility": "^4.14.0" }, From f22f0675090a39f0ae8a6cdd0a47e9b9ec8ae9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 12 Jun 2026 12:15:46 -0400 Subject: [PATCH 15/37] fix more escapes --- templates/groups/details.tpl | 2 +- templates/notifications.tpl | 2 +- templates/partials/groups/admin.tpl | 2 +- templates/partials/notifications_list.tpl | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/groups/details.tpl b/templates/groups/details.tpl index 8cec73bb..1f29fa0c 100644 --- a/templates/groups/details.tpl +++ b/templates/groups/details.tpl @@ -1,5 +1,5 @@
    -
    +
    {{{ if group.isOwner }}}
    diff --git a/templates/notifications.tpl b/templates/notifications.tpl index 56b1fbbd..c77c42c1 100644 --- a/templates/notifications.tpl +++ b/templates/notifications.tpl @@ -10,7 +10,7 @@
    {{{ else }}} -
    {filters.name}
    +
    {tx(filters.name)}
    {{{ if ./filter }}} {humanReadableNumber(./count)} {{{ end }}} diff --git a/templates/partials/groups/admin.tpl b/templates/partials/groups/admin.tpl index 979b0925..1d0cb4fa 100644 --- a/templates/partials/groups/admin.tpl +++ b/templates/partials/groups/admin.tpl @@ -63,7 +63,7 @@
    - +
  • > - + @@ -21,7 +21,7 @@

    - {{generateTopicTitle(@value)}} + {./title}

    From 49696fa7835b2850862e49db6c9a0711702d8561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 12 Jun 2026 19:10:16 -0400 Subject: [PATCH 20/37] more tx fixes --- templates/account/categories.tpl | 2 +- templates/account/profile.tpl | 2 +- templates/account/settings.tpl | 6 +++--- templates/account/tags.tpl | 2 +- templates/account/uploads.tpl | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/templates/account/categories.tpl b/templates/account/categories.tpl index 749ce581..58e5e420 100644 --- a/templates/account/categories.tpl +++ b/templates/account/categories.tpl @@ -2,7 +2,7 @@
    -

    {title}

    +

    {tx(title)}

    diff --git a/templates/account/profile.tpl b/templates/account/profile.tpl index 6ac9b90b..2a43daff 100644 --- a/templates/account/profile.tpl +++ b/templates/account/profile.tpl @@ -76,7 +76,7 @@ {{{ if ./value }}}
    - {./name} + {tx(./name)} {{{ if (./type == "input-link") }}} {./linkValue} {{{ else }}} diff --git a/templates/account/settings.tpl b/templates/account/settings.tpl index 99126484..e96c9f80 100644 --- a/templates/account/settings.tpl +++ b/templates/account/settings.tpl @@ -10,7 +10,7 @@ @@ -177,7 +177,7 @@

    [[user:digest-description]]

    @@ -271,7 +271,7 @@
    - +
    diff --git a/templates/account/tags.tpl b/templates/account/tags.tpl index c1007eb8..82b2d2c7 100644 --- a/templates/account/tags.tpl +++ b/templates/account/tags.tpl @@ -2,7 +2,7 @@
    -

    {title}

    +

    {tx(title)}

    diff --git a/templates/account/uploads.tpl b/templates/account/uploads.tpl index ac2638e7..64b7312f 100644 --- a/templates/account/uploads.tpl +++ b/templates/account/uploads.tpl @@ -1,6 +1,6 @@ -

    {title}

    +

    {tx(title)}

    {{{ if privateUploads }}}[[uploads:private-uploads-info]]{{{ else }}}[[uploads:public-uploads-info]]{{{ end }}} From d98a3d7e9ed21f43ac2b37e81455fe884b809bcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 12 Jun 2026 19:24:28 -0400 Subject: [PATCH 21/37] fix mobile nav --- templates/partials/mobile-nav.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/partials/mobile-nav.tpl b/templates/partials/mobile-nav.tpl index 3a486f22..9ecb42a0 100644 --- a/templates/partials/mobile-nav.tpl +++ b/templates/partials/mobile-nav.tpl @@ -10,14 +10,14 @@
    diff --git a/templates/partials/topic/post.tpl b/templates/partials/topic/post.tpl index 3f1df417..99806a16 100644 --- a/templates/partials/topic/post.tpl +++ b/templates/partials/topic/post.tpl @@ -83,7 +83,7 @@
    From 11873ea5b5aec809578b986f6ead0eeaf2863e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 16 Jun 2026 17:17:52 -0400 Subject: [PATCH 33/37] txescape post content --- templates/partials/categories/lastpost.tpl | 2 +- templates/partials/topic/post.tpl | 4 ++-- templates/partials/topics_list.tpl | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/partials/categories/lastpost.tpl b/templates/partials/categories/lastpost.tpl index c3a9417c..3fb054e2 100644 --- a/templates/partials/categories/lastpost.tpl +++ b/templates/partials/categories/lastpost.tpl @@ -8,7 +8,7 @@
    - {{./content}} + {{txEscape(./content)}}
    {{{ end }}} diff --git a/templates/partials/topic/post.tpl b/templates/partials/topic/post.tpl index 99806a16..eed4bd7c 100644 --- a/templates/partials/topic/post.tpl +++ b/templates/partials/topic/post.tpl @@ -78,7 +78,7 @@
    - {{posts.content}} + {{txEscape(posts.content)}}
    - {{./teaser.content}} + {{txEscape(./teaser.content)}}
    {{{ end }}} {{{ end }}} From ba4ef0fd167557661aa509d37dcff82730fa0ade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 16 Jun 2026 19:54:58 -0400 Subject: [PATCH 34/37] account info --- templates/account/info.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/account/info.tpl b/templates/account/info.tpl index 8aebba00..f883fde9 100644 --- a/templates/account/info.tpl +++ b/templates/account/info.tpl @@ -151,7 +151,7 @@ {{{ end }}}

    - [[user:info.banned-reason-label]]: {./reason} + [[user:info.banned-reason-label]]: {tx(./reason)}

    {{{ if ./until }}} @@ -205,7 +205,7 @@ {{{ end }}}

    - [[user:info.banned-reason-label]]: {./reason} + [[user:info.banned-reason-label]]: {tx(./reason)}

    {{{ if ./until }}} From d0ed5b16b3da6de723052878e36b16298df37afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 16 Jun 2026 22:31:50 -0400 Subject: [PATCH 35/37] fix noItemsFoundKey --- templates/account/posts.tpl | 2 +- templates/account/shares.tpl | 2 +- templates/account/topics.tpl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/account/posts.tpl b/templates/account/posts.tpl index d155ad3f..f212c3e1 100644 --- a/templates/account/posts.tpl +++ b/templates/account/posts.tpl @@ -21,7 +21,7 @@

    {{{ if !posts.length }}} -
    {noItemsFoundKey}
    +
    {tx(noItemsFoundKey)}
    {{{ end }}}
    diff --git a/templates/account/shares.tpl b/templates/account/shares.tpl index 82f471ce..26237d3c 100644 --- a/templates/account/shares.tpl +++ b/templates/account/shares.tpl @@ -7,7 +7,7 @@
    {{{ if !topics.length }}} -
    {noItemsFoundKey}
    +
    {tx(noItemsFoundKey)}
    {{{ end }}}
    diff --git a/templates/account/topics.tpl b/templates/account/topics.tpl index 8de43bba..f490f713 100644 --- a/templates/account/topics.tpl +++ b/templates/account/topics.tpl @@ -32,7 +32,7 @@ {{{ if !topics.length }}} -
    {noItemsFoundKey}
    +
    {tx(noItemsFoundKey)}
    {{{ end }}}
    From 61a8980a3b9185273b6927b8c04e47f62a8443cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 17 Jun 2026 17:34:49 -0400 Subject: [PATCH 36/37] more fixes --- templates/partials/category/tags.tpl | 2 +- templates/partials/posts_list_item.tpl | 2 +- templates/partials/search-filters.tpl | 18 +++++++++--------- templates/partials/topic/tag.tpl | 2 +- templates/partials/topics_list.tpl | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/templates/partials/category/tags.tpl b/templates/partials/category/tags.tpl index 75459fdf..2784b9f2 100644 --- a/templates/partials/category/tags.tpl +++ b/templates/partials/category/tags.tpl @@ -1,3 +1,3 @@ {{{ each tags }}} -{./valueEscaped} +{./value} {{{ end }}} diff --git a/templates/partials/posts_list_item.tpl b/templates/partials/posts_list_item.tpl index b7b4ba5c..a77883be 100644 --- a/templates/partials/posts_list_item.tpl +++ b/templates/partials/posts_list_item.tpl @@ -21,7 +21,7 @@ {{buildCategoryLabel(./category, "a", "border")}} {{{ each ./topic.tags }}} - {./valueEscaped} + {./value} {{{ end }}}
    diff --git a/templates/partials/search-filters.tpl b/templates/partials/search-filters.tpl index 9acb2308..edd41ef3 100644 --- a/templates/partials/search-filters.tpl +++ b/templates/partials/search-filters.tpl @@ -3,7 +3,7 @@
  • @@ -59,7 +59,7 @@