- <div class="post-text raw-text<%if !raw> hidden<%/if>"><% post.text|html></div>
- <div class="post-text text<%if raw> hidden<%/if>"><% post.text|parse sone=post.sone></div>
+ <% post.text|html|store key=originalText text=true>
+ <% post.text|parse sone=post.sone|store key=parsedText text=true>
+ <% post.text|parse sone=post.sone length=core.preferences.charactersPerPost cut-off-length=core.preferences.postCutOffLength|store key=shortText text=true>
+ <div class="post-text raw-text<%if !raw> hidden<%/if>"><% originalText></div>
+ <div class="post-text text<%if raw> hidden<%/if><%if !shortText|match key=parsedText> hidden<%/if>"><% parsedText></div>
+ <div class="post-text short-text<%if raw> hidden<%/if><%if shortText|match key=parsedText> hidden<%/if>"><% shortText></div>
+ <%if !shortText|match key=parsedText><%if !raw><a class="expand-post-text" href="viewPost.html?post=<% post.id|html>&raw=true"><%= View.Post.ShowMore|l10n|html></a><%/if><%/if>
+ <%if !shortText|match key=parsedText><%if !raw><a class="shrink-post-text hidden"><%= View.Post.ShowLess|l10n|html></a><%/if><%/if>