Comments now have their own pages, at /comment/commentID, these are
linked to when someone replies to another comment (>> id), I also fixed a bug in comment submission where the counter was not incrementing
This commit is contained in:
@@ -21,7 +21,7 @@ Read the [configuation guide](docs/CONFIG.md) for configuration help (in config.
|
|||||||
* site wide and user specific rss, atom
|
* site wide and user specific rss, atom
|
||||||
* hitcount
|
* hitcount
|
||||||
* Markdown syntax in posts
|
* Markdown syntax in posts
|
||||||
* Commenting on posts
|
* Commenting on posts and replying to other comments
|
||||||
* site wide custom CSS
|
* site wide custom CSS
|
||||||
|
|
||||||
# Bugs
|
# Bugs
|
||||||
@@ -34,7 +34,6 @@ Read the [configuation guide](docs/CONFIG.md) for configuration help (in config.
|
|||||||
* formatable custom strings
|
* formatable custom strings
|
||||||
* inline comments and docs
|
* inline comments and docs
|
||||||
* clean up code a bit
|
* clean up code a bit
|
||||||
* comment pages?
|
|
||||||
* /postID and /userID pages
|
* /postID and /userID pages
|
||||||
* site index
|
* site index
|
||||||
* Make EJS modification more user friendly
|
* Make EJS modification more user friendly
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
"timeline_length": 20,
|
"timeline_length": 20,
|
||||||
"enable_hitcount": true,
|
"enable_hitcount": true,
|
||||||
"charset": "UTF-8",
|
"charset": "UTF-8",
|
||||||
"root_path": "/home/deadvey/code/web/blogger-webroot/",
|
"root_path": "/home/deadvey/code/web/webroot/",
|
||||||
"edit_account_base_url": "/edit_account",
|
"edit_account_base_url": "/edit_account",
|
||||||
"new_post_url": "/post",
|
"new_post_url": "/post",
|
||||||
"signup_url": "/signup",
|
"signup_url": "/signup",
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
"signups_unavailable": "Sorry, this server does not allow signups",
|
"signups_unavailable": "Sorry, this server does not allow signups",
|
||||||
"user_exists": "Sorry, this user already exists, try a different username",
|
"user_exists": "Sorry, this user already exists, try a different username",
|
||||||
"user_doesnt_exist": "Sorry, this user does not exist",
|
"user_doesnt_exist": "Sorry, this user does not exist",
|
||||||
|
"comment_doesnt_exist": "This comment doesn't exist, this could be because the post it was attached to was deleted",
|
||||||
"delete_account_confirmation": "Delete my account - (I agree that my account and all of my posts will be permanently deleted instantly)",
|
"delete_account_confirmation": "Delete my account - (I agree that my account and all of my posts will be permanently deleted instantly)",
|
||||||
"incorrect_password": "Incorrect Password",
|
"incorrect_password": "Incorrect Password",
|
||||||
"rss_disabled": "Sorry, RSS is disabled",
|
"rss_disabled": "Sorry, RSS is disabled",
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
"signups_unavailable": "Sorry, this server does not allow signups",
|
"signups_unavailable": "Sorry, this server does not allow signups",
|
||||||
"user_exists": "Sorry, this user already exists, try a different username",
|
"user_exists": "Sorry, this user already exists, try a different username",
|
||||||
"user_doesnt_exist": "Sorry, this user does not exist",
|
"user_doesnt_exist": "Sorry, this user does not exist",
|
||||||
|
"comment_doesnt_exist": "This comment doesn't exist, this could be because the post it was attached to was deleted",
|
||||||
"delete_account_confirmation": "I agree that my account and all of my posts will be permanently deleted instantly",
|
"delete_account_confirmation": "I agree that my account and all of my posts will be permanently deleted instantly",
|
||||||
"incorrect_password": "Incorrect Password",
|
"incorrect_password": "Incorrect Password",
|
||||||
"rss_disabled": "Sorry, RSS is disabled",
|
"rss_disabled": "Sorry, RSS is disabled",
|
||||||
|
@@ -61,6 +61,18 @@ export function get_userID(username) {
|
|||||||
}
|
}
|
||||||
return -1 // If user is not present, return -1
|
return -1 // If user is not present, return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function get_comment(commentID) { // TODO scales like shit
|
||||||
|
const comments = require("../data/comments.json")
|
||||||
|
for (let i = 0; i < comments.comments.length; i++) { // Loop over every post
|
||||||
|
for (let j = 0; j < comments.comments[i].length; j++) { // Then every comment in that post
|
||||||
|
if (comments.comments[i][j]["id"] == commentID) {
|
||||||
|
return comments.comments[i][j]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1 // If comment is not present, return -1
|
||||||
|
}
|
||||||
// This escapes some potentially dangerous HTML characters with their HTML entities
|
// This escapes some potentially dangerous HTML characters with their HTML entities
|
||||||
// https://www.freeformatter.com/html-entities.html
|
// https://www.freeformatter.com/html-entities.html
|
||||||
// accepts a string
|
// accepts a string
|
||||||
@@ -76,3 +88,13 @@ export function escape_input(input) {
|
|||||||
.replaceAll("%", "%")
|
.replaceAll("%", "%")
|
||||||
return output
|
return output
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Render comment content by replacing the >> int with a url link to that comment
|
||||||
|
export function render_comment(comment_content) {
|
||||||
|
return comment_content
|
||||||
|
.replaceAll(/>> ([0-9]*)/g, "<a href='/comment/$1'>>> $1</a>")
|
||||||
|
.replaceAll(/>>([0-9]*)/g, "<a href='/comment/$1'>>>$1</a>")
|
||||||
|
.replaceAll(/>> ([0-9]*)/g, "<a href='/comment/$1'>>> $1</a>")
|
||||||
|
.replaceAll(/>>([0-9]*)/g, "<a href='/comment/$1'>>>$1</a>")
|
||||||
|
.replaceAll("\n", "<br/>")
|
||||||
|
};
|
||||||
|
@@ -216,6 +216,30 @@ app.get("/tag/:tag", (req,res) => {
|
|||||||
converter,
|
converter,
|
||||||
})
|
})
|
||||||
}); // /tag/:tag
|
}); // /tag/:tag
|
||||||
|
app.get("/comment/:commentID", (req,res) => {
|
||||||
|
const commentID = req.params.commentID;
|
||||||
|
const comment = func.get_comment(commentID)
|
||||||
|
if (comment == -1) {
|
||||||
|
res.render("partials/message", {
|
||||||
|
config,
|
||||||
|
message: config.string.comment_doesnt_exist,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
res.render("pages/comment",
|
||||||
|
{
|
||||||
|
config: config,
|
||||||
|
post: posts[comment["id"]],
|
||||||
|
users,
|
||||||
|
comment,
|
||||||
|
fromUnixTime: fromUnixTime,
|
||||||
|
format: format,
|
||||||
|
getUnixTime: getUnixTime,
|
||||||
|
func,
|
||||||
|
converter,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
///////////////////// Form pages ////////////////////////////
|
///////////////////// Form pages ////////////////////////////
|
||||||
@@ -275,7 +299,7 @@ app.post("/submit_comment", (req,res) => {
|
|||||||
"id": comments.counter,
|
"id": comments.counter,
|
||||||
"pubdate": unix_timestamp
|
"pubdate": unix_timestamp
|
||||||
};
|
};
|
||||||
let counter = comments.counter+1;
|
comments.counter += 1;
|
||||||
comments.comments[req.body.post_index].push(new_comment);
|
comments.comments[req.body.post_index].push(new_comment);
|
||||||
fs.writeFileSync(`../data/comments.json`, `${JSON.stringify(comments)}`, 'utf-8');
|
fs.writeFileSync(`../data/comments.json`, `${JSON.stringify(comments)}`, 'utf-8');
|
||||||
|
|
||||||
|
11
views/pages/comment.ejs
Normal file
11
views/pages/comment.ejs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<%- include('../partials/head'); %>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="comment">
|
||||||
|
<%- include("../partials/comment"); %>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@@ -1,2 +1,3 @@
|
|||||||
<b><%= comment.name %></b> <%= func.unix_time_to_date_format(comment.pubdate) %> <i>No. <%= comment.id %></i>:<br/>
|
<b><%= comment.name %></b> <%= func.unix_time_to_date_format(comment.pubdate) %> <i>No. <%= comment.id %></i>:<br/>
|
||||||
<%= comment.content %>
|
<%- func.render_comment(comment.content) %>
|
||||||
|
<br/>
|
||||||
|
Reference in New Issue
Block a user