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.

91 lines
3.5 KiB

5 years ago
extends ../layout.pug
include ../mixins/boardtable.pug
5 years ago
block head
title #{meta.siteName}
5 years ago
block content
h1.board-title #{meta.siteName}
.table-container.flex-center.mv-10.text-center
table
tr
th.alt Welcome
tr
td
pre.no-m-p
| The site administrator should edit views/pages/home.pug, then run "pm2 reload all" and "gulp html" to customise this page.
if recentNews && recentNews.length > 0
.table-container.flex-center.mv-10
table.newstable
tr
th(colspan=3) Latest News
each post in recentNews
tr
td
a.left(href=`/news.html#${post._id}`) #{post.title}
td
p.no-m-p #{`${post.message.raw.substring(0,50)}${post.message.raw.length > 50 ? '...' : ''}`}
td
- const newsDate = new Date(post.date);
time.right.reltime(datetime=newsDate.toISOString()) #{newsDate.toLocaleString(undefined, {hourCycle:'h23'})}
if hotThreads && hotThreads.length > 0
.table-container.flex-center.mv-10
table#hotposts
tr(colspan=3)
each post, i in hotThreads
tr
td.text-center
span.help(title='Hot Thread') 🔥
| #{post.replyposts + post.replyfiles}
td
- const threadLink = `/${post.board}/thread/${post.postId}.html#${post.postId}`;
a.quote(href=threadLink)
if post.subject
| #{post.subject.substring(0,30)}#{post.subject.length > 30 ? '...' : ''}
if post.nomarkup
| -
if post.nomarkup
| #{post.nomarkup.substring(0,40)}#{post.nomarkup.length > 40 ? '...' : ''}
if !post.nomarkup && !post.subject
| >>>/#{post.board}/#{post.postId}
td
- const postedDate = new Date(post.date);
time.right.reltime(datetime=postedDate.toISOString()) #{postedDate.toLocaleString(undefined, {hourCycle:'h23'})}
if boards && boards.length > 0
+boardtable(true, false)
each board in boards
tr
td
if board.settings.sfw === true
span.left
span.help(title='SFW') 💼
|
a(href=`/${board._id}/index.html`) /#{board._id}/ - #{board.settings.name}
td #{board.settings.description}
td #{board.pph}
td #{board.ppd}
td #{board.ips}
td #{board.sequence_value-1}
if localStats.total-localStats.unlisted > boards.length
tr
td(colspan=6)
a.bold(href='/boards.html') More Boards
.table-container.flex-center.mv-10.text-center
table(style='max-width:450px')
tr
th Local Stats
tr
td
pre.no-m-p
| There are currently #[span.bold #{localStats.total-localStats.unlisted}] public boards, #[span.bold #{localStats.total}] in total. Sitewide, #[span.bold #{localStats.ppd}] post#{localStats.ppd === 1 ? ' has' : 's have'} been made in the last day, #[span.bold #{localStats.pph}] in the last hour, #[span.bold #{localStats.posts}] in total.
| #[span.bold #{fileStats.count}] file#{fileStats.count === 1 ? ' is' : 's are'} being served, totaling #[span.bold #{fileStats.totalSizeString}].
if enableWebring === true && webringStats != null
.table-container.flex-center.mv-10.text-center
table(style='max-width:450px')
tr
th Webring Stats
tr
td
pre.no-m-p
| There are currently #[span.bold #{webringStats.sites}] sites and #[span.bold #{webringStats.total}] boards in the known webring. Across all webring boards, #[span.bold #{webringStats.pph}] post#{webringStats.pph === 1 ? ' has' : 's have'} been made in the last hour, #[span.bold #{webringStats.posts}] in total.