Index: src/views/pages/news.ejs
===================================================================
--- src/views/pages/news.ejs	(revision c6cdce64569cbbd1a06b9525eb87dcc265db710c)
+++ src/views/pages/news.ejs	(revision 73cffc30d25c5479bab9b91cc9ff40f0c028eb73)
@@ -101,6 +101,4 @@
           </div>
 
-          <div class="tl-content"><%- p.content %></div>
-
           <%
             var media = []; try { media = JSON.parse(p.media_json || '[]'); } catch (e) { media = []; }
@@ -109,5 +107,11 @@
             var auds = media.filter(function(m){ return m && m.url && m.type && /^audio\//.test(m.type); });
             var _nsfwVisual = !!p.nsfw && (imgs.length || vids.length || auds.length);
+            var _nsfwText = !!p.nsfw && !(imgs.length || vids.length || auds.length);
           %>
+          <% if (_nsfwText) { %>
+            <div class="tl-content nsfw-media"><span class="nsfw-veil"><span class="nsfw-veil-label">🔞 <%= p.cw || t('post.nsfw_warning') %></span><span class="nsfw-veil-btn"><%= t('post.nsfw_show') %></span></span><%- p.content %></div>
+          <% } else { %>
+            <div class="tl-content"><%- p.content %></div>
+          <% } %>
           <% if (_nsfwVisual) { %><div class="nsfw-media"><% } %>
           <% if (imgs.length) { %>
