From f795c1b8e8610bfe7369c348ebadd33940dc9f53 Mon Sep 17 00:00:00 2001
From: romanrizzi <rizziromanalejandro@gmail.com>
Date: Tue, 10 Mar 2020 15:00:12 -0300
Subject: [PATCH] Revert "DEV: enforces ember-template-lint: no-triple-curlies
 (#9150)"

This reverts commit d436b600fba4cea846a5e96c235c507441965e05.

Triple curlies are still necessary for some raw templates.
---
 .template-lintrc.js                           |  3 +-
 .../admin/templates/badges-award.hbs          |  6 +-
 .../admin/templates/badges-index.hbs          |  2 +-
 .../components/admin-report-storage-stats.hbs |  2 +-
 .../components/admin-report-table-cell.hbs    |  2 +-
 .../templates/components/admin-report.hbs     |  2 +-
 .../components/admin-user-field-item.hbs      |  2 +-
 .../components/penalty-post-action.hbs        |  2 +-
 .../templates/components/silence-details.hbs  |  2 +-
 .../components/site-settings/bool.hbs         |  2 +-
 .../site-settings/category-list.hbs           |  2 +-
 .../components/site-settings/category.hbs     |  2 +-
 .../components/site-settings/color.hbs        |  2 +-
 .../components/site-settings/compact-list.hbs |  2 +-
 .../components/site-settings/enum.hbs         |  2 +-
 .../components/site-settings/group-list.hbs   |  2 +-
 .../components/site-settings/host-list.hbs    |  2 +-
 .../components/site-settings/list.hbs         |  2 +-
 .../components/site-settings/secret-list.hbs  |  2 +-
 .../components/site-settings/string.hbs       |  2 +-
 .../components/site-settings/tag-list.hbs     |  2 +-
 .../components/site-settings/upload.hbs       |  2 +-
 .../site-settings/uploaded-image-list.hbs     |  2 +-
 .../components/site-settings/url-list.hbs     |  2 +-
 .../components/site-settings/value-list.hbs   |  2 +-
 .../components/suspension-details.hbs         |  4 +-
 .../templates/components/themes-list-item.hbs |  6 +-
 .../templates/components/themes-list.hbs      |  6 +-
 .../templates/customize-themes-index.hbs      |  4 +-
 .../admin/templates/customize-themes-show.hbs |  2 +-
 .../admin/templates/dashboard-problems.hbs    |  2 +-
 .../admin/templates/dashboard_general.hbs     |  2 +-
 .../admin/templates/email-advanced-test.hbs   |  4 +-
 .../admin/templates/email-preview-digest.hbs  |  2 +-
 .../javascripts/admin/templates/embedding.hbs |  2 +-
 .../templates/logs/staff-action-logs.hbs      |  2 +-
 .../templates/modal/admin-badge-preview.hbs   |  8 +-
 .../templates/modal/admin-install-theme.hbs   |  8 +-
 .../templates/modal/admin-theme-change.hbs    |  2 +-
 .../templates/modal/admin-theme-item.hbs      |  2 +-
 .../admin/templates/search-logs-term.hbs      |  4 +-
 .../admin/templates/user-index.hbs            |  8 +-
 .../admin/templates/users-list-show.hbs       |  8 +-
 .../discourse-common/helpers/html-safe.js.es6 |  6 --
 .../discourse-common/helpers/i18n.js.es6      |  3 +-
 .../discourse/components/text-overflow.js.es6 | 11 ---
 .../discourse/helpers/application.js.es6      | 12 ++-
 .../discourse/helpers/dir-span.js.es6         |  3 +-
 .../discourse/helpers/format-age.js.es6       |  5 +-
 .../javascripts/discourse/lib/computed.js.es6 | 16 ----
 .../javascripts/discourse/templates/about.hbs |  2 +-
 .../templates/account-created/index.hbs       |  2 +-
 .../templates/account-created/resent.hbs      |  2 +-
 .../discourse/templates/badges/show.hbs       |  2 +-
 .../templates/components/about-page-users.hbs |  2 +-
 .../templates/components/badge-card.hbs       |  2 +-
 .../templates/components/categories-boxes.hbs |  2 +-
 .../templates/components/categories-only.hbs  |  8 +-
 .../templates/components/d-button.hbs         |  2 +-
 .../templates/components/d-editor.hbs         |  2 +-
 .../templates/components/discourse-banner.hbs |  4 +-
 .../components/discourse-linked-text.hbs      |  2 +-
 .../components/edit-category-general.hbs      |  6 +-
 .../components/edit-category-security.hbs     |  2 +-
 .../templates/components/featured-topic.hbs   |  4 +-
 .../templates/components/flag-action-type.hbs |  4 +-
 .../templates/components/footer-message.hbs   |  2 +-
 .../templates/components/global-notice.hbs    |  4 +-
 .../components/group-card-contents.hbs        |  2 +-
 .../templates/components/group-post.hbs       |  6 +-
 .../templates/components/invite-panel.hbs     |  4 +-
 .../templates/components/ip-lookup.hbs        |  2 +-
 .../components/mobile-category-topic.hbs      |  2 +-
 .../templates/components/related-messages.hbs |  2 +-
 .../reviewable-conversation-post.hbs          |  2 +-
 .../components/reviewable-flagged-post.hbs    |  2 +-
 .../templates/components/reviewable-item.hbs  |  2 +-
 .../templates/components/reviewable-score.hbs |  2 +-
 .../components/second-factor-form.hbs         |  2 +-
 .../templates/components/share-panel.hbs      |  2 +-
 .../templates/components/share-popup.hbs      |  2 +-
 .../templates/components/share-source.hbs     |  2 +-
 .../components/shared-draft-controls.hbs      |  2 +-
 .../templates/components/suggested-topics.hbs |  2 +-
 .../templates/components/tag-info.hbs         |  2 +-
 .../templates/components/text-overflow.hbs    |  2 +-
 .../templates/components/topic-entrance.hbs   |  4 +-
 .../components/user-card-contents.hbs         |  2 +-
 .../components/user-fields/confirm.hbs        |  4 +-
 .../components/user-fields/dropdown.hbs       |  4 +-
 .../templates/components/user-fields/text.hbs |  4 +-
 .../templates/components/user-stat.hbs        |  2 +-
 .../templates/components/user-stream-item.hbs |  8 +-
 .../components/user-summary-topic.hbs         |  2 +-
 .../discourse/templates/composer.hbs          |  4 +-
 .../templates/composer/custom-body.hbs        |  2 +-
 .../templates/composer/education.hbs          |  2 +-
 .../templates/composer/group-mentioned.hbs    |  2 +-
 .../discourse/templates/discovery.hbs         |  2 +-
 .../discourse/templates/full-page-search.hbs  |  6 +-
 .../javascripts/discourse/templates/group.hbs |  2 +-
 .../discourse/templates/groups/index.hbs      |  2 +-
 .../discourse/templates/invites/show.hbs      |  4 +-
 .../templates/list/activity-column.hbr        |  2 +-
 .../templates/list/topic-excerpt.hbr          |  2 +-
 .../mobile/components/basic-topic-list.hbs    |  4 +-
 .../mobile/components/categories-only.hbs     |  2 +-
 .../mobile/components/mobile-nav.hbs          |  2 +-
 .../templates/modal/activation-resent.hbs     |  2 +-
 .../discourse/templates/modal/auth-token.hbs  |  6 +-
 .../templates/modal/avatar-selector.hbs       |  6 +-
 .../discourse/templates/modal/bookmark.hbs    |  2 +-
 .../modal/bulk-notification-level.hbs         |  2 +-
 .../templates/modal/change-owner.hbs          |  2 +-
 .../templates/modal/create-account.hbs        |  2 +-
 .../modal/delete-topic-disallowed.hbs         |  2 +-
 .../templates/modal/edit-category.hbs         |  2 +-
 .../templates/modal/feature-topic.hbs         | 22 ++---
 .../templates/modal/forgot-password.hbs       |  2 +-
 .../discourse/templates/modal/history.hbs     | 10 +-
 .../modal/keyboard-shortcuts-help.hbs         | 94 +++++++++----------
 .../templates/modal/move-to-topic.hbs         | 10 +-
 .../templates/modal/not-activated.hbs         |  2 +-
 .../templates/modal/post-enqueued.hbs         |  2 +-
 .../modal/second-factor-add-security-key.hbs  |  2 +-
 .../modal/second-factor-add-totp.hbs          |  4 +-
 .../modal/second-factor-backup-edit.hbs       |  2 +-
 .../templates/modal/topic-bulk-actions.hbs    |  2 +-
 .../templates/navigation/category.hbs         |  2 +-
 .../templates/preferences-second-factor.hbs   |  2 +-
 .../templates/preferences/account.hbs         |  2 +-
 .../templates/preferences/emails.hbs          |  2 +-
 .../templates/preferences/profile.hbs         |  2 +-
 .../discourse/templates/static.hbs            |  2 +-
 .../javascripts/discourse/templates/topic.hbs |  6 +-
 .../discourse/templates/unknown.hbs           |  2 +-
 .../discourse/templates/user-invited-show.hbs |  8 +-
 .../javascripts/discourse/templates/user.hbs  |  4 +-
 .../discourse/templates/user/stream.hbs       |  2 +-
 .../discourse/templates/user/summary.hbs      |  2 +-
 .../templates/components/category-row.hbs     |  4 +-
 .../dropdown-select-box-row.hbs               |  4 +-
 .../templates/components/pinned-button.hbs    |  2 +-
 .../components/topic-notifications-button.hbs |  2 +-
 .../templates/components/radio-button.hbs     |  2 +-
 .../templates/components/wizard-field.hbs     |  4 +-
 .../templates/components/wizard-step.hbs      |  2 +-
 .../templates/discourse_topic_onebox.hbs      |  6 +-
 .../templates/discourse_user_onebox.hbs       | 10 +-
 .../discourse-local-dates-create-form.hbs     |  2 +-
 .../components/html-safe-helper-test.js.es6   | 14 ---
 test/javascripts/lib/computed-test.js.es6     | 12 +--
 152 files changed, 284 insertions(+), 345 deletions(-)
 delete mode 100644 app/assets/javascripts/discourse-common/helpers/html-safe.js.es6
 delete mode 100644 test/javascripts/components/html-safe-helper-test.js.es6

diff --git a/.template-lintrc.js b/.template-lintrc.js
index 29bf4202984..6783c6d94e3 100644
--- a/.template-lintrc.js
+++ b/.template-lintrc.js
@@ -11,7 +11,6 @@ module.exports = {
     "no-unnecessary-concat": true,
     "no-unused-block-params": true,
     "no-unbound": true,
-    "simple-unless": true,
-    "no-triple-curlies": true
+    "simple-unless": true
   }
 };
diff --git a/app/assets/javascripts/admin/templates/badges-award.hbs b/app/assets/javascripts/admin/templates/badges-award.hbs
index d0082dc349a..b13462bf33b 100644
--- a/app/assets/javascripts/admin/templates/badges-award.hbs
+++ b/app/assets/javascripts/admin/templates/badges-award.hbs
@@ -9,11 +9,11 @@
           {{icon-or-image model}}
           <span class="badge-display-name">{{model.name}}</span>
         {{else}}
-          <span class='badge-placeholder'>{{i18n 'admin.badges.mass_award.no_badge_selected'}}</span>
+          <span class='badge-placeholder'>{{I18n 'admin.badges.mass_award.no_badge_selected'}}</span>
         {{/if}}
       </div>
       <div>
-        <h4>{{i18n 'admin.badges.mass_award.upload_csv'}}</h4>
+        <h4>{{I18n 'admin.badges.mass_award.upload_csv'}}</h4>
         <input type='file' id='massAwardCSVUpload' accept='.csv'>
       </div>
       <div>
@@ -34,6 +34,6 @@
       {{/link-to}}
     </form>
   {{else}}
-    <span class='badge-required'>{{i18n 'admin.badges.mass_award.no_badge_selected'}}</span>
+    <span class='badge-required'>{{I18n 'admin.badges.mass_award.no_badge_selected'}}</span>
   {{/if}}
 {{/d-section}}
