jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.5 KiB

extends ../layout.pug
include ../mixins/post.pug
include ../mixins/boardnav.pug
include ../mixins/managenav.pug
include ../mixins/boardheader.pug
block head
- const subjectString = thread.subject || (thread.nomarkup ? `${thread.nomarkup.substring(0, globalLimits.fieldLength.subject)}${thread.nomarkup.length > globalLimits.fieldLength.subject ? '...' : ''}` : thread.postId);
title /#{board._id}/ - #{subjectString}
if !modview
meta(property='og:site_name', value=meta.siteName)
meta(property='og:title', content=thread.subject)
meta(property='og:url', content=meta.url)
meta(property='og:description', content=thread.nomarkup)
if thread.files.length > 0
if thread.spoiler || thread.files[0].spoiler
meta(property='og:image', content='/file/spoiler.png')
else
- const file = thread.files[0];
- const maintype = file.mimetype.split('/')[0];
case maintype
when 'image'
meta(property='og:image', content=`/file/${file.filename}`)
when 'video'
meta(property='og:video', content=`/file/${file.filename}`)
when 'audio'
meta(property='og:audio', content=`/file/${file.filename}`)
default
- break
block content
+boardheader(modview ? 'Mod View' : null)
br
include ../includes/postform.pug
br
include ../includes/announcements.pug
include ../includes/stickynav.pug
if modview
+managenav(null, true)
else
.pages
+boardnav(null, true, true)
- const uids = board.settings.ids ? new Set() : void 0;
form(action=`/forms/board/${board._id}/${modview ? 'mod' : ''}actions` method='POST' enctype='application/x-www-form-urlencoded')
if modview
input(type='hidden' name='_csrf' value=csrf)
hr(size=1)
.thread
- uids && thread.userId && uids.add(thread.userId)
+post(thread)
5 years ago
for post in thread.replies
- uids && post.userId && uids.add(post.userId)
+post(post)
hr(size=1)
.wrapbar
if modview
+managenav(null, true)
else
.pages
+boardnav(null, true, true)
#threadstats
span #{thread.replyposts} repl#{thread.replyposts === 1 ? 'y' : 'ies'}
| |
span #{thread.replyfiles + thread.files.length} file#{thread.replyfiles + thread.files.length === 1 ? '' : 's'}
if board.settings.ids
| |
span #{uids.size} UID#{uids.size === 1 ? '' : 's'}
.jsonly#livetext
.dot#livecolor
| Connecting...
input.postform-style.ml-5.di#updatepostsbutton(type='button' value='Update')
if modview
include ../includes/actionfooter_manage.pug
else
include ../includes/actionfooter.pug