Files
gitea-botandarchvillainette edc586d9bb Port templates to NodeBB 4.14 benchpress escaping (#19)
NodeBB 4.14 turned on real HTML escaping for single-brace template interpolations (4.13 used an identity escape). This ports raw-HTML output to the double-brace forms ({{helper(...)}}, {{txEscape(content)}}, {{tx(name)}}), mirroring the harmony 2.2.72 -> 3.0.15 and core 4.13.2 -> 4.14.0 template diffs. Fixes the escaped-markup breakage on westgate.pw after the 2026.07.11-1 deploy.

Verified on a fresh 4.14.0 dev stack: no escaped tags on /, /categories, /category/2, /topic/1, /search; contract tests pass.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: vickydotbat <vickydotbat@tutamail.com>
Reviewed-on: #19
Reviewed-by: xtul <mpiasecki720@protonmail.com>
Co-authored-by: gitea-bot <gitea-bot@noreply.git.westgate.pw>
Co-committed-by: gitea-bot <gitea-bot@noreply.git.westgate.pw>
2026-07-11 18:30:34 +00:00

55 lines
2.0 KiB
Smarty

{{{ if matchCount }}}
<div class="card card-header text-xs px-2 py-1 fw-semibold border-0 align-self-start">[[search:results-matching, {matchCount}, {search_query}, {time}]] </div>
{{{ else }}}
{{{ if search_query }}}
<div class="badge text-bg-warning align-self-start">[[search:no-matches]]</div>
{{{ end }}}
{{{ end }}}
<div id="results" class="search-results" data-search-query="{search_query}">
{{{ if showAsPosts }}}
{{{ if posts.length }}}
<!-- IMPORT partials/posts_list.tpl -->
{{{ end }}}
{{{ end }}}
{{{ if showAsTopics }}}
{{{ each posts }}}
<hr/>
<div class="topic-row mb-3">
<a class="topic-title fw-semibold fs-5 text-reset text-break" href="{{{ if ./isWikiArticle }}}{config.relative_path}{./wikiPath}{{{ else }}}{config.relative_path}/post/{encodeURIComponent(./pid)}{{{ end }}}">
{{{ if ./isWikiArticle }}}<span class="badge westgate-wiki-badge"><i class="fa fa-book-open"></i> [[westgate:wiki-badge]]</span> {{{ end }}}{{{ if !./isMainPost }}}RE: {{{ end }}}{./topic.title}
</a>
<div class="post-body d-flex flex-column gap-1">
<div class="d-flex gap-3 post-info">
<div class="post-author d-flex gap-1">
<a class="lh-1 text-decoration-none" href="{config.relative_path}/user/{./user.userslug}">{{buildAvatar(./user, "16px", true, "not-responsive")}}</a>
<a class="fw-semibold text-sm" href="{config.relative_path}/user/{./user.userslug}">{../user.displayname}</a>
</div>
<span class="timeago text-sm text-muted" title="{./timestampISO}"></span>
</div>
</div>
</div>
{{{ end }}}
{{{ end }}}
{{{ if users.length }}}
<!-- IMPORT partials/users_list.tpl -->
{{{ end }}}
{{{ if tags.length }}}
<div class="tag-list row row-cols-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-2">
<!-- IMPORT partials/tags_list.tpl -->
</div>
{{{ end }}}
{{{ if categories.length }}}
<ul class="categories list-unstyled">
{{{each categories}}}
<!-- IMPORT partials/categories/item.tpl -->
{{{end}}}
</ul>
{{{ end }}}
<!-- IMPORT partials/paginator.tpl -->
</div>