diff --git a/app/assets/javascripts/admin/templates/badges-index.hbs b/app/assets/javascripts/admin/templates/badges-index.hbs
index 49c5945ea1e..fd08e67279b 100644
--- a/app/assets/javascripts/admin/templates/badges-index.hbs
+++ b/app/assets/javascripts/admin/templates/badges-index.hbs
@@ -7,7 +7,7 @@
         {{#each badgeIntroLinks as |link|}}
           <a href={{link.href}} class="external-link" target="_blank" rel="noopener">
             {{d-icon link.icon}}
-            <span>{{i18n link.text}}</span>
+            <span>{{I18n link.text}}</span>
           </a>
         {{/each}}
       </div>
diff --git a/app/assets/javascripts/admin/templates/components/admin-report-storage-stats.hbs b/app/assets/javascripts/admin/templates/components/admin-report-storage-stats.hbs
index d6e42cd414c..fbb9f80a64a 100644
--- a/app/assets/javascripts/admin/templates/components/admin-report-storage-stats.hbs
+++ b/app/assets/javascripts/admin/templates/components/admin-report-storage-stats.hbs
@@ -15,7 +15,7 @@
 
       {{#if backupStats.last_backup_taken_at}}
         <br>
-        {{i18n "admin.dashboard.lastest_backup" date=(format-date backupStats.last_backup_taken_at leaveAgo="true")}}
+        {{{i18n "admin.dashboard.lastest_backup" date=(format-date backupStats.last_backup_taken_at leaveAgo="true")}}}
       {{/if}}
     </p>
   </div>
diff --git a/app/assets/javascripts/admin/templates/components/admin-report-table-cell.hbs b/app/assets/javascripts/admin/templates/components/admin-report-table-cell.hbs
index fb8f2e4cdca..973e8412be1 100644
--- a/app/assets/javascripts/admin/templates/components/admin-report-table-cell.hbs
+++ b/app/assets/javascripts/admin/templates/components/admin-report-table-cell.hbs
@@ -1 +1 @@
-{{html-safe formatedValue}}
+{{{formatedValue}}}
diff --git a/app/assets/javascripts/admin/templates/components/admin-report.hbs b/app/assets/javascripts/admin/templates/components/admin-report.hbs
index 48bd58cab91..be9c2ee8d76 100644
--- a/app/assets/javascripts/admin/templates/components/admin-report.hbs
+++ b/app/assets/javascripts/admin/templates/components/admin-report.hbs
@@ -199,6 +199,6 @@
 {{/conditional-loading-section}}
 {{else}}
   <div class="alert alert-info">
-    {{html-safe disabledLabel}}
+    {{{disabledLabel}}}
   </div>
 {{/if}}
diff --git a/app/assets/javascripts/admin/templates/components/admin-user-field-item.hbs b/app/assets/javascripts/admin/templates/components/admin-user-field-item.hbs
index 211cc00b516..269d6babc26 100644
--- a/app/assets/javascripts/admin/templates/components/admin-user-field-item.hbs
+++ b/app/assets/javascripts/admin/templates/components/admin-user-field-item.hbs
@@ -46,7 +46,7 @@
     <div class="form-display">
       <strong>{{userField.name}}</strong>
       <br>
-      {{html-safe userField.description}}
+      {{{userField.description}}}
     </div>
     <div class="form-display">{{fieldName}}</div>
     <div class="form-element controls">
diff --git a/app/assets/javascripts/admin/templates/components/penalty-post-action.hbs b/app/assets/javascripts/admin/templates/components/penalty-post-action.hbs
index a6c848541ff..1a672329cd2 100644
--- a/app/assets/javascripts/admin/templates/components/penalty-post-action.hbs
+++ b/app/assets/javascripts/admin/templates/components/penalty-post-action.hbs
@@ -1,7 +1,7 @@
 <div class='penalty-post-controls'>
   <label>
     <div class='penalty-post-label'>
-      {{i18n 'admin.user.penalty_post_actions'}}
+      {{{i18n 'admin.user.penalty_post_actions'}}}
     </div>
   </label>
   {{combo-box
diff --git a/app/assets/javascripts/admin/templates/components/silence-details.hbs b/app/assets/javascripts/admin/templates/components/silence-details.hbs
index af1b4980d5b..3f7c19d5ba5 100644
--- a/app/assets/javascripts/admin/templates/components/silence-details.hbs
+++ b/app/assets/javascripts/admin/templates/components/silence-details.hbs
@@ -1,7 +1,7 @@
 <div class='reason-controls'>
   <label>
     <div class='silence-reason-label'>
-      {{i18n 'admin.user.silence_reason_label'}}
+      {{{i18n 'admin.user.silence_reason_label'}}}
     </div>
     </label>
     {{text-field
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/bool.hbs b/app/assets/javascripts/admin/templates/components/site-settings/bool.hbs
index 11384580c13..1c6c2101ae8 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/bool.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/bool.hbs
@@ -1,5 +1,5 @@
 <label>
   {{input type="checkbox" checked=enabled}}
-  <span>{{html-safe setting.description}}</span>
+  <span>{{{setting.description}}}</span>
   {{setting-validation-message message=validationMessage}}
 </label>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/category-list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/category-list.hbs
index b9609e28432..6d8871b306c 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/category-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/category-list.hbs
@@ -3,5 +3,5 @@
   onChange=(action "onChangeSelectedCategories")
 }}
 
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
 {{setting-validation-message message=validationMessage}}
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/category.hbs b/app/assets/javascripts/admin/templates/components/site-settings/category.hbs
index 4358b408de6..4f23fcc0211 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/category.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/category.hbs
@@ -4,4 +4,4 @@
   onChange=(action (mut value))
 }}
 {{setting-validation-message message=validationMessage}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/color.hbs b/app/assets/javascripts/admin/templates/components/site-settings/color.hbs
index 7b9b5bf2a88..baf81ab3894 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/color.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/color.hbs
@@ -6,4 +6,4 @@
   onChangeColor=(action "onChangeColor")
 }}
 {{setting-validation-message message=validationMessage}}
-<div class="desc">{{html-safe setting.description}}</div>
+<div class="desc">{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/compact-list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/compact-list.hbs
index 1e7e369b93d..621baec0b16 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/compact-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/compact-list.hbs
@@ -8,4 +8,4 @@
 }}
 
 {{setting-validation-message message=validationMessage}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/enum.hbs b/app/assets/javascripts/admin/templates/components/site-settings/enum.hbs
index 0b4104086e2..dc33e28df5a 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/enum.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/enum.hbs
@@ -15,5 +15,5 @@
 {{setting-validation-message message=validationMessage}}
 
 <div class='desc'>
-  {{html-safe setting.description}}
+  {{{setting.description}}}
 </div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/group-list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/group-list.hbs
index 091573eb533..8f4263a72eb 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/group-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/group-list.hbs
@@ -7,4 +7,4 @@
   onChange=(action "onChangeGroupListSetting")
 }}
 {{setting-validation-message message=validationMessage}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/host-list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/host-list.hbs
index 70366aba38c..5277c26c69d 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/host-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/host-list.hbs
@@ -1,3 +1,3 @@
 {{value-list values=value addKey="admin.site_settings.add_host"}}
 {{setting-validation-message message=validationMessage}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/list.hbs
index 090cc2a5f15..268723c92d4 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/list.hbs
@@ -1,3 +1,3 @@
 {{value-list values=value inputDelimiter="|" choices=setting.choices}}
 {{setting-validation-message message=validationMessage}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/secret-list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/secret-list.hbs
index 74519598419..a4ff6f1bd4a 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/secret-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/secret-list.hbs
@@ -1,3 +1,3 @@
 {{secret-value-list setting=setting values=value isSecret=isSecret}}
 {{setting-validation-message message=validationMessage}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/string.hbs b/app/assets/javascripts/admin/templates/components/site-settings/string.hbs
index 160f041df91..d71278f7236 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/string.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/string.hbs
@@ -7,4 +7,4 @@
 {{/if}}
 
 {{setting-validation-message message=validationMessage}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/tag-list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/tag-list.hbs
index 21e7e1ab0a5..271e4d03264 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/tag-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/tag-list.hbs
@@ -1,3 +1,3 @@
 {{tag-chooser tags=selectedTags}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
 {{setting-validation-message message=validationMessage}}
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/upload.hbs b/app/assets/javascripts/admin/templates/components/site-settings/upload.hbs
index 2758b7be5a0..86940d8633b 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/upload.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/upload.hbs
@@ -1,2 +1,2 @@
 {{site-settings-image-uploader imageUrl=value placeholderUrl=setting.placeholder type="site_setting"}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/uploaded-image-list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/uploaded-image-list.hbs
index 146c9d3722b..82dc38d6533 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/uploaded-image-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/uploaded-image-list.hbs
@@ -1,2 +1,2 @@
 {{d-button label="admin.site_settings.uploaded_image_list.label" action=(action "showUploadModal") actionParam=(hash value=value setting=setting)}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/url-list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/url-list.hbs
index 7a6cdc517ba..67db58f8ea6 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/url-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/url-list.hbs
@@ -1,3 +1,3 @@
 {{value-list values=value addKey="admin.site_settings.add_url"}}
 {{setting-validation-message message=validationMessage}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/site-settings/value-list.hbs b/app/assets/javascripts/admin/templates/components/site-settings/value-list.hbs
index 234ec83f3c5..3003b375ee2 100644
--- a/app/assets/javascripts/admin/templates/components/site-settings/value-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/site-settings/value-list.hbs
@@ -1,3 +1,3 @@
 {{value-list values=value}}
 {{setting-validation-message message=validationMessage}}
-<div class='desc'>{{html-safe setting.description}}</div>
+<div class='desc'>{{{setting.description}}}</div>
diff --git a/app/assets/javascripts/admin/templates/components/suspension-details.hbs b/app/assets/javascripts/admin/templates/components/suspension-details.hbs
index 4dcc606b2b9..0f2aa0fc848 100644
--- a/app/assets/javascripts/admin/templates/components/suspension-details.hbs
+++ b/app/assets/javascripts/admin/templates/components/suspension-details.hbs
@@ -2,9 +2,9 @@
   <label>
     <div class='suspend-reason-label'>
       {{#if siteSettings.hide_suspension_reasons}}
-        {{i18n 'admin.user.suspend_reason_hidden_label'}}
+        {{{i18n 'admin.user.suspend_reason_hidden_label'}}}
       {{else}}
-        {{i18n 'admin.user.suspend_reason_label'}}
+        {{{i18n 'admin.user.suspend_reason_label'}}}
       {{/if}}
     </div>
   </label>
diff --git a/app/assets/javascripts/admin/templates/components/themes-list-item.hbs b/app/assets/javascripts/admin/templates/components/themes-list-item.hbs
index 0c253e02143..1286937f8ab 100644
--- a/app/assets/javascripts/admin/templates/components/themes-list-item.hbs
+++ b/app/assets/javascripts/admin/templates/components/themes-list-item.hbs
@@ -28,14 +28,14 @@
 
   {{#if displayComponents}}
     <div class="components-list">
-      <span class="components">{{html-safe childrenString}}</span>
+      <span class="components">{{{childrenString}}}</span>
 
       {{#if displayHasMore}}
         <a href {{action "toggleChildrenExpanded"}} class="others-count">
           {{#if childrenExpanded}}
-            {{i18n "admin.customize.theme.collapse"}}
+            {{I18n "admin.customize.theme.collapse"}}
           {{else}}
-            {{i18n "admin.customize.theme.and_x_more" count=moreCount}}
+            {{I18n "admin.customize.theme.and_x_more" count=moreCount}}
           {{/if}}
         </a>
       {{/if}}
diff --git a/app/assets/javascripts/admin/templates/components/themes-list.hbs b/app/assets/javascripts/admin/templates/components/themes-list.hbs
index 4654371a234..29935b95b8c 100644
--- a/app/assets/javascripts/admin/templates/components/themes-list.hbs
+++ b/app/assets/javascripts/admin/templates/components/themes-list.hbs
@@ -25,9 +25,9 @@
         <div class="themes-list-item inactive-indicator">
           <span class="empty">
             {{#if themesTabActive}}
-              {{i18n "admin.customize.theme.inactive_themes"}}
+              {{I18n "admin.customize.theme.inactive_themes"}}
             {{else}}
-              {{i18n "admin.customize.theme.inactive_components"}}
+              {{I18n "admin.customize.theme.inactive_components"}}
             {{/if}}
           </span>
         </div>
@@ -41,7 +41,7 @@
     {{/if}}
   {{else}}
     <div class="themes-list-item">
-      <span class="empty">{{i18n "admin.customize.theme.empty"}}</span>
+      <span class="empty">{{I18n "admin.customize.theme.empty"}}</span>
     </div>
   {{/if}}
 
diff --git a/app/assets/javascripts/admin/templates/customize-themes-index.hbs b/app/assets/javascripts/admin/templates/customize-themes-index.hbs
index 32ad33db105..0a6060724b2 100644
--- a/app/assets/javascripts/admin/templates/customize-themes-index.hbs
+++ b/app/assets/javascripts/admin/templates/customize-themes-index.hbs
@@ -1,7 +1,7 @@
 <div class="themes-intro admin-intro">
   <img src={{womanArtistEmojiURL}}>
   <div class="content-wrapper">
-    <h1>{{i18n "admin.customize.theme.themes_intro"}}</h1>
+    <h1>{{I18n "admin.customize.theme.themes_intro"}}</h1>
      <div class="create-actions">
       {{d-button action=(route-action "installModal") icon="upload" label="admin.customize.install" class="btn-primary"}}
     </div>
@@ -9,7 +9,7 @@
       {{#each externalResources as |resource|}}
         <a href={{resource.link}} class="external-link" rel="noopener" target="_blank">
           {{d-icon resource.icon}}
-          {{i18n resource.key}}
+          {{I18n resource.key}}
         </a>
       {{/each}}
     </div>
diff --git a/app/assets/javascripts/admin/templates/customize-themes-show.hbs b/app/assets/javascripts/admin/templates/customize-themes-show.hbs
index b4c4e9a8f46..9fb7fcb4cf3 100644
--- a/app/assets/javascripts/admin/templates/customize-themes-show.hbs
+++ b/app/assets/javascripts/admin/templates/customize-themes-show.hbs
@@ -89,7 +89,7 @@
 
         {{#if showRemoteError}}
           <div class="error-message">
-            {{d-icon "exclamation-triangle"}} {{i18n "admin.customize.theme.repo_unreachable"}}
+            {{d-icon "exclamation-triangle"}} {{I18n "admin.customize.theme.repo_unreachable"}}
           </div>
           <div class="raw-error">
             <code>{{model.remoteError}}</code>
diff --git a/app/assets/javascripts/admin/templates/dashboard-problems.hbs b/app/assets/javascripts/admin/templates/dashboard-problems.hbs
index 5f95987e738..0f0b1f9d290 100644
--- a/app/assets/javascripts/admin/templates/dashboard-problems.hbs
+++ b/app/assets/javascripts/admin/templates/dashboard-problems.hbs
@@ -12,7 +12,7 @@
         <div class="problem-messages">
           <ul>
             {{#each problems as |problem|}}
-              <li>{{html-safe problem}}</li>
+              <li>{{{problem}}}</li>
             {{/each}}
           </ul>
         </div>
diff --git a/app/assets/javascripts/admin/templates/dashboard_general.hbs b/app/assets/javascripts/admin/templates/dashboard_general.hbs
index d190b7664b7..19f892ab0f6 100644
--- a/app/assets/javascripts/admin/templates/dashboard_general.hbs
+++ b/app/assets/javascripts/admin/templates/dashboard_general.hbs
@@ -142,7 +142,7 @@
         filters=trendingSearchFilters
         isEnabled=logSearchQueriesEnabled
         disabledLabel=trendingSearchDisabledLabel}}
-      {{i18n "admin.dashboard.reports.trending_search.more" basePath=basePath}}
+      {{{i18n "admin.dashboard.reports.trending_search.more" basePath=basePath}}}
     </div>
   </div>
 
diff --git a/app/assets/javascripts/admin/templates/email-advanced-test.hbs b/app/assets/javascripts/admin/templates/email-advanced-test.hbs
index f0dcaa5c6af..97a479e2c5e 100644
--- a/app/assets/javascripts/admin/templates/email-advanced-test.hbs
+++ b/app/assets/javascripts/admin/templates/email-advanced-test.hbs
@@ -14,13 +14,13 @@
   <hr>
   <div class="text">
     <h3>{{i18n 'admin.email.advanced_test.text'}}</h3>
-    <pre class="full-reason">{{html-safe text}}</pre>
+    <pre class="full-reason">{{{text}}}</pre>
   </div>
 
   <hr>
   <div class="elided">
     <h3>{{i18n 'admin.email.advanced_test.elided'}}</h3>
-    <pre class="full-reason">{{html-safe elided}}</pre>
+    <pre class="full-reason">{{{elided}}}</pre>
   </div>
 {{/if}}
 
diff --git a/app/assets/javascripts/admin/templates/email-preview-digest.hbs b/app/assets/javascripts/admin/templates/email-preview-digest.hbs
index 7a695659c54..078b642dd4c 100644
--- a/app/assets/javascripts/admin/templates/email-preview-digest.hbs
+++ b/app/assets/javascripts/admin/templates/email-preview-digest.hbs
@@ -53,7 +53,7 @@
           <iframe srcdoc={{model.html_content}} />
         {{/if}}
       {{else}}
-        <pre>{{html-safe model.text_content}}</pre>
+        <pre>{{{model.text_content}}}</pre>
       {{/if}}
     </div>
   </div>
diff --git a/app/assets/javascripts/admin/templates/embedding.hbs b/app/assets/javascripts/admin/templates/embedding.hbs
index 17772636745..f4ada49e1be 100644
--- a/app/assets/javascripts/admin/templates/embedding.hbs
+++ b/app/assets/javascripts/admin/templates/embedding.hbs
@@ -23,7 +23,7 @@
 
 {{#if showSecondary}}
   <div class='embedding-secondary'>
-    <p>{{i18n "admin.embedding.sample"}}</p>
+    <p>{{{i18n "admin.embedding.sample"}}}</p>
     {{highlighted-code code=embeddingCode lang="html"}}
   </div>
 
diff --git a/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs b/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs
index ab4c70d39e4..02c4160b6ac 100644
--- a/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs
+++ b/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs
@@ -88,7 +88,7 @@
               <td class="col value created-at">{{age-with-tooltip item.created_at}}</td>
               <td class="col value details">
                 <div>
-                  {{html-safe item.formattedDetails}}
+                  {{{item.formattedDetails}}}
                   {{#if item.useCustomModalForDetails}}
                     <a href {{action "showCustomDetailsModal" item}}>{{d-icon "info-circle"}} {{i18n 'admin.logs.staff_actions.show'}}</a>
                   {{/if}}
diff --git a/app/assets/javascripts/admin/templates/modal/admin-badge-preview.hbs b/app/assets/javascripts/admin/templates/modal/admin-badge-preview.hbs
index 528ed5af240..ef36e4aa059 100644
--- a/app/assets/javascripts/admin/templates/modal/admin-badge-preview.hbs
+++ b/app/assets/javascripts/admin/templates/modal/admin-badge-preview.hbs
@@ -17,9 +17,9 @@
   {{else}}
     <p class="grant-count">
       {{#if count}}
-        {{i18n "admin.badges.preview.grant_count" count=count}}
+        {{{i18n "admin.badges.preview.grant_count" count=count}}}
       {{else}}
-        {{i18n "admin.badges.preview.no_grant_count"}}
+        {{{i18n "admin.badges.preview.no_grant_count"}}}
       {{/if}}
     </p>
 
@@ -41,14 +41,14 @@
       </p>
       <ul>
         {{#each processedSample as |html|}}
-          <li>{{html-safe html}}</li>
+          <li>{{{html}}}</li>
         {{/each}}
       </ul>
     {{/if}}
 
     {{#if hasQueryPlan}}
       <div class="badge-query-plan">
-        {{html-safe queryPlanHtml}}
+        {{{queryPlanHtml}}}
       </div>
     {{/if}}
   {{/if}}
diff --git a/app/assets/javascripts/admin/templates/modal/admin-install-theme.hbs b/app/assets/javascripts/admin/templates/modal/admin-install-theme.hbs
index 5ed497ae577..aab0b17d71d 100644
--- a/app/assets/javascripts/admin/templates/modal/admin-install-theme.hbs
+++ b/app/assets/javascripts/admin/templates/modal/admin-install-theme.hbs
@@ -24,7 +24,7 @@
 
             <div class="popular-theme-buttons">
               {{#if theme.installed}}
-                <span>{{i18n "admin.customize.theme.installed"}}</span>
+                <span>{{I18n "admin.customize.theme.installed"}}</span>
               {{else}}
                 {{d-button class='btn-small'
                   label="admin.customize.theme.install"
@@ -33,7 +33,7 @@
                   action=(action "installThemeFromList" theme.value)}}
 
                 {{#if theme.preview}}
-                  <a href={{theme.preview}} rel="noopener" target="_blank">{{d-icon "desktop"}} {{i18n "admin.customize.theme.preview"}}</a>
+                  <a href={{theme.preview}} rel="noopener" target="_blank">{{d-icon "desktop"}} {{I18n "admin.customize.theme.preview"}}</a>
                 {{/if}}
               {{/if}}
             </div>
@@ -85,10 +85,10 @@
 
     {{#if create}}
       <div class="inputs">
-        <div class="label">{{i18n "admin.customize.theme.create_name"}}</div>
+        <div class="label">{{I18n "admin.customize.theme.create_name"}}</div>
         {{input value=name placeholder=placeholder}}
 
-        <div class="label">{{i18n "admin.customize.theme.create_type"}}</div>
+        <div class="label">{{I18n "admin.customize.theme.create_type"}}</div>
         {{combo-box
           valueProperty="value"
           content=createTypes
diff --git a/app/assets/javascripts/admin/templates/modal/admin-theme-change.hbs b/app/assets/javascripts/admin/templates/modal/admin-theme-change.hbs
index 7b3ffb5ca5b..ec26f608d86 100644
--- a/app/assets/javascripts/admin/templates/modal/admin-theme-change.hbs
+++ b/app/assets/javascripts/admin/templates/modal/admin-theme-change.hbs
@@ -1,6 +1,6 @@
 <div>
   {{#d-modal-body title="admin.logs.staff_actions.modal_title"}}
-    {{html-safe diff}}
+    {{{diff}}}
   {{/d-modal-body}}
   <div class="modal-footer">
     {{d-button
diff --git a/app/assets/javascripts/admin/templates/modal/admin-theme-item.hbs b/app/assets/javascripts/admin/templates/modal/admin-theme-item.hbs
index 724af5ace4d..7a5ddc1ea71 100644
--- a/app/assets/javascripts/admin/templates/modal/admin-theme-item.hbs
+++ b/app/assets/javascripts/admin/templates/modal/admin-theme-item.hbs
@@ -7,7 +7,7 @@
   </div>
   <div class="popular-theme-buttons">
     {{#if theme.installed}}
-      <span>{{i18n "admin.customize.theme.installed"}}</span>
+      <span>{{I18n "admin.customize.theme.installed"}}</span>
     {{else}}
       {{d-button class='btn-small'
         label="admin.customize.theme.install"
diff --git a/app/assets/javascripts/admin/templates/search-logs-term.hbs b/app/assets/javascripts/admin/templates/search-logs-term.hbs
index 27f61f2940e..78bd54afb93 100644
--- a/app/assets/javascripts/admin/templates/search-logs-term.hbs
+++ b/app/assets/javascripts/admin/templates/search-logs-term.hbs
@@ -31,7 +31,7 @@
       <div class='fps-topic'>
         <div class='topic'>
           <a class='search-link' href={{result.url}}>
-            {{topic-status topic=result.topic disableActions=true}}<span class='topic-title'>{{#highlight-text highlight=term}}{{html-safe result.topic.fancyTitle}}{{/highlight-text}}</span>
+            {{topic-status topic=result.topic disableActions=true}}<span class='topic-title'>{{#highlight-text highlight=term}}{{{result.topic.fancyTitle}}}{{/highlight-text}}</span>
           </a>
 
           <div class='search-category'>
@@ -55,7 +55,7 @@
 
           {{#if result.blurb}}
             {{#highlight-text highlight=term}}
-              {{html-safe result.blurb}}
+              {{{result.blurb}}}
             {{/highlight-text}}
           {{/if}}
         </div>
diff --git a/app/assets/javascripts/admin/templates/user-index.hbs b/app/assets/javascripts/admin/templates/user-index.hbs
index 23a1a6aae30..207120eea8b 100644
--- a/app/assets/javascripts/admin/templates/user-index.hbs
+++ b/app/assets/javascripts/admin/templates/user-index.hbs
@@ -132,7 +132,7 @@
     <div class="field">{{i18n "user.avatar.title"}}</div>
     <div class="value">{{avatar model imageSize="large"}}</div>
     <div class="controls">
-      {{i18n "admin.user.visit_profile" url=preferencesPath}}
+      {{{i18n "admin.user.visit_profile" url=preferencesPath}}}
     </div>
   </div>
 
@@ -509,7 +509,7 @@
     <h1>{{i18n "admin.groups.title"}}</h1>
       <div class="display-row">
         <div class="field">{{i18n "admin.groups.automatic"}}</div>
-        <div class="value">{{html-safe automaticGroups}}</div>
+        <div class="value">{{{automaticGroups}}}</div>
       </div>
       <div class="display-row">
         <div class="field">{{i18n "admin.groups.custom"}}</div>
@@ -616,11 +616,11 @@
   </div>
   <div class="display-row">
     <div class="field">{{i18n "admin.user.time_read"}}</div>
-    <div class="value">{{format-duration model.time_read}}</div>
+    <div class="value">{{{format-duration model.time_read}}}</div>
   </div>
   <div class="display-row">
     <div class="field">{{i18n "user.invited.days_visited"}}</div>
-    <div class="value">{{html-safe model.days_visited}}</div>
+    <div class="value">{{{model.days_visited}}}</div>
   </div>
 </section>
 
diff --git a/app/assets/javascripts/admin/templates/users-list-show.hbs b/app/assets/javascripts/admin/templates/users-list-show.hbs
index 6b0253aeda3..7d096573b00 100644
--- a/app/assets/javascripts/admin/templates/users-list-show.hbs
+++ b/app/assets/javascripts/admin/templates/users-list-show.hbs
@@ -53,11 +53,11 @@
             </td>
             <td class="last-emailed">
               <div class="label">{{i18n 'admin.users.last_emailed'}}</div>
-              <div>{{format-duration user.last_emailed_age}}</div>
+              <div>{{{format-duration user.last_emailed_age}}}</div>
             </td>
             <td class="last-seen">
               <div class="label">{{i18n 'last_seen'}}</div>
-              <div>{{format-duration user.last_seen_age}}</div>
+              <div>{{{format-duration user.last_seen_age}}}</div>
             </td>
             <td class="topics-entered">
               <div class="label">{{i18n 'admin.user.topics_entered'}}</div>
@@ -69,12 +69,12 @@
             </td>
             <td class="time-read">
               <div class="label">{{i18n 'admin.user.time_read'}}</div>
-              <div>{{format-duration user.time_read}}</div>
+              <div>{{{format-duration user.time_read}}}</div>
             </td>
 
             <td class="created">
               <div class="label">{{i18n 'created'}}</div>
-              <div>{{format-duration user.created_at_age}}</div>
+              <div>{{{format-duration user.created_at_age}}}</div>
             </td>
 
             {{#if siteSettings.must_approve_users}}
diff --git a/app/assets/javascripts/discourse-common/helpers/html-safe.js.es6 b/app/assets/javascripts/discourse-common/helpers/html-safe.js.es6
deleted file mode 100644
index dc6d5daf745..00000000000
--- a/app/assets/javascripts/discourse-common/helpers/html-safe.js.es6
+++ /dev/null
@@ -1,6 +0,0 @@
-import { registerUnbound } from "discourse-common/lib/helpers";
-import { htmlSafe } from "@ember/template";
-
-registerUnbound("html-safe", function(string) {
-  return htmlSafe(string);
-});
diff --git a/app/assets/javascripts/discourse-common/helpers/i18n.js.es6 b/app/assets/javascripts/discourse-common/helpers/i18n.js.es6
index c3d7f1e448c..902ed699bfd 100644
--- a/app/assets/javascripts/discourse-common/helpers/i18n.js.es6
+++ b/app/assets/javascripts/discourse-common/helpers/i18n.js.es6
@@ -1,7 +1,6 @@
 import { registerUnbound } from "discourse-common/lib/helpers";
-import { htmlSafe } from "@ember/template";
 
-registerUnbound("i18n", (key, params) => htmlSafe(I18n.t(key, params)));
+registerUnbound("i18n", (key, params) => I18n.t(key, params));
 registerUnbound("i18n-yes-no", (value, params) =>
   I18n.t(value ? "yes_value" : "no_value", params)
 );
diff --git a/app/assets/javascripts/discourse/components/text-overflow.js.es6 b/app/assets/javascripts/discourse/components/text-overflow.js.es6
index 201172f1efe..90a9cc21a27 100644
--- a/app/assets/javascripts/discourse/components/text-overflow.js.es6
+++ b/app/assets/javascripts/discourse/components/text-overflow.js.es6
@@ -1,19 +1,8 @@
 import { next } from "@ember/runloop";
-import { htmlSafe } from "@ember/template";
 import Component from "@ember/component";
-
 export default Component.extend({
-  text: null,
-
-  init() {
-    this._super(...arguments);
-
-    this.set("text", htmlSafe(this.text));
-  },
-
   didInsertElement() {
     this._super(...arguments);
-
     next(null, () => {
       const $this = $(this.element);
 
diff --git a/app/assets/javascripts/discourse/helpers/application.js.es6 b/app/assets/javascripts/discourse/helpers/application.js.es6
index 27727c1d846..71baa92c914 100644
--- a/app/assets/javascripts/discourse/helpers/application.js.es6
+++ b/app/assets/javascripts/discourse/helpers/application.js.es6
@@ -4,12 +4,14 @@ import {
   autoUpdatingRelativeAge,
   number
 } from "discourse/lib/formatter";
-import { htmlSafe } from "@ember/template";
 
-registerUnbound("raw-date", dt => htmlSafe(longDate(new Date(dt))));
+const safe = Handlebars.SafeString;
 
-registerUnbound("age-with-tooltip", dt =>
-  htmlSafe(autoUpdatingRelativeAge(new Date(dt), { title: true }))
+registerUnbound("raw-date", dt => longDate(new Date(dt)));
+
+registerUnbound(
+  "age-with-tooltip",
+  dt => new safe(autoUpdatingRelativeAge(new Date(dt), { title: true }))
 );
 
 registerUnbound("number", (orig, params) => {
@@ -46,5 +48,5 @@ registerUnbound("number", (orig, params) => {
 
   result += ">" + n + "</span>";
 
-  return htmlSafe(result);
+  return new safe(result);
 });
diff --git a/app/assets/javascripts/discourse/helpers/dir-span.js.es6 b/app/assets/javascripts/discourse/helpers/dir-span.js.es6
index e210c471fd5..d41f1a332e3 100644
--- a/app/assets/javascripts/discourse/helpers/dir-span.js.es6
+++ b/app/assets/javascripts/discourse/helpers/dir-span.js.es6
@@ -1,6 +1,5 @@
 import { registerUnbound } from "discourse-common/lib/helpers";
 import { isRTL } from "discourse/lib/text-direction";
-import { htmlSafe } from "@ember/template";
 
 function setDir(text) {
   let content = text ? text : "";
@@ -12,5 +11,5 @@ function setDir(text) {
 }
 
 export default registerUnbound("dir-span", function(str) {
-  return htmlSafe(setDir(str));
+  return new Handlebars.SafeString(setDir(str));
 });
diff --git a/app/assets/javascripts/discourse/helpers/format-age.js.es6 b/app/assets/javascripts/discourse/helpers/format-age.js.es6
index b8874820edc..3141a0da858 100644
--- a/app/assets/javascripts/discourse/helpers/format-age.js.es6
+++ b/app/assets/javascripts/discourse/helpers/format-age.js.es6
@@ -1,12 +1,11 @@
 import { autoUpdatingRelativeAge, durationTiny } from "discourse/lib/formatter";
 import { registerUnbound } from "discourse-common/lib/helpers";
-import { htmlSafe } from "@ember/template";
 
 registerUnbound("format-age", function(dt) {
   dt = new Date(dt);
-  return htmlSafe(autoUpdatingRelativeAge(dt));
+  return new Handlebars.SafeString(autoUpdatingRelativeAge(dt));
 });
 
 registerUnbound("format-duration", function(seconds) {
-  return htmlSafe(durationTiny(seconds));
+  return new Handlebars.SafeString(durationTiny(seconds));
 });
diff --git a/app/assets/javascripts/discourse/lib/computed.js.es6 b/app/assets/javascripts/discourse/lib/computed.js.es6
index e238320a389..acd6cde60ba 100644
--- a/app/assets/javascripts/discourse/lib/computed.js.es6
+++ b/app/assets/javascripts/discourse/lib/computed.js.es6
@@ -1,6 +1,5 @@
 import { computed } from "@ember/object";
 import addonFmt from "ember-addons/fmt";
-import { htmlSafe as htmlSafeTemplateHelper } from "@ember/template";
 
 /**
   Returns whether two properties are equal to each other.
@@ -57,21 +56,6 @@ export function i18n(...args) {
     return I18n.t(addonFmt(format, ...args.map(a => this.get(a))));
   });
 }
-/**
-  Returns htmlSafe version of a string.
-
-  @method htmlSafe
-  @params {String} properties* to htmlify
-  @return {Function} discourseComputedProperty function
-**/
-export function htmlSafe(...args) {
-  return computed(...args, {
-    get() {
-      const path = args.pop();
-      return htmlSafeTemplateHelper(this.get(path));
-    }
-  });
-}
 
 /**
   Uses an Ember String `fmt` call to format a string. See:
diff --git a/app/assets/javascripts/discourse/templates/about.hbs b/app/assets/javascripts/discourse/templates/about.hbs
index ad65dbb57e5..6e75a04a6df 100644
--- a/app/assets/javascripts/discourse/templates/about.hbs
+++ b/app/assets/javascripts/discourse/templates/about.hbs
@@ -112,7 +112,7 @@
       {{#if contactInfo}}
         <section class='about contact'>
             <h3>{{d-icon "far-envelope"}} {{i18n 'about.contact'}}</h3>
-            <p>{{html-safe contactInfo}}</p>
+            <p>{{{contactInfo}}}</p>
         </section>
       {{/if}}
 
diff --git a/app/assets/javascripts/discourse/templates/account-created/index.hbs b/app/assets/javascripts/discourse/templates/account-created/index.hbs
index 8122270cd69..8c9babb1f98 100644
--- a/app/assets/javascripts/discourse/templates/account-created/index.hbs
+++ b/app/assets/javascripts/discourse/templates/account-created/index.hbs
@@ -1,5 +1,5 @@
 <div class='ac-message'>
-  {{html-safe accountCreated.message}}
+  {{{accountCreated.message}}}
 </div>
 {{#if accountCreated.show_controls}}
   {{activation-controls sendActivationEmail=(action "sendActivationEmail")
diff --git a/app/assets/javascripts/discourse/templates/account-created/resent.hbs b/app/assets/javascripts/discourse/templates/account-created/resent.hbs
index 5ad9168986f..8647596a048 100644
--- a/app/assets/javascripts/discourse/templates/account-created/resent.hbs
+++ b/app/assets/javascripts/discourse/templates/account-created/resent.hbs
@@ -1,6 +1,6 @@
 <div class='ac-message'>
   {{#if email}}
-    {{i18n 'login.sent_activation_email_again' currentEmail=email}}
+    {{{i18n 'login.sent_activation_email_again' currentEmail=email}}}
   {{else}}
     {{i18n 'login.sent_activation_email_again_generic'}}
   {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/badges/show.hbs b/app/assets/javascripts/discourse/templates/badges/show.hbs
index fe7b489159a..09ded422b37 100644
--- a/app/assets/javascripts/discourse/templates/badges/show.hbs
+++ b/app/assets/javascripts/discourse/templates/badges/show.hbs
@@ -42,7 +42,7 @@
           {{#user-info user=ub.user size="medium" class="badge-info" date=ub.granted_at}}
             <div class="granted-on">{{i18n 'badges.granted_on' date=(inline-date ub.granted_at)}}</div>
             {{#if ub.post_number}}
-              <a class="post-link" href="{{ub.topic.url}}/{{ub.post_number}}">{{html-safe ub.topic.fancyTitle}}</a>
+              <a class="post-link" href="{{ub.topic.url}}/{{ub.post_number}}">{{{ub.topic.fancyTitle}}}</a>
             {{/if}}
           {{/user-info}}
         {{/each}}
diff --git a/app/assets/javascripts/discourse/templates/components/about-page-users.hbs b/app/assets/javascripts/discourse/templates/components/about-page-users.hbs
index 4b7161ba185..f7bfd9886b5 100644
--- a/app/assets/javascripts/discourse/templates/components/about-page-users.hbs
+++ b/app/assets/javascripts/discourse/templates/components/about-page-users.hbs
@@ -3,7 +3,7 @@
     <div class="user-image">
       <div class="user-image-inner">
         <a href={{userTemplate.userPath}} data-user-card={{userTemplate.username}}>
-          {{html-safe userTemplate.avatar}}
+          {{{userTemplate.avatar}}}
         </a>
       </div>
     </div>
diff --git a/app/assets/javascripts/discourse/templates/components/badge-card.hbs b/app/assets/javascripts/discourse/templates/components/badge-card.hbs
index 4fb6aa77c02..0fdc3bd2753 100644
--- a/app/assets/javascripts/discourse/templates/components/badge-card.hbs
+++ b/app/assets/javascripts/discourse/templates/components/badge-card.hbs
@@ -11,7 +11,7 @@
   <div class='badge-info'>
     <div class='badge-info-item'>
       <h3><a href={{url}} class='badge-link'>{{badge.name}}</a></h3>
-      <div class='badge-summary'>{{html-safe summary}}</div>
+      <div class='badge-summary'>{{{summary}}}</div>
     </div>
   </div>
 </div>
diff --git a/app/assets/javascripts/discourse/templates/components/categories-boxes.hbs b/app/assets/javascripts/discourse/templates/components/categories-boxes.hbs
index 232edea06b7..5dc594c6910 100644
--- a/app/assets/javascripts/discourse/templates/components/categories-boxes.hbs
+++ b/app/assets/javascripts/discourse/templates/components/categories-boxes.hbs
@@ -24,7 +24,7 @@
         </div>
 
         <div class='description'>
-          {{text-overflow class="overflow" text=c.description_excerpt}}
+          {{{text-overflow class="overflow" text=c.description_excerpt}}}
         </div>
         {{#if c.isGrandParent}}
           {{#each c.subcategories as |subcategory|}}
diff --git a/app/assets/javascripts/discourse/templates/components/categories-only.hbs b/app/assets/javascripts/discourse/templates/components/categories-only.hbs
index ae71465bf07..4f153b4e7fa 100644
--- a/app/assets/javascripts/discourse/templates/components/categories-only.hbs
+++ b/app/assets/javascripts/discourse/templates/components/categories-only.hbs
@@ -16,7 +16,7 @@
             {{category-title-link category=c}}
             {{#if c.description_excerpt}}
               <div class="category-description">
-                {{dir-span c.description_excerpt}}
+                {{{dir-span c.description_excerpt}}}
               </div>
             {{/if}}
             {{#if c.isGrandParent}}
@@ -28,7 +28,7 @@
                         {{category-title-link tagName="h4" category=subcategory}}
                         {{#if subcategory.description_excerpt}}
                           <div class="category-description subcategory-description">
-                            {{dir-span subcategory.description_excerpt}}
+                            {{{dir-span subcategory.description_excerpt}}}
                           </div>
                         {{/if}}
                         {{#if subcategory.subcategories}}
@@ -45,7 +45,7 @@
                         {{else}}
                           {{#if subcategory.description_excerpt}}
                             <div class="category-description subcategory-description">
-                              {{dir-span subcategory.description_excerpt}}
+                              {{{dir-span subcategory.description_excerpt}}}
                             </div>
                           {{/if}}
                         {{/if}}
@@ -69,7 +69,7 @@
             {{/if}}
           </td>
           <td class="topics">
-            <div title={{c.statTitle}}>{{html-safe c.stat}}</div>
+            <div title={{c.statTitle}}>{{{c.stat}}}</div>
             {{category-unread category=c tagName="div" class="unread-new"}}
           </td>
           {{#if showTopics}}
diff --git a/app/assets/javascripts/discourse/templates/components/d-button.hbs b/app/assets/javascripts/discourse/templates/components/d-button.hbs
index aeb5f6b6f65..755e4ea857f 100644
--- a/app/assets/javascripts/discourse/templates/components/d-button.hbs
+++ b/app/assets/javascripts/discourse/templates/components/d-button.hbs
@@ -3,7 +3,7 @@
 {{/if}}
 
 {{#if translatedLabel}}
-  <span class='d-button-label'>{{html-safe translatedLabel}}{{#if ellipsis}}&hellip;{{/if}}</span>
+  <span class='d-button-label'>{{{translatedLabel}}}{{#if ellipsis}}&hellip;{{/if}}</span>
 {{/if}}
 
 {{yield}}
diff --git a/app/assets/javascripts/discourse/templates/components/d-editor.hbs b/app/assets/javascripts/discourse/templates/components/d-editor.hbs
index 97effd78d47..f868131b63b 100644
--- a/app/assets/javascripts/discourse/templates/components/d-editor.hbs
+++ b/app/assets/javascripts/discourse/templates/components/d-editor.hbs
@@ -46,7 +46,7 @@
   </div>
 
   <div class="d-editor-preview-wrapper {{if forcePreview 'force-preview'}}">
-    <div class="d-editor-preview">{{html-safe preview}}</div>
+    <div class="d-editor-preview">{{{preview}}}</div>
     {{plugin-outlet name="editor-preview" classNames="d-editor-plugin" args=outletArgs}}
   </div>
 </div>
diff --git a/app/assets/javascripts/discourse/templates/components/discourse-banner.hbs b/app/assets/javascripts/discourse/templates/components/discourse-banner.hbs
index cda2c2069ac..27025bedee1 100644
--- a/app/assets/javascripts/discourse/templates/components/discourse-banner.hbs
+++ b/app/assets/javascripts/discourse/templates/components/discourse-banner.hbs
@@ -3,9 +3,9 @@
     <div id="banner" class={{overlay}}>
       {{d-button icon="times" action="dismiss" class="btn btn-flat close" title="banner.close"}}
       <div id="banner-content">
-        {{html-safe content}}
+        {{{content}}}
         {{#if currentUser.staff}}
-          <p><a href={{banner.url}}>{{i18n "banner.edit"}}</a></p>
+          <p><a href={{banner.url}}>{{{i18n "banner.edit"}}}</a></p>
         {{/if}}
       </div>
     </div>
diff --git a/app/assets/javascripts/discourse/templates/components/discourse-linked-text.hbs b/app/assets/javascripts/discourse/templates/components/discourse-linked-text.hbs
index 78515d04044..dd15a6dc6a4 100644
--- a/app/assets/javascripts/discourse/templates/components/discourse-linked-text.hbs
+++ b/app/assets/javascripts/discourse/templates/components/discourse-linked-text.hbs
@@ -1 +1 @@
-{{html-safe translatedText}}
+{{{translatedText}}}
diff --git a/app/assets/javascripts/discourse/templates/components/edit-category-general.hbs b/app/assets/javascripts/discourse/templates/components/edit-category-general.hbs
index 7884f85e1f3..19d6e724dcc 100644
--- a/app/assets/javascripts/discourse/templates/components/edit-category-general.hbs
+++ b/app/assets/javascripts/discourse/templates/components/edit-category-general.hbs
@@ -1,7 +1,7 @@
 {{#if category.isUncategorizedCategory}}
   <p class="warning">
     {{d-icon "exclamation-triangle"}}
-    {{i18n 'category.uncategorized_general_warning' settingLink=uncategorizedSiteSettingLink customizeLink=customizeTextContentLink}}
+    {{{i18n 'category.uncategorized_general_warning' settingLink=uncategorizedSiteSettingLink customizeLink=customizeTextContentLink}}}
   </p>
 {{/if}}
 
@@ -36,7 +36,7 @@
     <section class='field'>
       <label>{{i18n 'category.description'}}</label>
       {{#if category.description}}
-        {{html-safe category.description}}
+        {{{category.description}}}
       {{else}}
         {{i18n 'category.no_description'}}
       {{/if}}
@@ -51,7 +51,7 @@
     <section class='field'>
       <label>{{i18n 'category.badge_colors'}}</label>
       <div class="category-color-editor">
-        {{html-safe categoryBadgePreview}}
+        {{{categoryBadgePreview}}}
 
         <div class='input-prepend input-append' style="margin-top: 10px;">
           <span class='color-title'>{{i18n 'category.background_color'}}:</span>
diff --git a/app/assets/javascripts/discourse/templates/components/edit-category-security.hbs b/app/assets/javascripts/discourse/templates/components/edit-category-security.hbs
index 5b132092c49..cfde179c326 100644
--- a/app/assets/javascripts/discourse/templates/components/edit-category-security.hbs
+++ b/app/assets/javascripts/discourse/templates/components/edit-category-security.hbs
@@ -11,7 +11,7 @@
       {{#each category.permissions as |p|}}
         <li>
           <span class="name"><span class="badge-group">{{p.group_name}}</span></span>
-          {{i18n "category.can"}}
+          {{{i18n "category.can"}}}
           <span class="permission">{{p.permission.description}}</span>
           {{#if editingPermissions}}
             <a class="remove-permission" href {{action "removePermission" p}}>{{d-icon "times-circle"}}</a>
diff --git a/app/assets/javascripts/discourse/templates/components/featured-topic.hbs b/app/assets/javascripts/discourse/templates/components/featured-topic.hbs
index 10d9d5fcba2..655ca8c16ea 100644
--- a/app/assets/javascripts/discourse/templates/components/featured-topic.hbs
+++ b/app/assets/javascripts/discourse/templates/components/featured-topic.hbs
@@ -1,10 +1,10 @@
 {{raw "topic-status" topic=topic}}
-<a class='title' href={{topic.lastUnreadUrl}}>{{html-safe topic.fancyTitle}}</a>
+<a class='title' href={{topic.lastUnreadUrl}}>{{{topic.fancyTitle}}}</a>
 {{topic-post-badges newPosts=topic.totalUnread unseen=topic.unseen url=topic.lastUnreadUrl}}
 
 {{#if latestTopicOnly}}
   <div class='last-user-info'>
-    {{i18n 'categories.latest_by'}} <a href={{html-safe topic.lastPosterUrl}}>{{topic.last_poster.username}}</a>
+    {{i18n 'categories.latest_by'}} <a href={{{topic.lastPosterUrl}}}>{{topic.last_poster.username}}</a>
     <a href={{topic.lastPostUrl}}>{{format-age topic.last_posted_at}}</a>
   </div>
 {{else}}
diff --git a/app/assets/javascripts/discourse/templates/components/flag-action-type.hbs b/app/assets/javascripts/discourse/templates/components/flag-action-type.hbs
index cc7b592b42c..e6fe7ca5162 100644
--- a/app/assets/javascripts/discourse/templates/components/flag-action-type.hbs
+++ b/app/assets/javascripts/discourse/templates/components/flag-action-type.hbs
@@ -5,7 +5,7 @@
       <input type='radio' id="radio_{{flag.name_key}}" {{action "changePostActionType" flag}} name='post_action_type_index'>
 
       <div class='flag-action-type-details'>
-        <span class='description'>{{html-safe flag.description}}</span>
+        <span class='description'>{{{flag.description}}}</span>
         {{#if showMessageInput}}
           {{textarea name="message" class="flag-message" placeholder=customPlaceholder value=message}}
           <div class="custom-message-length {{customMessageLengthClasses}}">{{customMessageLength}}</div>
@@ -24,7 +24,7 @@
       <div class='flag-action-type-details'>
         <strong>{{formattedName}}</strong>
         {{#if showDescription}}
-          <div class='description'>{{html-safe description}}</div>
+          <div class='description'>{{{description}}}</div>
         {{/if}}
         {{#if showMessageInput}}
           {{textarea name="message" class="flag-message" placeholder=customPlaceholder value=message}}
diff --git a/app/assets/javascripts/discourse/templates/components/footer-message.hbs b/app/assets/javascripts/discourse/templates/components/footer-message.hbs
index 03e5c7b8ee2..65e3a460df9 100644
--- a/app/assets/javascripts/discourse/templates/components/footer-message.hbs
+++ b/app/assets/javascripts/discourse/templates/components/footer-message.hbs
@@ -1,4 +1,4 @@
-{{#if education}}<div class="education">{{html-safe education}}</div>{{/if}}
+{{#if education}}<div class="education">{{{education}}}</div>{{/if}}
 <h3>
   {{message}}
   {{yield}}
diff --git a/app/assets/javascripts/discourse/templates/components/global-notice.hbs b/app/assets/javascripts/discourse/templates/components/global-notice.hbs
index 08ff36603fc..c2b3b75e2e5 100644
--- a/app/assets/javascripts/discourse/templates/components/global-notice.hbs
+++ b/app/assets/javascripts/discourse/templates/components/global-notice.hbs
@@ -2,9 +2,9 @@
   <div class="row">
     <div id="global-notice-{{notice.id}}" class="alert alert-{{notice.options.level}} {{notice.id}}">
       {{#if notice.options.html}}
-        {{html-safe notice.options.html}}
+        {{{notice.options.html}}}
       {{/if}}
-      <span class="text">{{html-safe notice.text}}</span>
+      <span class="text">{{{notice.text}}}</span>
 
       {{#if notice.options.dismissable}}
         {{d-button
diff --git a/app/assets/javascripts/discourse/templates/components/group-card-contents.hbs b/app/assets/javascripts/discourse/templates/components/group-card-contents.hbs
index 7f6104b836e..22629d003dd 100644
--- a/app/assets/javascripts/discourse/templates/components/group-card-contents.hbs
+++ b/app/assets/javascripts/discourse/templates/components/group-card-contents.hbs
@@ -43,7 +43,7 @@
 
     {{#if group.bio_cooked}}
       <div class="card-row second-row">
-        <div class='bio'>{{html-safe group.bio_cooked}}</div>
+        <div class='bio'>{{{group.bio_cooked}}}</div>
       </div>
     {{/if}}
 
diff --git a/app/assets/javascripts/discourse/templates/components/group-post.hbs b/app/assets/javascripts/discourse/templates/components/group-post.hbs
index d4a9673708e..d9880b54b64 100644
--- a/app/assets/javascripts/discourse/templates/components/group-post.hbs
+++ b/app/assets/javascripts/discourse/templates/components/group-post.hbs
@@ -8,7 +8,7 @@
   <div class='stream-topic-details'>
       <div class='stream-topic-title'>
         <span class='title'>
-          <a href={{postUrl}}>{{html-safe post.topic.fancyTitle}}</a>
+          <a href={{postUrl}}>{{{post.topic.fancyTitle}}}</a>
         </span>
       </div>
       <div class="group-post-category">{{category-link post.category}}</div>
@@ -24,8 +24,8 @@
 
 <div class='excerpt'>
   {{#if post.expandedExcerpt}}
-    {{html-safe post.expandedExcerpt}}
+    {{{post.expandedExcerpt}}}
   {{else}}
-    {{html-safe post.excerpt}}
+    {{{post.excerpt}}}
   {{/if}}
 </div>
diff --git a/app/assets/javascripts/discourse/templates/components/invite-panel.hbs b/app/assets/javascripts/discourse/templates/components/invite-panel.hbs
index cfdd1431bf3..3c13bea09e7 100644
--- a/app/assets/javascripts/discourse/templates/components/invite-panel.hbs
+++ b/app/assets/javascripts/discourse/templates/components/invite-panel.hbs
@@ -1,6 +1,6 @@
 {{#if inviteModel.error}}
   <div class="alert alert-error">
-    {{html-safe errorMessage}}
+    {{{errorMessage}}}
   </div>
 {{/if}}
 
@@ -10,7 +10,7 @@
       {{generated-invite-link link=inviteModel.inviteLink email=emailOrUsername}}
     {{else}}
       <div class="success-message">
-        {{html-safe successMessage}}
+        {{{successMessage}}}
       </div>
     {{/if}}
   {{else}}
diff --git a/app/assets/javascripts/discourse/templates/components/ip-lookup.hbs b/app/assets/javascripts/discourse/templates/components/ip-lookup.hbs
index 9b7b7bebc4a..dce5918f524 100644
--- a/app/assets/javascripts/discourse/templates/components/ip-lookup.hbs
+++ b/app/assets/javascripts/discourse/templates/components/ip-lookup.hbs
@@ -14,7 +14,7 @@
       {{d-button action=(action "copy") class="pull-right no-text" icon="copy"}}
     {{/if}}
     <h4>{{i18n "ip_lookup.title"}}</h4>
-    <p class='powered-by'>{{i18n "ip_lookup.powered_by"}}</p>
+    <p class='powered-by'>{{{i18n "ip_lookup.powered_by"}}}</p>
     <dl>
       {{#if location}}
         {{#if location.hostname}}
diff --git a/app/assets/javascripts/discourse/templates/components/mobile-category-topic.hbs b/app/assets/javascripts/discourse/templates/components/mobile-category-topic.hbs
index 3c4fcf9491b..e9d901d8807 100644
--- a/app/assets/javascripts/discourse/templates/components/mobile-category-topic.hbs
+++ b/app/assets/javascripts/discourse/templates/components/mobile-category-topic.hbs
@@ -5,7 +5,7 @@
     {{#if topic.unseen}}
       <span class="badge-notification new-topic"></span>
     {{/if}}
-    <span class={{cold-age-class topic.last_posted_at}} title={{raw-date topic.last_posted_at}}>{{format-age topic.last_posted_at}}</span>
+    <span class={{cold-age-class topic.last_posted_at}} title={{raw-date topic.last_posted_at}}>{{{format-age topic.last_posted_at}}}</span>
   </div>
 </td>
 <td class='num posts'>{{raw "list/post-count-or-badges" topic=topic postBadgesEnabled="true"}}</td>
diff --git a/app/assets/javascripts/discourse/templates/components/related-messages.hbs b/app/assets/javascripts/discourse/templates/components/related-messages.hbs
index 09e1abb1a15..84b7d429624 100644
--- a/app/assets/javascripts/discourse/templates/components/related-messages.hbs
+++ b/app/assets/javascripts/discourse/templates/components/related-messages.hbs
@@ -10,5 +10,5 @@
 </div>
 
 {{#if targetUser}}
-  <h3 class="see-all-pms-message">{{i18n "related_messages.see_all" path=searchLink username=targetUser.username}}</h3>
+  <h3 class="see-all-pms-message">{{{i18n "related_messages.see_all" path=searchLink username=targetUser.username}}}</h3>
 {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/components/reviewable-conversation-post.hbs b/app/assets/javascripts/discourse/templates/components/reviewable-conversation-post.hbs
index 25aeea07269..1bdcd280ff1 100644
--- a/app/assets/javascripts/discourse/templates/components/reviewable-conversation-post.hbs
+++ b/app/assets/javascripts/discourse/templates/components/reviewable-conversation-post.hbs
@@ -3,6 +3,6 @@
     {{#if showUsername}}
       {{#link-to 'user' post.user class="username"}}@{{post.user.username}}{{/link-to}}
     {{/if}}
-    {{html-safe post.excerpt}}
+    {{{post.excerpt}}}
   </div>
 {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/components/reviewable-flagged-post.hbs b/app/assets/javascripts/discourse/templates/components/reviewable-flagged-post.hbs
index 2ac3b61ff78..09e196766fb 100644
--- a/app/assets/javascripts/discourse/templates/components/reviewable-flagged-post.hbs
+++ b/app/assets/javascripts/discourse/templates/components/reviewable-flagged-post.hbs
@@ -17,7 +17,7 @@
       {{#if reviewable.blank_post}}
         <p>{{i18n "review.deleted_post"}}</p>
       {{else}}
-        {{html-safe reviewable.cooked}}
+        {{{reviewable.cooked}}}
       {{/if}}
     </div>
     {{plugin-outlet name="after-reviewable-flagged-post-body" args=(hash model=reviewable)}}
diff --git a/app/assets/javascripts/discourse/templates/components/reviewable-item.hbs b/app/assets/javascripts/discourse/templates/components/reviewable-item.hbs
index 7b3a7a2f2a7..2d432a53b43 100644
--- a/app/assets/javascripts/discourse/templates/components/reviewable-item.hbs
+++ b/app/assets/javascripts/discourse/templates/components/reviewable-item.hbs
@@ -46,7 +46,7 @@
   <div class='reviewable-actions'>
     {{#if claimEnabled}}
       <div class='claimed-actions'>
-        <span class='help'>{{html-safe claimHelp}}</span>
+        <span class='help'>{{{claimHelp}}}</span>
         {{reviewable-claimed-topic topicId=topicId claimedBy=reviewable.claimed_by}}
       </div>
     {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/components/reviewable-score.hbs b/app/assets/javascripts/discourse/templates/components/reviewable-score.hbs
index 847cc421547..aa9a2f0fe2d 100644
--- a/app/assets/javascripts/discourse/templates/components/reviewable-score.hbs
+++ b/app/assets/javascripts/discourse/templates/components/reviewable-score.hbs
@@ -49,7 +49,7 @@
 {{#if rs.reason}}
   <tr>
     <td colspan='7'>
-      <div class='reviewable-score-reason'>{{html-safe rs.reason}}</div>
+      <div class='reviewable-score-reason'>{{{rs.reason}}}</div>
     </td>
   </tr>
 {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/components/second-factor-form.hbs b/app/assets/javascripts/discourse/templates/components/second-factor-form.hbs
index dc03f52d54b..4c5c717be35 100644
--- a/app/assets/javascripts/discourse/templates/components/second-factor-form.hbs
+++ b/app/assets/javascripts/discourse/templates/components/second-factor-form.hbs
@@ -1,7 +1,7 @@
 <div id="second-factor">
   <h3>{{secondFactorTitle}}</h3>
   {{#if optionalText}}
-    <p>{{html-safe optionalText}}</p>
+    <p>{{{optionalText}}}</p>
   {{/if}}
   <p>{{secondFactorDescription}}</p>
   {{yield}}
diff --git a/app/assets/javascripts/discourse/templates/components/share-panel.hbs b/app/assets/javascripts/discourse/templates/components/share-panel.hbs
index 1808d6cc1f0..b166c420719 100644
--- a/app/assets/javascripts/discourse/templates/components/share-panel.hbs
+++ b/app/assets/javascripts/discourse/templates/components/share-panel.hbs
@@ -1,5 +1,5 @@
 <div class="header">
-  <h3 class="title">{{html-safe shareTitle}}</h3>
+  <h3 class="title">{{{shareTitle}}}</h3>
 </div>
 
 <div class="body">
diff --git a/app/assets/javascripts/discourse/templates/components/share-popup.hbs b/app/assets/javascripts/discourse/templates/components/share-popup.hbs
index 54e8029cf67..6f0428b1aab 100644
--- a/app/assets/javascripts/discourse/templates/components/share-popup.hbs
+++ b/app/assets/javascripts/discourse/templates/components/share-popup.hbs
@@ -1,5 +1,5 @@
 <div class="title">
-  <h3>{{html-safe shareTitle}}</h3>
+  <h3>{{{shareTitle}}}</h3>
 
   {{#if date}}
     <span class="date">{{displayDate}}</span>
diff --git a/app/assets/javascripts/discourse/templates/components/share-source.hbs b/app/assets/javascripts/discourse/templates/components/share-source.hbs
index eaee0823d04..32fa1adb653 100644
--- a/app/assets/javascripts/discourse/templates/components/share-source.hbs
+++ b/app/assets/javascripts/discourse/templates/components/share-source.hbs
@@ -2,6 +2,6 @@
   {{#if source.icon}}
     {{d-icon source.icon}}
   {{else}}
-    {{html-safe source.htmlIcon}}
+    {{{source.htmlIcon}}}
   {{/if}}
 </a>
diff --git a/app/assets/javascripts/discourse/templates/components/shared-draft-controls.hbs b/app/assets/javascripts/discourse/templates/components/shared-draft-controls.hbs
index d42eb1b1779..23b2d45ae28 100644
--- a/app/assets/javascripts/discourse/templates/components/shared-draft-controls.hbs
+++ b/app/assets/javascripts/discourse/templates/components/shared-draft-controls.hbs
@@ -2,7 +2,7 @@
   {{#if publishing}}
     {{i18n "shared_drafts.publishing"}}
   {{else}}
-    {{i18n "shared_drafts.notice" category=topic.category.name}}
+    {{{i18n "shared_drafts.notice" category=topic.category.name}}}
 
     <div class='publish-field'>
       <label>{{i18n "shared_drafts.destination_category"}}</label>
diff --git a/app/assets/javascripts/discourse/templates/components/suggested-topics.hbs b/app/assets/javascripts/discourse/templates/components/suggested-topics.hbs
index ae7db1c9075..ffd142b1be8 100644
--- a/app/assets/javascripts/discourse/templates/components/suggested-topics.hbs
+++ b/app/assets/javascripts/discourse/templates/components/suggested-topics.hbs
@@ -13,4 +13,4 @@
   {{/if}}
 </div>
 
-<h3 class="suggested-topics-message">{{html-safe browseMoreMessage}}</h3>
+<h3 class="suggested-topics-message">{{{browseMoreMessage}}}</h3>
diff --git a/app/assets/javascripts/discourse/templates/components/tag-info.hbs b/app/assets/javascripts/discourse/templates/components/tag-info.hbs
index aa1f4889d1d..3b616fec811 100644
--- a/app/assets/javascripts/discourse/templates/components/tag-info.hbs
+++ b/app/assets/javascripts/discourse/templates/components/tag-info.hbs
@@ -32,7 +32,7 @@
     {{#if tagInfo.synonyms}}
       <div class="synonyms-list">
         <h3>{{i18n "tagging.synonyms"}}</h3>
-        <div>{{i18n "tagging.synonyms_description" base_tag_name=tagInfo.name}}</div>
+        <div>{{{i18n "tagging.synonyms_description" base_tag_name=tagInfo.name}}}</div>
         <div class="tag-list">
           {{#each tagInfo.synonyms as |tag|}}
             <div class='tag-box'>
diff --git a/app/assets/javascripts/discourse/templates/components/text-overflow.hbs b/app/assets/javascripts/discourse/templates/components/text-overflow.hbs
index 3606bb98a04..05a44390298 100644
--- a/app/assets/javascripts/discourse/templates/components/text-overflow.hbs
+++ b/app/assets/javascripts/discourse/templates/components/text-overflow.hbs
@@ -1 +1 @@
-{{html-safe text}}
+{{{text}}}
diff --git a/app/assets/javascripts/discourse/templates/components/topic-entrance.hbs b/app/assets/javascripts/discourse/templates/components/topic-entrance.hbs
index 227674d60c7..7b7fb58b8b8 100644
--- a/app/assets/javascripts/discourse/templates/components/topic-entrance.hbs
+++ b/app/assets/javascripts/discourse/templates/components/topic-entrance.hbs
@@ -1,7 +1,7 @@
 {{#d-button action=(action "enterTop") class="full jump-top"}}
-  {{d-icon 'step-backward'}} {{html-safe topDate}}
+  {{d-icon 'step-backward'}} {{{topDate}}}
 {{/d-button}}
 
 {{#d-button action=(action "enterBottom") class="full jump-bottom"}}
-  {{html-safe bottomDate}} {{d-icon 'step-forward'}}
+  {{{bottomDate}}} {{d-icon 'step-forward'}}
 {{/d-button}}
diff --git a/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs b/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs
index 3bfdf96268a..f6956782a93 100644
--- a/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs
+++ b/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs
@@ -144,7 +144,7 @@
         <div class="card-row">
           <div class="featured-topic">
             <span class="desc">{{i18n 'user.featured_topic'}}</span>
-            {{#link-to "topic" user.featured_topic.slug user.featured_topic.id }}{{html-safe user.featured_topic.fancy_title}}{{/link-to}}
+            {{#link-to "topic" user.featured_topic.slug user.featured_topic.id }}{{{user.featured_topic.fancy_title}}}{{/link-to}}
           </div>
         </div>
       {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/components/user-fields/confirm.hbs b/app/assets/javascripts/discourse/templates/components/user-fields/confirm.hbs
index c09e6593016..fe91090dde3 100644
--- a/app/assets/javascripts/discourse/templates/components/user-fields/confirm.hbs
+++ b/app/assets/javascripts/discourse/templates/components/user-fields/confirm.hbs
@@ -1,6 +1,6 @@
 {{#if field.name}}
   <label class="control-label" for={{concat 'user-' elementId}}>
-    {{html-safe field.name}}   {{#if field.required}}<span class='required'>*</span>{{/if}}
+    {{{field.name}}}   {{#if field.required}}<span class='required'>*</span>{{/if}}
   </label>
 {{/if}}
 
@@ -8,7 +8,7 @@
   <label class="control-label checkbox-label">
     {{input id=(concat 'user-' elementId) checked=value type="checkbox"}}
     <span>
-      {{html-safe field.description}}   {{#unless field.name}}{{#if field.required}}<span class='required'>*</span>{{/if}}{{/unless}}
+      {{{field.description}}}   {{#unless field.name}}{{#if field.required}}<span class='required'>*</span>{{/if}}{{/unless}}
     </span>
   </label>
 </div>
diff --git a/app/assets/javascripts/discourse/templates/components/user-fields/dropdown.hbs b/app/assets/javascripts/discourse/templates/components/user-fields/dropdown.hbs
index fd3cb919170..136585cb036 100644
--- a/app/assets/javascripts/discourse/templates/components/user-fields/dropdown.hbs
+++ b/app/assets/javascripts/discourse/templates/components/user-fields/dropdown.hbs
@@ -1,4 +1,4 @@
-<label class="control-label" for={{concat 'user-' elementId}}>{{html-safe field.name}} {{#if field.required}}<span class='required'>*</span>{{/if}}
+<label class="control-label" for={{concat 'user-' elementId}}>{{{field.name}}} {{#if field.required}}<span class='required'>*</span>{{/if}}
 </label>
 <div class='controls'>
   {{combo-box
@@ -10,5 +10,5 @@
     none=noneLabel
     onChange=(action (mut value))
   }}
-  <div class="instructions">{{html-safe field.description}}</div>
+  <div class="instructions">{{{field.description}}}</div>
 </div>
diff --git a/app/assets/javascripts/discourse/templates/components/user-fields/text.hbs b/app/assets/javascripts/discourse/templates/components/user-fields/text.hbs
index 1c33ea14526..4549f721afb 100644
--- a/app/assets/javascripts/discourse/templates/components/user-fields/text.hbs
+++ b/app/assets/javascripts/discourse/templates/components/user-fields/text.hbs
@@ -1,6 +1,6 @@
-<label class="control-label" for={{concat 'user-' elementId}}>{{html-safe field.name}} {{#if field.required}}<span class='required'>*</span>{{/if}}
+<label class="control-label" for={{concat 'user-' elementId}}>{{{field.name}}} {{#if field.required}}<span class='required'>*</span>{{/if}}
 </label>
 <div class='controls'>
   {{input id=(concat 'user-' elementId) value=value maxlength=site.user_field_max_length}}
-  <div class="instructions">{{html-safe field.description}}</div>
+  <div class="instructions">{{{field.description}}}</div>
 </div>
diff --git a/app/assets/javascripts/discourse/templates/components/user-stat.hbs b/app/assets/javascripts/discourse/templates/components/user-stat.hbs
index 69704bf892f..87b1a220e13 100644
--- a/app/assets/javascripts/discourse/templates/components/user-stat.hbs
+++ b/app/assets/javascripts/discourse/templates/components/user-stat.hbs
@@ -9,5 +9,5 @@
 </span>
 <span class='label'>
   {{#if icon}}{{d-icon icon}}{{/if}}
-  {{i18n label count=value}}
+  {{{i18n label count=value}}}
 </span>
diff --git a/app/assets/javascripts/discourse/templates/components/user-stream-item.hbs b/app/assets/javascripts/discourse/templates/components/user-stream-item.hbs
index f6da96aa0c3..a87439ad359 100644
--- a/app/assets/javascripts/discourse/templates/components/user-stream-item.hbs
+++ b/app/assets/javascripts/discourse/templates/components/user-stream-item.hbs
@@ -2,7 +2,7 @@
   <a href={{item.userUrl}} data-user-card={{item.username}} class='avatar-link'><div class='avatar-wrapper'>{{avatar item imageSize="large" extraClasses="actor" ignoreTitle="true"}}</div></a>
   <span class='time'>{{format-date item.created_at}}</span>
   {{#if item.draftType}}
-    <span class='draft-type'>{{html-safe item.draftType}}</span>
+    <span class='draft-type'>{{{item.draftType}}}</span>
   {{else}}
     {{expand-post item=item}}
   {{/if}}
@@ -11,9 +11,9 @@
       {{topic-status topic=item disableActions=true}}
       <span class="title">
         {{#if item.postUrl}}
-          <a href={{item.postUrl}}>{{html-safe item.title}}</a>
+          <a href={{item.postUrl}}>{{{item.title}}}</a>
         {{else}}
-          {{html-safe item.title}}
+          {{{item.title}}}
         {{/if}}
       </span>
     </div>
@@ -36,13 +36,11 @@
 {{/if}}
 
 <p class='excerpt' data-topic-id={{item.topic_id}} data-post-id={{item.post_id}} data-user-id={{item.user_id}}>
-  {{!-- template-lint-disable no-triple-curlies --}}
   {{~#if item.expandedExcerpt}}
     {{~{item.expandedExcerpt}~}}
   {{else}}
     {{~{item.excerpt}~}}
   {{/if~}}
-  {{!-- template-lint-enable --}}
 </p>
 
 {{#each item.children as |child|}}
diff --git a/app/assets/javascripts/discourse/templates/components/user-summary-topic.hbs b/app/assets/javascripts/discourse/templates/components/user-summary-topic.hbs
index 970592ece41..07f7c03cd88 100644
--- a/app/assets/javascripts/discourse/templates/components/user-summary-topic.hbs
+++ b/app/assets/javascripts/discourse/templates/components/user-summary-topic.hbs
@@ -6,4 +6,4 @@
   {{/if}}
 </span>
 <br>
-<a href={{url}}>{{html-safe topic.fancyTitle}}</a>
+<a href={{url}}>{{{topic.fancyTitle}}}</a>
diff --git a/app/assets/javascripts/discourse/templates/composer.hbs b/app/assets/javascripts/discourse/templates/composer.hbs
index 43af40a5274..ce1e7af4584 100644
--- a/app/assets/javascripts/discourse/templates/composer.hbs
+++ b/app/assets/javascripts/discourse/templates/composer.hbs
@@ -204,7 +204,7 @@
                   {{d-button action=(action "togglePreview") class="hide-preview" label="composer.hide_preview"}}
                 {{/if}}
               {{else}}
-                <a href {{action "togglePreview"}} class='toggle-preview'>{{html-safe toggleText}}</a>
+                <a href {{action "togglePreview"}} class='toggle-preview'>{{{toggleText}}}</a>
               {{/if}}
 
           </div>
@@ -221,7 +221,7 @@
 
         <div class='draft-text'>
           {{#if model.topic}}
-            {{d-icon "share"}} {{html-safe draftTitle}}
+            {{d-icon "share"}} {{{draftTitle}}}
           {{else}}
             {{i18n "composer.saved_draft"}}
           {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/composer/custom-body.hbs b/app/assets/javascripts/discourse/templates/composer/custom-body.hbs
index 238de27da0b..e37bdb2aa0c 100644
--- a/app/assets/javascripts/discourse/templates/composer/custom-body.hbs
+++ b/app/assets/javascripts/discourse/templates/composer/custom-body.hbs
@@ -1,3 +1,3 @@
 <a href {{action "closeMessage"}} class='close'>{{d-icon "times"}}</a>
 {{#if message.title}}<h3>{{message.title}}</h3>{{/if}}
-<p>{{html-safe message.body}}</p>
+<p>{{{message.body}}}</p>
diff --git a/app/assets/javascripts/discourse/templates/composer/education.hbs b/app/assets/javascripts/discourse/templates/composer/education.hbs
index 269e44e5953..c2d574cb690 100644
--- a/app/assets/javascripts/discourse/templates/composer/education.hbs
+++ b/app/assets/javascripts/discourse/templates/composer/education.hbs
@@ -1,2 +1,2 @@
 <a href {{action "closeMessage"}} class='close'>{{d-icon "times"}}</a>
-{{html-safe message.body}}
+{{{message.body}}}
diff --git a/app/assets/javascripts/discourse/templates/composer/group-mentioned.hbs b/app/assets/javascripts/discourse/templates/composer/group-mentioned.hbs
index 269e44e5953..c2d574cb690 100644
--- a/app/assets/javascripts/discourse/templates/composer/group-mentioned.hbs
+++ b/app/assets/javascripts/discourse/templates/composer/group-mentioned.hbs
@@ -1,2 +1,2 @@
 <a href {{action "closeMessage"}} class='close'>{{d-icon "times"}}</a>
-{{html-safe message.body}}
+{{{message.body}}}
diff --git a/app/assets/javascripts/discourse/templates/discovery.hbs b/app/assets/javascripts/discourse/templates/discovery.hbs
index 1c8f879125a..6801ab3f551 100644
--- a/app/assets/javascripts/discourse/templates/discovery.hbs
+++ b/app/assets/javascripts/discourse/templates/discovery.hbs
@@ -1,5 +1,5 @@
 {{#if errorHtml}}
-  {{html-safe errorHtml}}
+  {{{errorHtml}}}
 {{else}}
   <div class="container">
     {{discourse-banner user=currentUser banner=site.banner}}
diff --git a/app/assets/javascripts/discourse/templates/full-page-search.hbs b/app/assets/javascripts/discourse/templates/full-page-search.hbs
index 9394f354864..355e18f1b80 100644
--- a/app/assets/javascripts/discourse/templates/full-page-search.hbs
+++ b/app/assets/javascripts/discourse/templates/full-page-search.hbs
@@ -49,7 +49,7 @@
 
       <div class='search-info'>
         <div class='result-count'>
-          {{html-safe resultCountLabel}}
+          {{{resultCountLabel}}}
         </div>
         <div class='sort-by'>
           <span class='desc'>
@@ -88,7 +88,7 @@
 
                   <a class='search-link' href={{result.url}} {{action "logClick" result.topic_id}}>
                     {{topic-status topic=result.topic disableActions=true showPrivateMessageIcon=true}}
-                    <span class='topic-title'>{{#highlight-text highlight=q}}{{html-safe result.topic.fancyTitle}}{{/highlight-text}}</span>
+                    <span class='topic-title'>{{#highlight-text highlight=q}}{{{result.topic.fancyTitle}}}{{/highlight-text}}</span>
                   </a>
 
                   <div class='search-category'>
@@ -113,7 +113,7 @@
 
                   {{#if result.blurb}}
                     {{#highlight-text highlight=highlightQuery}}
-                      {{html-safe result.blurb}}
+                      {{{result.blurb}}}
                     {{/highlight-text}}
                   {{/if}}
                 </div>
diff --git a/app/assets/javascripts/discourse/templates/group.hbs b/app/assets/javascripts/discourse/templates/group.hbs
index 1bc9734c139..8385894c0cb 100644
--- a/app/assets/javascripts/discourse/templates/group.hbs
+++ b/app/assets/javascripts/discourse/templates/group.hbs
@@ -26,7 +26,7 @@
       <hr>
 
       <div class='group-bio'>
-        <p>{{html-safe model.bio_cooked}}</p>
+        <p>{{{model.bio_cooked}}}</p>
       </div>
     {{/if}}
 
diff --git a/app/assets/javascripts/discourse/templates/groups/index.hbs b/app/assets/javascripts/discourse/templates/groups/index.hbs
index 36d0a644b19..21cbe557a91 100644
--- a/app/assets/javascripts/discourse/templates/groups/index.hbs
+++ b/app/assets/javascripts/discourse/templates/groups/index.hbs
@@ -51,7 +51,7 @@
                     </span>
                   </div>
 
-                  <div class="group-description">{{html-safe group.bio_excerpt}}</div>
+                  <div class="group-description">{{{group.bio_excerpt}}}</div>
 
                   <div class="group-membership">
                     {{#group-membership-button tagName='' model=group showLogin=(route-action "showLogin")}}
diff --git a/app/assets/javascripts/discourse/templates/invites/show.hbs b/app/assets/javascripts/discourse/templates/invites/show.hbs
index f2f1e736781..42216317ee5 100644
--- a/app/assets/javascripts/discourse/templates/invites/show.hbs
+++ b/app/assets/javascripts/discourse/templates/invites/show.hbs
@@ -10,12 +10,12 @@
     <div class="col-form">
       {{#if successMessage}}
         <br><br>
-        <div class='alert alert-info'><p>{{html-safe successMessage}}</p></div>
+        <div class='alert alert-info'><p>{{{successMessage}}}</p></div>
       {{else}}
         <p>{{i18n 'invites.invited_by'}}</p>
         <p>{{user-info user=invitedBy}}</p>
 
-        <p>{{html-safe yourEmailMessage}}
+        <p>{{{yourEmailMessage}}}
         {{#if externalAuthsEnabled}}
              {{i18n 'invites.social_login_available'}}
         {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/list/activity-column.hbr b/app/assets/javascripts/discourse/templates/list/activity-column.hbr
index 384909db023..723bb80e848 100644
--- a/app/assets/javascripts/discourse/templates/list/activity-column.hbr
+++ b/app/assets/javascripts/discourse/templates/list/activity-column.hbr
@@ -1,4 +1,4 @@
-<{{tagName}} class="{{class}} {{cold-age-class topic.createdAt startDate=topic.bumpedAt class=""}} activity" title="{{html-safe topic.bumpedAtTitle}}">
+<{{tagName}} class="{{class}} {{cold-age-class topic.createdAt startDate=topic.bumpedAt class=""}} activity" title="{{{topic.bumpedAtTitle}}}">
   <a class="post-activity" href="{{topic.lastPostUrl}}">
     {{~raw-plugin-outlet name="topic-list-before-relative-date"~}}
     {{~format-date topic.bumpedAt format="tiny" noTitle="true"~}}
diff --git a/app/assets/javascripts/discourse/templates/list/topic-excerpt.hbr b/app/assets/javascripts/discourse/templates/list/topic-excerpt.hbr
index 2257a669cbb..1c7b5eead0e 100644
--- a/app/assets/javascripts/discourse/templates/list/topic-excerpt.hbr
+++ b/app/assets/javascripts/discourse/templates/list/topic-excerpt.hbr
@@ -1,6 +1,6 @@
 {{#if topic.hasExcerpt}}
   <div class="topic-excerpt">
-    {{dir-span topic.escapedExcerpt}}
+    {{{dir-span topic.escapedExcerpt}}}
     {{#if topic.excerptTruncated}}
       <a href="{{topic.url}}">{{i18n 'read_more'}}</a>
     {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/mobile/components/basic-topic-list.hbs b/app/assets/javascripts/discourse/templates/mobile/components/basic-topic-list.hbs
index 0949b56ee70..d8a06c33c77 100644
--- a/app/assets/javascripts/discourse/templates/mobile/components/basic-topic-list.hbs
+++ b/app/assets/javascripts/discourse/templates/mobile/components/basic-topic-list.hbs
@@ -24,7 +24,7 @@
               {{/if}}
               {{#if t.hasExcerpt}}
                 <div class="topic-excerpt">
-                  {{html-safe t.excerpt}}
+                  {{{t.excerpt}}}
                   {{#if t.excerptTruncated}}
                     {{#unless t.canClearPin}}<a href={{t.url}}>{{i18n 'read_more'}}</a>{{/unless}}
                   {{/if}}
@@ -42,7 +42,7 @@
               {{discourse-tags t mode="list" tagsForUser=tagsForUser}}
               <div class="pull-right">
                 {{raw "list/activity-column" topic=t tagName="div" class="num activity last"}}
-                <a href={{t.lastPostUrl}} title='{{i18n 'last_post'}}: {{raw-date t.bumped_at}}'>{{t.last_poster_username}}</a>
+                <a href={{t.lastPostUrl}} title='{{i18n 'last_post'}}: {{{raw-date t.bumped_at}}}'>{{t.last_poster_username}}</a>
               </div>
               {{#unless hideCategory}}
                 <div class='category'>
diff --git a/app/assets/javascripts/discourse/templates/mobile/components/categories-only.hbs b/app/assets/javascripts/discourse/templates/mobile/components/categories-only.hbs
index 0421edce8a7..5418fcb86a1 100644
--- a/app/assets/javascripts/discourse/templates/mobile/components/categories-only.hbs
+++ b/app/assets/javascripts/discourse/templates/mobile/components/categories-only.hbs
@@ -13,7 +13,7 @@
             {{#if c.description_excerpt}}
               <tr class="category-description">
                 <td colspan="3">
-                  {{html-safe c.description_excerpt}}
+                  {{{c.description_excerpt}}}
                 </td>
               </tr>
             {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/mobile/components/mobile-nav.hbs b/app/assets/javascripts/discourse/templates/mobile/components/mobile-nav.hbs
index ca6140be544..bebe6a385e4 100644
--- a/app/assets/javascripts/discourse/templates/mobile/components/mobile-nav.hbs
+++ b/app/assets/javascripts/discourse/templates/mobile/components/mobile-nav.hbs
@@ -1,7 +1,7 @@
 {{#if selectedHtml}}
   <li>
     <a href class='expander' {{action 'toggleExpanded'}}>
-      <span>{{html-safe selectedHtml}}</span>
+      <span>{{{selectedHtml}}}</span>
       {{d-icon "caret-down"}}
     </a>
   </li>
diff --git a/app/assets/javascripts/discourse/templates/modal/activation-resent.hbs b/app/assets/javascripts/discourse/templates/modal/activation-resent.hbs
index 7439589d5ce..54695749772 100644
--- a/app/assets/javascripts/discourse/templates/modal/activation-resent.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/activation-resent.hbs
@@ -1,5 +1,5 @@
 {{#d-modal-body}}
-  {{i18n 'login.sent_activation_email_again' currentEmail=currentEmail}}
+  {{{i18n 'login.sent_activation_email_again' currentEmail=currentEmail}}}
 {{/d-modal-body}}
 
 {{modal-footer-close closeModal=(route-action "closeModal")}}
diff --git a/app/assets/javascripts/discourse/templates/modal/auth-token.hbs b/app/assets/javascripts/discourse/templates/modal/auth-token.hbs
index 5390227a2e9..1b08a4974bc 100644
--- a/app/assets/javascripts/discourse/templates/modal/auth-token.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/auth-token.hbs
@@ -1,7 +1,7 @@
 {{#d-modal-body title="user.auth_tokens.was_this_you"}}
   <div>
     <p>{{i18n 'user.auth_tokens.was_this_you_description'}}</p>
-    <p>{{i18n 'user.second_factor.extended_description'}}</p>
+    <p>{{{i18n 'user.second_factor.extended_description'}}}</p>
   </div>
 
   <div>
@@ -21,9 +21,9 @@
       </h3>
 
       {{#if expanded}}
-        <blockquote>{{html-safe latest_post.cooked}}</blockquote>
+        <blockquote>{{{latest_post.cooked}}}</blockquote>
       {{else}}
-        <blockquote>{{html-safe latest_post.excerpt}}</blockquote>
+        <blockquote>{{{latest_post.excerpt}}}</blockquote>
       {{/if}}
     </div>
   {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/modal/avatar-selector.hbs b/app/assets/javascripts/discourse/templates/modal/avatar-selector.hbs
index 10e5c4bf26f..cdaab1cc1c1 100644
--- a/app/assets/javascripts/discourse/templates/modal/avatar-selector.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/avatar-selector.hbs
@@ -10,11 +10,11 @@
   {{else}}
     <div class="avatar-choice">
       {{radio-button id="system-avatar" name="avatar" value="system" selection=selected}}
-      <label class="radio" for="system-avatar">{{bound-avatar-template user.system_avatar_template "large"}} {{i18n 'user.change_avatar.letter_based'}}</label>
+      <label class="radio" for="system-avatar">{{bound-avatar-template user.system_avatar_template "large"}} {{{i18n 'user.change_avatar.letter_based'}}}</label>
     </div>
     <div class="avatar-choice">
       {{radio-button id="gravatar" name="avatar" value="gravatar" selection=selected}}
-      <label class="radio" for="gravatar">{{bound-avatar-template user.gravatar_avatar_template "large"}} <span>{{i18n 'user.change_avatar.gravatar'}} {{user.email}}</span></label>
+      <label class="radio" for="gravatar">{{bound-avatar-template user.gravatar_avatar_template "large"}} <span>{{{i18n 'user.change_avatar.gravatar'}}} {{user.email}}</span></label>
 
       {{d-button action=(action "refreshGravatar")
                  title="user.change_avatar.refresh_gravatar_title"
@@ -23,7 +23,7 @@
                  class="btn-default avatar-selector-refresh-gravatar"}}
 
       {{#if gravatarFailed}}
-        <p class="error">{{i18n 'user.change_avatar.gravatar_failed'}}</p>
+        <p class="error">{{I18n 'user.change_avatar.gravatar_failed'}}</p>
       {{/if}}
     </div>
     {{#if allowAvatarUpload}}
diff --git a/app/assets/javascripts/discourse/templates/modal/bookmark.hbs b/app/assets/javascripts/discourse/templates/modal/bookmark.hbs
index 0098c5b237b..254f1bfbee7 100644
--- a/app/assets/javascripts/discourse/templates/modal/bookmark.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/bookmark.hbs
@@ -38,7 +38,7 @@
           <!-- {{tap-tile icon="calendar-alt" text=(I18n "bookmarks.reminders.custom") tileId=reminderTypes.CUSTOM activeTile=grid.activeTile onChange=(action "selectReminderType")}} -->
         {{/tap-tile-grid}}
       {{else}}
-        <div class="alert alert-info">{{i18n "bookmarks.no_timezone" basePath=basePath }}</div>
+        <div class="alert alert-info">{{{i18n "bookmarks.no_timezone" basePath=basePath }}}</div>
       {{/if}}
     </div>
     {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/modal/bulk-notification-level.hbs b/app/assets/javascripts/discourse/templates/modal/bulk-notification-level.hbs
index 0cfc45782db..97f80037811 100644
--- a/app/assets/javascripts/discourse/templates/modal/bulk-notification-level.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/bulk-notification-level.hbs
@@ -2,7 +2,7 @@
   <div class='controls'>
     <label class='radio'>
       {{radio-button value=level.id name="notification_level" selection=notificationLevelId}} <strong>{{level.name}}</strong>
-      <div class='description'>{{html-safe level.description}}</div>
+      <div class='description'>{{{level.description}}}</div>
     </label>
   </div>
 {{/each}}
diff --git a/app/assets/javascripts/discourse/templates/modal/change-owner.hbs b/app/assets/javascripts/discourse/templates/modal/change-owner.hbs
index 1069c0d2fac..0c0890f2b96 100644
--- a/app/assets/javascripts/discourse/templates/modal/change-owner.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/change-owner.hbs
@@ -1,6 +1,6 @@
 {{#d-modal-body class='change-ownership'}}
   <span>
-    {{i18n 'topic.change_owner.instructions' count=selectedPostsCount old_user=selectedPostsUsername}}
+    {{{i18n 'topic.change_owner.instructions' count=selectedPostsCount old_user=selectedPostsUsername}}}
   </span>
 
   <form>
diff --git a/app/assets/javascripts/discourse/templates/modal/create-account.hbs b/app/assets/javascripts/discourse/templates/modal/create-account.hbs
index 5c77b2a0a63..448508de65a 100644
--- a/app/assets/javascripts/discourse/templates/modal/create-account.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/create-account.hbs
@@ -126,7 +126,7 @@
           {{/d-button}}
         {{/conditional-loading-spinner}}
 
-      <div class='disclaimer'>{{html-safe disclaimerHtml}}</div>
+      <div class='disclaimer'>{{{disclaimerHtml}}}</div>
       </div>
 
       {{plugin-outlet name="create-account-after-modal-footer" tagName=""}}
diff --git a/app/assets/javascripts/discourse/templates/modal/delete-topic-disallowed.hbs b/app/assets/javascripts/discourse/templates/modal/delete-topic-disallowed.hbs
index 61e693a9af4..e35eaecc199 100644
--- a/app/assets/javascripts/discourse/templates/modal/delete-topic-disallowed.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/delete-topic-disallowed.hbs
@@ -1,5 +1,5 @@
 {{#d-modal-body}}
-  <p>{{i18n "post.controls.delete_topic_disallowed_modal"}}</p>
+  <p>{{{i18n "post.controls.delete_topic_disallowed_modal"}}}</p>
 {{/d-modal-body}}
 <div class="modal-footer">
   {{d-button action=(route-action "closeModal") class="btn-primary" label="close"}}
diff --git a/app/assets/javascripts/discourse/templates/modal/edit-category.hbs b/app/assets/javascripts/discourse/templates/modal/edit-category.hbs
index 0c3f9e443d1..6abe8682958 100644
--- a/app/assets/javascripts/discourse/templates/modal/edit-category.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/edit-category.hbs
@@ -34,7 +34,7 @@
                    label="category.delete"}}
 
         <div class="cannot_delete_reason {{if hiddenTooltip "hidden" ""}}">
-          {{html-safe model.cannot_delete_reason}}
+          {{{model.cannot_delete_reason}}}
         </div>
       </div>
     {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/modal/feature-topic.hbs b/app/assets/javascripts/discourse/templates/modal/feature-topic.hbs
index be55ea84602..965a4078155 100644
--- a/app/assets/javascripts/discourse/templates/modal/feature-topic.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/feature-topic.hbs
@@ -6,9 +6,9 @@
           <p>
             {{#conditional-loading-spinner size="small" condition=loading}}
               {{#if pinnedGloballyCount}}
-                {{i18n "topic.feature_topic.already_pinned_globally" count=pinnedGloballyCount}}
+                {{{i18n "topic.feature_topic.already_pinned_globally" count=pinnedGloballyCount}}}
               {{else}}
-                {{i18n "topic.feature_topic.not_pinned_globally"}}
+                {{{i18n "topic.feature_topic.not_pinned_globally"}}}
               {{/if}}
             {{/conditional-loading-spinner}}
           </p>
@@ -16,12 +16,12 @@
         {{else}}
           <p>
             {{#conditional-loading-spinner size="small" condition=loading}}
-              {{html-safe alreadyPinnedMessage}}
+              {{{alreadyPinnedMessage}}}
             {{/conditional-loading-spinner}}
           </p>
           <p>{{i18n "topic.feature_topic.pin_note"}}</p>
         {{/if}}
-        <p>{{html-safe unPinMessage}}</p>
+        <p>{{{unPinMessage}}}</p>
         <p>{{d-button action=(action "unpin") icon="thumbtack" label="topic.feature.unpin" class="btn-primary"}}</p>
       </div>
     </div>
@@ -30,7 +30,7 @@
       <div class="desc">
         <p>
           {{#conditional-loading-spinner size="small" condition=loading}}
-            {{html-safe alreadyPinnedMessage}}
+            {{{alreadyPinnedMessage}}}
           {{/conditional-loading-spinner}}
         </p>
         <p>
@@ -38,7 +38,7 @@
         </p>
         {{#if site.isMobileDevice}}
           <p>
-            {{html-safe pinMessage}}
+            {{{pinMessage}}}
           </p>
           <p class="with-validation">
             {{future-date-input
@@ -52,7 +52,7 @@
           </p>
         {{else}}
           <p class="with-validation">
-            {{html-safe pinMessage}}
+            {{{pinMessage}}}
             {{d-icon "far-clock"}}
             {{future-date-input
               class="pin-until"
@@ -74,9 +74,9 @@
         <p>
           {{#conditional-loading-spinner size="small" condition=loading}}
             {{#if pinnedGloballyCount}}
-              {{i18n "topic.feature_topic.already_pinned_globally" count=pinnedGloballyCount}}
+              {{{i18n "topic.feature_topic.already_pinned_globally" count=pinnedGloballyCount}}}
             {{else}}
-              {{i18n "topic.feature_topic.not_pinned_globally"}}
+              {{{i18n "topic.feature_topic.not_pinned_globally"}}}
             {{/if}}
           {{/conditional-loading-spinner}}
         </p>
@@ -123,9 +123,9 @@
         <p>
           {{#conditional-loading-spinner size="small" condition=loading}}
             {{#if bannerCount}}
-              {{i18n "topic.feature_topic.banner_exists"}}
+              {{{i18n "topic.feature_topic.banner_exists"}}}
             {{else}}
-              {{i18n "topic.feature_topic.no_banner_exists"}}
+              {{{i18n "topic.feature_topic.no_banner_exists"}}}
             {{/if}}
           {{/conditional-loading-spinner}}
         </p>
diff --git a/app/assets/javascripts/discourse/templates/modal/forgot-password.hbs b/app/assets/javascripts/discourse/templates/modal/forgot-password.hbs
index 19be52ceb52..8d438dd80ae 100644
--- a/app/assets/javascripts/discourse/templates/modal/forgot-password.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/forgot-password.hbs
@@ -1,7 +1,7 @@
 <form>
   {{#d-modal-body class="forgot-password-modal"}}
     {{#if offerHelp}}
-      {{html-safe offerHelp}}
+      {{{offerHelp}}}
     {{else}}
       <label for='username-or-email'>{{i18n 'forgot_password.invite'}}</label>
       {{text-field value=accountEmailOrUsername placeholderKey="login.email_placeholder" id="username-or-email" autocorrect="off" autocapitalize="off"}}
diff --git a/app/assets/javascripts/discourse/templates/modal/history.hbs b/app/assets/javascripts/discourse/templates/modal/history.hbs
index c81dfe2238b..6d9dbff78ed 100644
--- a/app/assets/javascripts/discourse/templates/modal/history.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/history.hbs
@@ -21,7 +21,7 @@
           &mdash; {{disabled-icon icon="shield-alt" disabled=postTypeDisabled}}
         {{/if}}
         {{#if model.category_id_changes}}
-          &mdash; {{html-safe previousCategory}} &rarr; {{html-safe currentCategory}}
+          &mdash; {{{previousCategory}}} &rarr; {{{currentCategory}}}
         {{/if}}
       {{/unless}}
     </div>
@@ -50,7 +50,7 @@
   <div id="revisions" data-post-id={{model.post_id}} class={{hiddenClasses}}>
     {{#if model.title_changes}}
       <div class="row">
-        <h2>{{html-safe titleDiff}}</h2>
+        <h2>{{{titleDiff}}}</h2>
       </div>
     {{/if}}
     {{#if site.mobileView}}
@@ -72,7 +72,7 @@
       {{/if}}
       {{#if model.category_id_changes}}
         <div class="row">
-          {{html-safe previousCategory}} &rarr; {{html-safe currentCategory}}
+          {{{previousCategory}}} &rarr; {{{currentCategory}}}
         </div>
       {{/if}}
     {{/if}}
@@ -100,7 +100,7 @@
     {{plugin-outlet name="post-revisions" args=(hash model=model)}}
 
     {{#links-redirect class="row"}}
-      {{html-safe bodyDiff}}
+      {{{bodyDiff}}}
     {{/links-redirect}}
   </div>
 {{/d-modal-body}}
@@ -111,7 +111,7 @@
       {{d-button class="btn-default" action=(action "loadPreviousVersion") icon="backward" title="post.revisions.controls.previous" disabled=loadPreviousDisabled}}
       <div id="revision-numbers" class={{unless displayRevisions 'invisible'}}>
         {{#conditional-loading-spinner condition=loading size="small"}}
-          {{html-safe revisionsText}}
+          {{{revisionsText}}}
         {{/conditional-loading-spinner}}
       </div>
       {{d-button class="btn-default" action=(action "loadNextVersion") icon="forward" title="post.revisions.controls.next" disabled=loadNextDisabled}}
diff --git a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs
index 2203c901748..493a9e03a58 100644
--- a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs
@@ -3,29 +3,29 @@
     <section>
       <h4>{{i18n "keyboard_shortcuts_help.jump_to.title"}}</h4>
       <ul>
-        <li>{{html-safe shortcuts.jump_to.home}}</li>
-        <li>{{html-safe shortcuts.jump_to.latest}}</li>
-        <li>{{html-safe shortcuts.jump_to.new}}</li>
-        <li>{{html-safe shortcuts.jump_to.unread}}</li>
-        <li>{{html-safe shortcuts.jump_to.categories}}</li>
-        <li>{{html-safe shortcuts.jump_to.top}}</li>
-        <li>{{html-safe shortcuts.jump_to.bookmarks}}</li>
-        <li>{{html-safe shortcuts.jump_to.profile}}</li>
+        <li>{{{shortcuts.jump_to.home}}}</li>
+        <li>{{{shortcuts.jump_to.latest}}}</li>
+        <li>{{{shortcuts.jump_to.new}}}</li>
+        <li>{{{shortcuts.jump_to.unread}}}</li>
+        <li>{{{shortcuts.jump_to.categories}}}</li>
+        <li>{{{shortcuts.jump_to.top}}}</li>
+        <li>{{{shortcuts.jump_to.bookmarks}}}</li>
+        <li>{{{shortcuts.jump_to.profile}}}</li>
         {{#if siteSettings.enable_personal_messages}}
-          <li>{{html-safe shortcuts.jump_to.messages}}</li>
+          <li>{{{shortcuts.jump_to.messages}}}</li>
         {{/if}}
-        <li>{{html-safe shortcuts.jump_to.drafts}}</li>
+        <li>{{{shortcuts.jump_to.drafts}}}</li>
       </ul>
     </section>
     <section>
       <h4>{{i18n "keyboard_shortcuts_help.navigation.title"}}</h4>
       <ul>
-        <li>{{html-safe shortcuts.navigation.back}}</li>
-        <li>{{html-safe shortcuts.navigation.jump}}</li>
-        <li>{{html-safe shortcuts.navigation.up_down}}</li>
-        <li>{{html-safe shortcuts.navigation.open}}</li>
-        <li>{{html-safe shortcuts.navigation.next_prev}}</li>
-        <li>{{html-safe shortcuts.navigation.go_to_unread_post}}</li>
+        <li>{{{shortcuts.navigation.back}}}</li>
+        <li>{{{shortcuts.navigation.jump}}}</li>
+        <li>{{{shortcuts.navigation.up_down}}}</li>
+        <li>{{{shortcuts.navigation.open}}}</li>
+        <li>{{{shortcuts.navigation.next_prev}}}</li>
+        <li>{{{shortcuts.navigation.go_to_unread_post}}}</li>
       </ul>
     </section>
   </div>
@@ -33,26 +33,26 @@
     <section>
       <h4>{{i18n "keyboard_shortcuts_help.application.title"}}</h4>
       <ul>
-        <li>{{html-safe shortcuts.application.hamburger_menu}}</li>
-        <li>{{html-safe shortcuts.application.user_profile_menu}}</li>
-        <li>{{html-safe shortcuts.application.show_incoming_updated_topics}}</li>
-        <li>{{html-safe shortcuts.application.search}}</li>
-        <li>{{html-safe shortcuts.application.help}}</li>
-        <li>{{html-safe shortcuts.application.dismiss_new_posts}}</li>
-        <li>{{html-safe shortcuts.application.dismiss_topics}}</li>
-        <li>{{html-safe shortcuts.application.log_out}}</li>
+        <li>{{{shortcuts.application.hamburger_menu}}}</li>
+        <li>{{{shortcuts.application.user_profile_menu}}}</li>
+        <li>{{{shortcuts.application.show_incoming_updated_topics}}}</li>
+        <li>{{{shortcuts.application.search}}}</li>
+        <li>{{{shortcuts.application.help}}}</li>
+        <li>{{{shortcuts.application.dismiss_new_posts}}}</li>
+        <li>{{{shortcuts.application.dismiss_topics}}}</li>
+        <li>{{{shortcuts.application.log_out}}}</li>
       </ul>
     </section>
     <section>
       <h4>{{i18n "keyboard_shortcuts_help.composing.title"}}</h4>
       <ul>
-        <li>{{html-safe shortcuts.composing.return}}</li>
-        <li>{{html-safe shortcuts.composing.fullscreen}}</li>
-        <li>{{html-safe shortcuts.application.create}}</li>
-        <li>{{html-safe shortcuts.actions.reply_as_new_topic}}</li>
-        <li>{{html-safe shortcuts.actions.reply_topic}}</li>
-        <li>{{html-safe shortcuts.actions.reply_post}}</li>
-        <li>{{html-safe shortcuts.actions.quote_post}}</li>
+        <li>{{{shortcuts.composing.return}}}</li>
+        <li>{{{shortcuts.composing.fullscreen}}}</li>
+        <li>{{{shortcuts.application.create}}}</li>
+        <li>{{{shortcuts.actions.reply_as_new_topic}}}</li>
+        <li>{{{shortcuts.actions.reply_topic}}}</li>
+        <li>{{{shortcuts.actions.reply_post}}}</li>
+        <li>{{{shortcuts.actions.quote_post}}}</li>
       </ul>
     </section>
   </div>
@@ -60,22 +60,22 @@
     <section>
       <h4>{{i18n "keyboard_shortcuts_help.actions.title"}}</h4>
       <ul>
-        <li>{{html-safe shortcuts.actions.bookmark_topic}}</li>
-        <li>{{html-safe shortcuts.actions.pin_unpin_topic}}</li>
-        <li>{{html-safe shortcuts.actions.share_topic}}</li>
-        <li>{{html-safe shortcuts.actions.share_post}}</li>
-        <li>{{html-safe shortcuts.actions.like}}</li>
-        <li>{{html-safe shortcuts.actions.flag}}</li>
-        <li>{{html-safe shortcuts.actions.bookmark}}</li>
-        <li>{{html-safe shortcuts.actions.edit}}</li>
-        <li>{{html-safe shortcuts.actions.delete}}</li>
-        <li>{{html-safe shortcuts.actions.mark_muted}}</li>
-        <li>{{html-safe shortcuts.actions.mark_regular}}</li>
-        <li>{{html-safe shortcuts.actions.mark_tracking}}</li>
-        <li>{{html-safe shortcuts.actions.mark_watching}}</li>
-        <li>{{html-safe shortcuts.actions.defer}}</li>
-        <li>{{html-safe shortcuts.actions.print}}</li>
-        <li>{{html-safe shortcuts.actions.topic_admin_actions}}</li>
+        <li>{{{shortcuts.actions.bookmark_topic}}}</li>
+        <li>{{{shortcuts.actions.pin_unpin_topic}}}</li>
+        <li>{{{shortcuts.actions.share_topic}}}</li>
+        <li>{{{shortcuts.actions.share_post}}}</li>
+        <li>{{{shortcuts.actions.like}}}</li>
+        <li>{{{shortcuts.actions.flag}}}</li>
+        <li>{{{shortcuts.actions.bookmark}}}</li>
+        <li>{{{shortcuts.actions.edit}}}</li>
+        <li>{{{shortcuts.actions.delete}}}</li>
+        <li>{{{shortcuts.actions.mark_muted}}}</li>
+        <li>{{{shortcuts.actions.mark_regular}}}</li>
+        <li>{{{shortcuts.actions.mark_tracking}}}</li>
+        <li>{{{shortcuts.actions.mark_watching}}}</li>
+        <li>{{{shortcuts.actions.defer}}}</li>
+        <li>{{{shortcuts.actions.print}}}</li>
+        <li>{{{shortcuts.actions.topic_admin_actions}}}</li>
       </ul>
     </section>
   </div>
diff --git a/app/assets/javascripts/discourse/templates/modal/move-to-topic.hbs b/app/assets/javascripts/discourse/templates/modal/move-to-topic.hbs
index ae591397a73..893d9342460 100644
--- a/app/assets/javascripts/discourse/templates/modal/move-to-topic.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/move-to-topic.hbs
@@ -17,7 +17,7 @@
 
     {{#if canSplitTopic}}
       {{#if newMessage}}
-        <p>{{i18n 'topic.move_to_new_message.instructions' count=selectedPostsCount}}</p>
+        <p>{{{i18n 'topic.move_to_new_message.instructions' count=selectedPostsCount}}}</p>
         <form>
           <label>{{i18n 'topic.move_to_new_message.message_title'}}</label>
           {{text-field value=topicName placeholderKey="composer.title_placeholder" elementId='split-topic-name'}}
@@ -31,7 +31,7 @@
     {{/if}}
 
     {{#if existingMessage}}
-      <p>{{i18n 'topic.move_to_existing_message.instructions' count=selectedPostsCount}}</p>
+      <p>{{{i18n 'topic.move_to_existing_message.instructions' count=selectedPostsCount}}}</p>
       <form>
         {{choose-message currentTopicId=model.id selectedTopicId=selectedTopicId}}
 
@@ -64,7 +64,7 @@
     </div>
 
     {{#if existingTopic}}
-      <p>{{i18n 'topic.merge_topic.instructions' count=selectedPostsCount}}</p>
+      <p>{{{i18n 'topic.merge_topic.instructions' count=selectedPostsCount}}}</p>
       <form>
         {{choose-topic currentTopicId=model.id selectedTopicId=selectedTopicId}}
       </form>
@@ -72,7 +72,7 @@
 
     {{#if canSplitTopic}}
       {{#if newTopic}}
-        <p>{{i18n 'topic.split_topic.instructions' count=selectedPostsCount}}</p>
+        <p>{{{i18n 'topic.split_topic.instructions' count=selectedPostsCount}}}</p>
         <form>
           <label>{{i18n 'topic.split_topic.topic_name'}}</label>
           {{text-field value=topicName placeholderKey="composer.title_placeholder" elementId='split-topic-name'}}
@@ -93,7 +93,7 @@
 
     {{#if canSplitTopic}}
       {{#if newMessage}}
-        <p>{{i18n 'topic.move_to_new_message.instructions' count=selectedPostsCount}}</p>
+        <p>{{{i18n 'topic.move_to_new_message.instructions' count=selectedPostsCount}}}</p>
         <form>
           <label>{{i18n 'topic.move_to_new_message.message_title'}}</label>
           {{text-field value=topicName placeholderKey="composer.title_placeholder" elementId='split-topic-name'}}
diff --git a/app/assets/javascripts/discourse/templates/modal/not-activated.hbs b/app/assets/javascripts/discourse/templates/modal/not-activated.hbs
index e9d93aa8f63..aa312d5125f 100644
--- a/app/assets/javascripts/discourse/templates/modal/not-activated.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/not-activated.hbs
@@ -1,5 +1,5 @@
 {{#d-modal-body}}
-  {{i18n 'login.not_activated' sentTo=sentTo}}
+  {{{i18n 'login.not_activated' sentTo=sentTo}}}
 {{/d-modal-body}}
 
 <div class="modal-footer">
diff --git a/app/assets/javascripts/discourse/templates/modal/post-enqueued.hbs b/app/assets/javascripts/discourse/templates/modal/post-enqueued.hbs
index 3687b9fb2b1..46f37bfe804 100644
--- a/app/assets/javascripts/discourse/templates/modal/post-enqueued.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/post-enqueued.hbs
@@ -1,7 +1,7 @@
 {{#d-modal-body}}
   <p>{{i18n "review.approval.description"}}</p>
 
-  <p>{{i18n "review.approval.pending_posts" count=model.pending_count}}</p>
+  <p>{{{i18n "review.approval.pending_posts" count=model.pending_count}}}</p>
 {{/d-modal-body}}
 <div class="modal-footer">
   {{d-button action=(route-action "closeModal") class="btn-primary" label="review.approval.ok"}}
diff --git a/app/assets/javascripts/discourse/templates/modal/second-factor-add-security-key.hbs b/app/assets/javascripts/discourse/templates/modal/second-factor-add-security-key.hbs
index c6539a2e524..36ede3f634c 100644
--- a/app/assets/javascripts/discourse/templates/modal/second-factor-add-security-key.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/second-factor-add-security-key.hbs
@@ -10,7 +10,7 @@
 
     <div class="control-group">
       <div class="controls">
-        {{i18n 'user.second_factor.enable_security_key_description'}}
+        {{{i18n 'user.second_factor.enable_security_key_description'}}}
       </div>
     </div>
 
diff --git a/app/assets/javascripts/discourse/templates/modal/second-factor-add-totp.hbs b/app/assets/javascripts/discourse/templates/modal/second-factor-add-totp.hbs
index 9caf24fc46f..2b52edea7b6 100644
--- a/app/assets/javascripts/discourse/templates/modal/second-factor-add-totp.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/second-factor-add-totp.hbs
@@ -10,7 +10,7 @@
 
     <div class="control-group">
       <div class="controls">
-        {{i18n 'user.second_factor.enable_description'}}
+        {{{i18n 'user.second_factor.enable_description'}}}
       </div>
     </div>
 
@@ -18,7 +18,7 @@
       <div class="controls">
         <div class="qr-code-container">
           <div class="qr-code">
-            {{html-safe secondFactorImage}}
+            {{{secondFactorImage}}}
           </div>
         </div>
 
diff --git a/app/assets/javascripts/discourse/templates/modal/second-factor-backup-edit.hbs b/app/assets/javascripts/discourse/templates/modal/second-factor-backup-edit.hbs
index 713bdbfcc44..5981f4a1183 100644
--- a/app/assets/javascripts/discourse/templates/modal/second-factor-backup-edit.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/second-factor-backup-edit.hbs
@@ -14,7 +14,7 @@
     {{/if}}
 
     {{#if backupEnabled}}
-      {{i18n "user.second_factor_backup.remaining_codes" count=remainingCodes}}
+      {{{i18n "user.second_factor_backup.remaining_codes" count=remainingCodes}}}
     {{/if}}
 
     <div class="actions">
diff --git a/app/assets/javascripts/discourse/templates/modal/topic-bulk-actions.hbs b/app/assets/javascripts/discourse/templates/modal/topic-bulk-actions.hbs
index fe3ce8be487..9b10ef6c297 100644
--- a/app/assets/javascripts/discourse/templates/modal/topic-bulk-actions.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/topic-bulk-actions.hbs
@@ -1,4 +1,4 @@
 {{#d-modal-body}}
-  <p>{{i18n 'topics.bulk.selected' count=model.topics.length}}</p>
+  <p>{{{i18n 'topics.bulk.selected' count=model.topics.length}}}</p>
   {{outlet "bulkOutlet"}}
 {{/d-modal-body}}
diff --git a/app/assets/javascripts/discourse/templates/navigation/category.hbs b/app/assets/javascripts/discourse/templates/navigation/category.hbs
index 6d44492afec..f45a2e50147 100644
--- a/app/assets/javascripts/discourse/templates/navigation/category.hbs
+++ b/app/assets/javascripts/discourse/templates/navigation/category.hbs
@@ -9,7 +9,7 @@
         width=category.uploaded_logo.width
         height=category.uploaded_logo.height}}
       {{#if category.description}}
-        <p>{{dir-span category.description}}</p>
+        <p>{{{dir-span category.description}}}</p>
       {{/if}}
     {{/if}}
   </section>
diff --git a/app/assets/javascripts/discourse/templates/preferences-second-factor.hbs b/app/assets/javascripts/discourse/templates/preferences-second-factor.hbs
index fc6c00a13b5..fd8f57c54c0 100644
--- a/app/assets/javascripts/discourse/templates/preferences-second-factor.hbs
+++ b/app/assets/javascripts/discourse/templates/preferences-second-factor.hbs
@@ -86,7 +86,7 @@
           <h2>{{i18n "user.second_factor_backup.title"}}</h2>
           {{#if model.second_factor_enabled}}
             {{#if model.second_factor_backup_enabled}}
-              {{i18n 'user.second_factor_backup.manage' count=model.second_factor_remaining_backup_codes}}
+              {{{i18n 'user.second_factor_backup.manage' count=model.second_factor_remaining_backup_codes}}}
             {{else}}
               {{i18n 'user.second_factor_backup.enable_long'}}
             {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/preferences/account.hbs b/app/assets/javascripts/discourse/templates/preferences/account.hbs
index 62743b5a5ae..8a505401fa9 100644
--- a/app/assets/javascripts/discourse/templates/preferences/account.hbs
+++ b/app/assets/javascripts/discourse/templates/preferences/account.hbs
@@ -9,7 +9,7 @@
   </div>
   {{#if siteSettings.enable_mentions}}
     <div class='instructions'>
-      {{i18n 'user.username.short_instructions' username=model.username}}
+      {{{i18n 'user.username.short_instructions' username=model.username}}}
     </div>
   {{/if}}
 </div>
diff --git a/app/assets/javascripts/discourse/templates/preferences/emails.hbs b/app/assets/javascripts/discourse/templates/preferences/emails.hbs
index bd9aa411acc..d277cea5115 100644
--- a/app/assets/javascripts/discourse/templates/preferences/emails.hbs
+++ b/app/assets/javascripts/discourse/templates/preferences/emails.hbs
@@ -73,7 +73,7 @@
   <div class='control-group pref-mailing-list-mode'>
     <label class="control-label">{{i18n 'user.mailing_list_mode.label'}}</label>
     {{preference-checkbox labelKey="user.mailing_list_mode.enabled" checked=model.user_option.mailing_list_mode}}
-    <div class='instructions'>{{i18n 'user.mailing_list_mode.instructions'}}</div>
+    <div class='instructions'>{{{i18n 'user.mailing_list_mode.instructions'}}}</div>
     {{#if model.user_option.mailing_list_mode}}
       <div class='controls controls-dropdown'>
         {{combo-box
diff --git a/app/assets/javascripts/discourse/templates/preferences/profile.hbs b/app/assets/javascripts/discourse/templates/preferences/profile.hbs
index e6fe5381ed5..b0040894dce 100644
--- a/app/assets/javascripts/discourse/templates/preferences/profile.hbs
+++ b/app/assets/javascripts/discourse/templates/preferences/profile.hbs
@@ -66,7 +66,7 @@
     <label class="control-label">{{i18n 'user.featured_topic'}}</label>
     {{#if model.featured_topic}}
       <label class="featured-topic-link">
-      {{#link-to "topic" model.featured_topic.slug model.featured_topic.id}}{{html-safe model.featured_topic.fancy_title}}{{/link-to}}
+      {{#link-to "topic" model.featured_topic.slug model.featured_topic.id}}{{{model.featured_topic.fancy_title}}}{{/link-to}}
       </label>
     {{/if}}
 
diff --git a/app/assets/javascripts/discourse/templates/static.hbs b/app/assets/javascripts/discourse/templates/static.hbs
index aee93907047..107f4350f8f 100644
--- a/app/assets/javascripts/discourse/templates/static.hbs
+++ b/app/assets/javascripts/discourse/templates/static.hbs
@@ -2,7 +2,7 @@
   {{#watch-read action=(action "markFaqRead") path=model.path}}
     <div class='contents clearfix body-page'>
       {{plugin-outlet name="above-static"}}
-      {{html-safe model.html}}
+      {{{model.html}}}
 
       {{#if showSignupButton}}
         {{d-button action=(route-action "showCreateAccount") class="btn-primary sign-up-button" label="sign_up"}}
diff --git a/app/assets/javascripts/discourse/templates/topic.hbs b/app/assets/javascripts/discourse/templates/topic.hbs
index 7950ca19ece..bcb1a81b0fb 100644
--- a/app/assets/javascripts/discourse/templates/topic.hbs
+++ b/app/assets/javascripts/discourse/templates/topic.hbs
@@ -74,7 +74,7 @@
             {{#if model.details.loaded}}
               {{topic-status topic=model}}
               <a href={{model.url}} {{action "jumpTop"}} class="fancy-title">
-                {{html-safe model.fancyTitle}}
+                {{{model.fancyTitle}}}
               </a>
             {{/if}}
 
@@ -264,7 +264,7 @@
               {{#if model.queued_posts_count}}
                 <div class="has-pending-posts">
                   <div>
-                    {{i18n "review.topic_has_pending" count=model.queued_posts_count}}
+                    {{{i18n "review.topic_has_pending" count=model.queued_posts_count}}}
                   </div>
 
                   {{#link-to 'review' (query-params topic_id=model.id type="ReviewableQueuedPost" status="pending")}}
@@ -351,7 +351,7 @@
     <div class="container">
       {{#conditional-loading-spinner condition=noErrorYet}}
         {{#if model.errorHtml}}
-          <div class="not-found">{{html-safe model.errorHtml}}</div>
+          <div class="not-found">{{{model.errorHtml}}}</div>
         {{else}}
           <div class="topic-error">
             <div>{{model.errorMessage}}</div>
diff --git a/app/assets/javascripts/discourse/templates/unknown.hbs b/app/assets/javascripts/discourse/templates/unknown.hbs
index 5ff548e033f..0e9e6b96258 100644
--- a/app/assets/javascripts/discourse/templates/unknown.hbs
+++ b/app/assets/javascripts/discourse/templates/unknown.hbs
@@ -1,3 +1,3 @@
 <div class='container'>
-  {{html-safe model}}
+  {{{model}}}
 </div>
diff --git a/app/assets/javascripts/discourse/templates/user-invited-show.hbs b/app/assets/javascripts/discourse/templates/user-invited-show.hbs
index f8f5effb600..517e147e905 100644
--- a/app/assets/javascripts/discourse/templates/user-invited-show.hbs
+++ b/app/assets/javascripts/discourse/templates/user-invited-show.hbs
@@ -72,11 +72,11 @@
                       <td>{{format-date invite.user.last_seen_at}}</td>
                       <td>{{number invite.user.topics_entered}}</td>
                       <td>{{number invite.user.posts_read_count}}</td>
-                      <td>{{format-duration invite.user.time_read}}</td>
+                      <td>{{{format-duration invite.user.time_read}}}</td>
                       <td>
-                        <span title={{i18n 'user.invited.days_visited'}}>{{html-safe invite.user.days_visited}}</span>
+                        <span title={{i18n 'user.invited.days_visited'}}>{{{invite.user.days_visited}}}</span>
                           /
-                        <span title={{i18n 'user.invited.account_age_days'}}>{{html-safe invite.user.days_since_created}}</span>
+                        <span title={{i18n 'user.invited.account_age_days'}}>{{{invite.user.days_since_created}}}</span>
                       </td>
                     {{/if}}
                   {{else}}
@@ -109,7 +109,7 @@
         {{else}}
           <div class="user-invite-none">
             {{#if canBulkInvite}}
-              {{i18n 'user.invited.bulk_invite.none'}}
+              {{{i18n 'user.invited.bulk_invite.none'}}}
             {{else}}
               {{i18n 'user.invited.none'}}
             {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/user.hbs b/app/assets/javascripts/discourse/templates/user.hbs
index 377177843e8..d1c61ab805e 100644
--- a/app/assets/javascripts/discourse/templates/user.hbs
+++ b/app/assets/javascripts/discourse/templates/user.hbs
@@ -100,7 +100,7 @@
             {{#if showFeaturedTopic}}
               <h3 class="featured-topic">
                 <span>{{i18n 'user.featured_topic'}}</span>
-                {{#link-to "topic" model.featured_topic.slug model.featured_topic.id}}{{html-safe model.featured_topic.fancy_title}}{{/link-to}}
+                {{#link-to "topic" model.featured_topic.slug model.featured_topic.id}}{{{model.featured_topic.fancy_title}}}{{/link-to}}
               </h3>
             {{/if}}
 
@@ -137,7 +137,7 @@
                 </div>
               {{/if}}
               {{#if isNotSuspendedOrIsStaff}}
-                {{html-safe model.bio_cooked}}
+                {{{model.bio_cooked}}}
               {{/if}}
             </div>
 
diff --git a/app/assets/javascripts/discourse/templates/user/stream.hbs b/app/assets/javascripts/discourse/templates/user/stream.hbs
index de791d9420f..1af06a86d98 100644
--- a/app/assets/javascripts/discourse/templates/user/stream.hbs
+++ b/app/assets/javascripts/discourse/templates/user/stream.hbs
@@ -1,4 +1,4 @@
 {{#if model.noContent}}
-  <div class='alert alert-info'>{{html-safe model.noContentHelp}}</div>
+  <div class='alert alert-info'>{{{model.noContentHelp}}}</div>
 {{/if}}
 {{user-stream stream=model}}
diff --git a/app/assets/javascripts/discourse/templates/user/summary.hbs b/app/assets/javascripts/discourse/templates/user/summary.hbs
index 26ee193bde9..71b47375227 100644
--- a/app/assets/javascripts/discourse/templates/user/summary.hbs
+++ b/app/assets/javascripts/discourse/templates/user/summary.hbs
@@ -87,7 +87,7 @@
               </a>
               <span class='badge badge-notification clicks' title='{{i18n 'topic_map.clicks' count=link.clicks}}'>{{number link.clicks}}</span>
               <br>
-              <a href="{{link.post_url}}">{{html-safe link.topic.fancyTitle}}</a>
+              <a href="{{link.post_url}}">{{{link.topic.fancyTitle}}}</a>
             </li>
           {{/each}}
         </ul>
diff --git a/app/assets/javascripts/select-kit/templates/components/category-row.hbs b/app/assets/javascripts/select-kit/templates/components/category-row.hbs
index cff579c047a..db51a397f80 100644
--- a/app/assets/javascripts/select-kit/templates/components/category-row.hbs
+++ b/app/assets/javascripts/select-kit/templates/components/category-row.hbs
@@ -9,8 +9,8 @@
   </div>
 
   {{#if shouldDisplayDescription}}
-    <div class="category-desc">{{dir-span description}}</div>
+    <div class="category-desc">{{{dir-span description}}}</div>
   {{/if}}
 {{else}}
-  {{html-safe label}}
+  {{{label}}}
 {{/if}}
diff --git a/app/assets/javascripts/select-kit/templates/components/dropdown-select-box/dropdown-select-box-row.hbs b/app/assets/javascripts/select-kit/templates/components/dropdown-select-box/dropdown-select-box-row.hbs
index e654ef8a11b..1c070006add 100644
--- a/app/assets/javascripts/select-kit/templates/components/dropdown-select-box/dropdown-select-box-row.hbs
+++ b/app/assets/javascripts/select-kit/templates/components/dropdown-select-box/dropdown-select-box-row.hbs
@@ -8,6 +8,6 @@
 {{/if}}
 
 <div class="texts">
-  <span class="name">{{html-safe label}}</span>
-  <span class="desc">{{html-safe description}}</span>
+  <span class="name">{{{label}}}</span>
+  <span class="desc">{{{description}}}</span>
 </div>
diff --git a/app/assets/javascripts/select-kit/templates/components/pinned-button.hbs b/app/assets/javascripts/select-kit/templates/components/pinned-button.hbs
index f54bdb6b5fe..31fc07f1dcb 100644
--- a/app/assets/javascripts/select-kit/templates/components/pinned-button.hbs
+++ b/app/assets/javascripts/select-kit/templates/components/pinned-button.hbs
@@ -1,5 +1,5 @@
 {{pinned-options value=pinned topic=topic}}
 
 <p class="reason">
-  {{html-safe reasonText}}
+  {{{reasonText}}}
 </p>
diff --git a/app/assets/javascripts/select-kit/templates/components/topic-notifications-button.hbs b/app/assets/javascripts/select-kit/templates/components/topic-notifications-button.hbs
index a57b6b85845..2bf3a9a1220 100644
--- a/app/assets/javascripts/select-kit/templates/components/topic-notifications-button.hbs
+++ b/app/assets/javascripts/select-kit/templates/components/topic-notifications-button.hbs
@@ -10,6 +10,6 @@
 
 {{#if appendReason}}
   <p class="reason">
-    {{html-safe topic.details.notificationReasonText}}
+    {{{topic.details.notificationReasonText}}}
   </p>
 {{/if}}
diff --git a/app/assets/javascripts/wizard/templates/components/radio-button.hbs b/app/assets/javascripts/wizard/templates/components/radio-button.hbs
index c3a82790bee..e93347513a1 100644
--- a/app/assets/javascripts/wizard/templates/components/radio-button.hbs
+++ b/app/assets/javascripts/wizard/templates/components/radio-button.hbs
@@ -8,7 +8,7 @@
   </span>
   {{#if extraLabel}}
     <span class='extra-label'>
-      {{html-safe extraLabel}}
+      {{{extraLabel}}}
     </span>
   {{/if}}
 </div>
diff --git a/app/assets/javascripts/wizard/templates/components/wizard-field.hbs b/app/assets/javascripts/wizard/templates/components/wizard-field.hbs
index 7510570b5da..8f804940fb6 100644
--- a/app/assets/javascripts/wizard/templates/components/wizard-field.hbs
+++ b/app/assets/javascripts/wizard/templates/components/wizard-field.hbs
@@ -2,7 +2,7 @@
   <span class='label-value'>{{field.label}}</span>
 
   {{#if field.description}}
-    <div class='field-description'>{{html-safe field.description}}</div>
+    <div class='field-description'>{{{field.description}}}</div>
   {{/if}}
 </label>
 
@@ -11,5 +11,5 @@
 </div>
 
 {{#if field.errorDescription}}
-  <div class='field-error-description'>{{html-safe field.errorDescription}}</div>
+  <div class='field-error-description'>{{{field.errorDescription}}}</div>
 {{/if}}
diff --git a/app/assets/javascripts/wizard/templates/components/wizard-step.hbs b/app/assets/javascripts/wizard/templates/components/wizard-step.hbs
index 4f0686acf75..beb821930db 100644
--- a/app/assets/javascripts/wizard/templates/components/wizard-step.hbs
+++ b/app/assets/javascripts/wizard/templates/components/wizard-step.hbs
@@ -8,7 +8,7 @@
   {{/if}}
 
   {{#if step.description}}
-    <p class='wizard-step-description'>{{html-safe step.description}}</p>
+    <p class='wizard-step-description'>{{{step.description}}}</p>
   {{/if}}
 
   {{#wizard-step-form step=step}}
diff --git a/lib/onebox/templates/discourse_topic_onebox.hbs b/lib/onebox/templates/discourse_topic_onebox.hbs
index 63a04fcc76c..856d3342d47 100644
--- a/lib/onebox/templates/discourse_topic_onebox.hbs
+++ b/lib/onebox/templates/discourse_topic_onebox.hbs
@@ -1,10 +1,10 @@
 <aside class='quote' data-post="{{post_number}}" data-topic="{{topic_id}}">
   <div class='title'>
     <div class='quote-controls'></div>
-    {{html-safe avatar}}
-    <a href="{{original_url}}">{{html-safe title}}</a> {{html-safe category_html}}
+    {{{avatar}}}
+    <a href="{{original_url}}">{{{title}}}</a> {{{category_html}}}
   </div>
   <blockquote>
-    {{html-safe quote}}
+    {{{quote}}}
   </blockquote>
 </aside>
diff --git a/lib/onebox/templates/discourse_user_onebox.hbs b/lib/onebox/templates/discourse_user_onebox.hbs
index de1336dd925..60db7491c11 100644
--- a/lib/onebox/templates/discourse_user_onebox.hbs
+++ b/lib/onebox/templates/discourse_user_onebox.hbs
@@ -1,7 +1,7 @@
 <aside class="onebox">
   <article class="onebox-body user-onebox">
-    {{html-safe avatar}}
-    <h3><a href="{{original_url}}">{{html-safe username}}</a></h3>
+    {{{avatar}}}
+    <h3><a href="{{original_url}}">{{{username}}}</a></h3>
     <div>
       {{#name}}
         <span class="full-name">{{name}}</span>
@@ -11,7 +11,7 @@
           <svg class="fa d-icon d-icon-map-marker-alt svg-icon" xmlns="http://www.w3.org/2000/svg">
             <use xlink:href="#map-marker-alt"></use>
           </svg>
-          {{html-safe location}}
+          {{{location}}}
         </span>
       {{/location}}
       {{#website}}
@@ -19,12 +19,12 @@
           <svg class="fa d-icon d-icon-globe-americas svg-icon" xmlns="http://www.w3.org/2000/svg">
             <use xlink:href="#globe-americas"></use>
           </svg>
-          <a href="{{website}}">{{html-safe website_name}}</a>
+          <a href="{{website}}">{{{website_name}}}</a>
         </span>
       {{/website}}
     </div>
     {{#bio}}
-      <p>{{html-safe bio}}</p>
+      <p>{{{bio}}}</p>
     {{/bio}}
     <span>{{joined}} {{created_at}}</span>
   </article>
diff --git a/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs b/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs
index 6fb9ecf7c65..d7e73c3d08b 100644
--- a/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs
+++ b/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs
@@ -85,7 +85,7 @@
             <label class="control-label">
               {{i18n "discourse_local_dates.create.form.recurring_title"}}
             </label>
-            <p>{{i18n "discourse_local_dates.create.form.recurring_description"}}</p>
+            <p>{{{i18n "discourse_local_dates.create.form.recurring_description"}}}</p>
             <div class="controls">
               {{combo-box
                 content=recurringOptions
diff --git a/test/javascripts/components/html-safe-helper-test.js.es6 b/test/javascripts/components/html-safe-helper-test.js.es6
deleted file mode 100644
index 364f99a6e4e..00000000000
--- a/test/javascripts/components/html-safe-helper-test.js.es6
+++ /dev/null
@@ -1,14 +0,0 @@
-import componentTest from "helpers/component-test";
-moduleForComponent("html-safe-helper", { integration: true });
-
-componentTest("default", {
-  template: "{{html-safe string}}",
-
-  beforeEach() {
-    this.set("string", "<p class='cookies'>biscuits</p>");
-  },
-
-  async test(assert) {
-    assert.ok(exists("p.cookies"), "it displays the string as html");
-  }
-});
diff --git a/test/javascripts/lib/computed-test.js.es6 b/test/javascripts/lib/computed-test.js.es6
index 253673e5b6b..0a94485f44c 100644
--- a/test/javascripts/lib/computed-test.js.es6
+++ b/test/javascripts/lib/computed-test.js.es6
@@ -5,8 +5,7 @@ import {
   propertyNotEqual,
   fmt,
   i18n,
-  url,
-  htmlSafe
+  url
 } from "discourse/lib/computed";
 
 QUnit.module("lib:computed", {
@@ -155,12 +154,3 @@ QUnit.test("url", assert => {
     "it supports urls with a prefix"
   );
 });
-
-QUnit.test("htmlSafe", assert => {
-  const cookies = "<p>cookies and <b>biscuits</b></p>";
-  const t = EmberObject.extend({
-    desc: htmlSafe("cookies")
-  }).create({ cookies });
-
-  assert.equal(t.get("desc").string, cookies);
-});