Index: src/views/pages/post-edit.ejs
===================================================================
--- src/views/pages/post-edit.ejs	(revision 92f6976f791f1d27ee577caf5bd62c219b25420b)
+++ src/views/pages/post-edit.ejs	(revision b7d4458e21f8eef0c969874d5d571662936d8702)
@@ -242,4 +242,7 @@
           <span>🔞 <%= t('pedit.nsfw_label') %></span>
         </label>
+        <input type="text" name="content_warning" value="<%= post.content_warning || '' %>" maxlength="200"
+               placeholder="<%= t('pedit.nsfw_cw_ph') %>"
+               style="width:100%;box-sizing:border-box;margin:6px 0 2px;font-size:13px;padding:7px 9px">
         <% if (typeof premiumUnlocked === 'undefined' || premiumUnlocked) { %>
           <label class="pe-checkbox">
Index: src/views/pages/post.ejs
===================================================================
--- src/views/pages/post.ejs	(revision 92f6976f791f1d27ee577caf5bd62c219b25420b)
+++ src/views/pages/post.ejs	(revision b7d4458e21f8eef0c969874d5d571662936d8702)
@@ -13,5 +13,5 @@
     <div class="nsfw-banner">
       <span class="nsfw-banner-icon">🔞</span>
-      <span class="nsfw-banner-text"><%= t('post.nsfw_warning') %></span>
+      <span class="nsfw-banner-text"><%= post.content_warning || t('post.nsfw_warning') %></span>
       <button type="button" class="nsfw-banner-btn nsfw-reveal"><%= t('post.nsfw_show') %></button>
     </div>
