Img full/thumb toggling. Small tweaks
This commit is contained in:
@@ -192,9 +192,9 @@ body {
|
||||
}
|
||||
|
||||
.post-img {
|
||||
cursor: pointer;
|
||||
height: auto;
|
||||
max-width: 400px;
|
||||
margin-bottom: 10px;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.post-body {
|
||||
|
||||
+43
-26
@@ -1,34 +1,51 @@
|
||||
const posts = Array.from(document.querySelectorAll("article"));
|
||||
function insertHeaderReplies() {
|
||||
const posts = Array.from(document.querySelectorAll("article"));
|
||||
const replies = {};
|
||||
|
||||
const replies = {};
|
||||
for (const post of posts) {
|
||||
const postId = +post.id.split("-")[1];
|
||||
const postBody = post.querySelector("p").textContent;
|
||||
|
||||
for (const post of posts) {
|
||||
const postId = +post.id.split("-")[1];
|
||||
const postBody = post.querySelector("p").textContent;
|
||||
const replyLinkIds = [...postBody.matchAll(/(?:^|\s)>>(\d+)\b/g)].map(m => parseInt(m[1]));
|
||||
for (const replyLinkId of replyLinkIds) {
|
||||
replies[replyLinkId] = replies[replyLinkId] ?
|
||||
replies[replyLinkId].add(postId) :
|
||||
replies[replyLinkId] = new Set([postId]);
|
||||
}
|
||||
}
|
||||
|
||||
const replyLinkIds = [...postBody.matchAll(/(?:^|\s)>>(\d+)\b/g)].map(m => parseInt(m[1]));
|
||||
for (const replyLinkId of replyLinkIds) {
|
||||
replies[replyLinkId] = replies[replyLinkId] ?
|
||||
replies[replyLinkId].add(postId) :
|
||||
replies[replyLinkId] = new Set([postId]);
|
||||
for (const postId in replies) {
|
||||
const post = $(`post-${postId}`);
|
||||
if (!post) break;
|
||||
|
||||
const postRepliesContainer = post.querySelector(".post-replies");
|
||||
|
||||
const replyIds = Array.from(replies[postId]);
|
||||
for (const replyId of replyIds) {
|
||||
const replyLink = document.createElement("a");
|
||||
replyLink.textContent = `>>${replyId}`;
|
||||
replyLink.classList.add("reply-link-header");
|
||||
replyLink.setAttribute("href", `#post-${replyId}`);
|
||||
|
||||
replyLink.onmouseover = (e) => highlightPost(+replyId, e);
|
||||
replyLink.onmouseleave = (e) => highlightPost(+replyId, e, false);
|
||||
replyLink.onclick = onReplyLinkClick;
|
||||
|
||||
postRepliesContainer.append(replyLink);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const postId in replies) {
|
||||
const post = $(`post-${postId}`);
|
||||
const postRepliesContainer = post.querySelector(".post-replies");
|
||||
|
||||
const replyIds = Array.from(replies[postId]);
|
||||
for (const replyId of replyIds) {
|
||||
const replyLink = document.createElement("a");
|
||||
replyLink.textContent = `>>${replyId}`;
|
||||
replyLink.classList.add("reply-link-header");
|
||||
replyLink.setAttribute("href", `#post-${replyId}`);
|
||||
|
||||
replyLink.onmouseover = (e) => highlightPost(+replyId, e);
|
||||
replyLink.onmouseleave = (e) => highlightPost(+replyId, e, false);
|
||||
replyLink.onclick = onReplyLinkClick;
|
||||
|
||||
postRepliesContainer.append(replyLink);
|
||||
function togglePostImage(img) {
|
||||
const filename = img.src.split("/").at(-1);
|
||||
if (img.classList.contains("post-img-full")) {
|
||||
img.classList.remove("post-img-full");
|
||||
img.src = "/static/img/posts/thumb/" + filename;
|
||||
}
|
||||
else {
|
||||
img.classList.add("post-img-full");
|
||||
img.src = "/static/img/posts/full/" + filename;
|
||||
}
|
||||
}
|
||||
|
||||
insertHeaderReplies()
|
||||
|
||||
Reference in New Issue
Block a user