config docs
This commit is contained in:
209
CONFIG.md
209
CONFIG.md
@@ -1,130 +1,117 @@
|
|||||||
# Configuration Documentation
|
# Configuration Documentation
|
||||||
## Introduction
|
## Introduction
|
||||||
The configuration file is stored in a file called config.json, for an example, copy example-config.json to config.json (`cp example-config.json config.json`) and modify from there.<br/>
|
The configuration file is stored in a file called config.json, for an example, copy example-config.json to config.json (`cp example-config.json config.json`) and modify from there.<br/>
|
||||||
Currently all values in example-config.json are required, however I plan to add support for default values in the case of no value being set.
|
Currently all values in example-config.json are required, however I plan to add support for default values in the case of no value being set.<br/>
|
||||||
|
All options show an example configuartion value and the variable type + an explaination below it.<br/>
|
||||||
|
|
||||||
## Technical configuration
|
## Technical configuration
|
||||||
* "site_url": "https://example.com"<br/>
|
* "site_url": "https://example.com"<br/>
|
||||||
This value defines the url of your site, this used for the RSS feed to link back to post.
|
This value defines the url of your site, this used for the RSS feed to link back to post.
|
||||||
* "port": 8080<br/>
|
* "port": 8080<br/>
|
||||||
This value defines the port that you run the blog on. Don't change this value if you don't know what that means.
|
Integer. This value defines the port that you run the blog on. Don't change this value if you don't know what that means.
|
||||||
* "allow_signup": true<br/>
|
* "allow_signup": true<br/>
|
||||||
Boolean that defines weather new people should be allowed to signup.
|
Boolean. Defines weather new people should be allowed to signup.
|
||||||
* "timeline_length": 20<br/>
|
* "timeline_length": 20<br/>
|
||||||
How many posts will be shown on the timeline (home page).
|
Integer. How many posts will be shown on the timeline (home page).
|
||||||
* "enable_hitcount": true<br/>
|
* "enable_hitcount": true<br/>
|
||||||
Enabling the hitcount (a number that represents the amount of front page loads (stored in hitcount.txt)) can slightly slow down loading of the front page.
|
Boolean. Enabling the hitcount (a number that represents the amount of front page loads (stored in hitcount.txt)) can slightly slow down loading of the front page.
|
||||||
* "charset": "UTF-8"<br/>
|
* "charset": "UTF-8"<br/>
|
||||||
This is the value in the <meta charset=""> tag in the html of all pages, you should not change this unless you know why.
|
String. This is the value in the <meta charset=""> tag in the html of all pages, you should not change this unless you know why.
|
||||||
|
* "root_path": "/path/to/root/of/website"
|
||||||
|
String. Anything in this directory will be in the webroot, so put favicon.ico and anything else here.
|
||||||
|
|
||||||
## Basic Customisation
|
## Basic Customisation
|
||||||
seperator = "<hr/>"
|
* "seperator": "\<hr/\>"<br/>
|
||||||
site_name = "My Blog"
|
String. This is what %S represents in the formatting, this will go inbetween posts and generally to seperate out content on pages.
|
||||||
site_description = "Read my blogs!"
|
* "site_name": "My Blog"<br/>
|
||||||
|
String. This is what %Y represents; it's the name of your instance, a human readable string.
|
||||||
|
* "site_description": "Read my blogs!"
|
||||||
|
String. This is what %W represents; it's the description of your instance, a human readable string.
|
||||||
|
* "default_commenter_username": "Anon"
|
||||||
|
String. Default commenter username if no username is inputted in comment submission.
|
||||||
|
|
||||||
// Anything in this directory will be in the webroot, so put favicon.ico and anything else here.
|
## Syndication
|
||||||
root_path = "/path/to/root/of/website"
|
* "rss": true<br/>
|
||||||
|
Boolean. Enable or Disable RSS feeds.
|
||||||
|
* "rss_path": "/rss"<br/>
|
||||||
|
String. The path of the global rss feed file.
|
||||||
|
|
||||||
// Default username if no username is inputted in comment submission
|
## Dates
|
||||||
default_username = "Anon"
|
Read more at [date-fns](https://date-fns.org/v4.1.0/docs/format)<br/>
|
||||||
|
* "date_format": "yyyy-MM-dd"<br/>
|
||||||
|
String. The format of date's on the website.
|
||||||
|
* "time_zone": "+0000"<br/>
|
||||||
|
String. Your offset from UTC
|
||||||
|
|
||||||
// RSS feeds
|
## Advanced Customisation
|
||||||
rss = true
|
All of these customisations support format indicators<br/>
|
||||||
rss_path = "/rss"
|
Format indicatos are a % sign followed by a character and represent a piece of information<br/>
|
||||||
|
relevant to the data at hand.
|
||||||
|
<details open>
|
||||||
|
<summary>Format Indicators</summary>
|
||||||
|
The syntax for this is pretty simple
|
||||||
|
* %% - A literal %
|
||||||
|
* %A - List of tags
|
||||||
|
* %B - List of tags, each one with a hyperlink to that tag page
|
||||||
|
* %C - Post content
|
||||||
|
* %D - Published date in the format specified by date_format
|
||||||
|
* %E - Edited date in the format specified by date_format
|
||||||
|
* %F - Pretty name
|
||||||
|
* %G - Tag name (used for the tag page only)
|
||||||
|
* %H - Frontpage hit count
|
||||||
|
* %I - User description
|
||||||
|
* %L - URL Permanent link to the post
|
||||||
|
* %M - comments
|
||||||
|
* %N - the username of the user (poster)
|
||||||
|
* %O - URL to edit this post
|
||||||
|
* %P - URL to create a new post
|
||||||
|
* %Q - URL to sign up
|
||||||
|
* %R - Site wide RSS feed
|
||||||
|
* %S - post seperator as defined by post_seperator
|
||||||
|
* %T - Title
|
||||||
|
* %U - URL the the user (poster)
|
||||||
|
* %W - Site Description as defined by site_description
|
||||||
|
* %X - Comment submission box
|
||||||
|
* %Y - Site Name as defined by site_name
|
||||||
|
* %Z - Attribution (to me) and source code link and license
|
||||||
|
</details>
|
||||||
|
### Header's
|
||||||
|
* "timeline_header": "<h1>%Y</h1><h2>%W</h2><a href="%P">Create Post</a>\<br/\><a href="%R">RSS Feed</a>\<br/\><a href="%Q">Sign Up</a>\<br/\><a href="%D">Delete Account</a>\<br/\>Hit count: %H%S"<br/>
|
||||||
|
String. The format of the header peice of the home page/timeline page, example includes the site name, desciption and some relevant links.
|
||||||
|
* "user_page_header": "<h1>%F's posts:</h1>%I%S"<br/>
|
||||||
|
String. The format of the header peice of the user page which contains all posts from a particular user. example includes the prettyname and their description.
|
||||||
|
* "tag_page_header": "<h1>Posts tagged: %G</h1>%S"<br/>
|
||||||
|
String. The format of the header peice of the tag page which contains all posts with a particular tag, example includes the tag name.
|
||||||
|
### Post's
|
||||||
|
* "user_post_format": "<h2>%T</h2><p>%C</p><i>%B</i>\<br/\><a href="%L">Permalink</a><\br/\>%X%M%S"<br/>
|
||||||
|
String. The format of posts on the users page. Example includes title, content, tags, permalink and comments.
|
||||||
|
* "post_page_format": "<h1>%T</h1><p>%C</p><i>%B</i>\<br/\><i>By <a href="%U">%N</a></i>\<br/\><a href="%O">Edit Post</a>\<br/\><i>Posted: %D</i>\<br/\><i>Edited: %E</i>%S%X%M%S"<br/>
|
||||||
|
String. The format of the post on the post's page. Example includes title, content, tags, user page hyperlink, edit post hyperlink, publish date, modified date and comments.
|
||||||
|
* "timeline_post_format": "<h3>%T</h3><p>%C</p><a href="%L">Permalink</a><\br/\><i>By <a href="%U">%N</a></i>%X%M%S"<br/>
|
||||||
|
String. The format of the posts on the timeline, example includes title, content, permalink, user page hyperlink and comments.
|
||||||
|
* "tag_post_format": "<h3>%T</h3><p>%C</p><i>%B</i>\<br/\><a href="%L">Permalink</a>\<br/\><i>By <a href="%U">%N</a></i>%S"
|
||||||
|
String. The format of the posts on the tag page, example includes title, content, permalink and user page hyperlink.
|
||||||
|
### Other
|
||||||
|
* "site_wide_footer": "Site is ran by DeaDvey\<br/\>%Z"<br/>
|
||||||
|
String. The format of the site wide footer, shown on every page.
|
||||||
|
* "css": "body { background: red; }"<br/>
|
||||||
|
String. Custom CSS to be applied to all pages, if you want more complex css, you can edit custom.css.
|
||||||
|
|
||||||
// Dates
|
## Custom Strings
|
||||||
// https://date-fns.org/v4.1.0/docs/format
|
All of these values are of type String
|
||||||
date_format = "yyyy-MM-dd"
|
* "signup_agreement": "I agree to not post illegal or hateful content"<br/>
|
||||||
time_zone = "+0000"
|
The agreement people must check to signup for the server.
|
||||||
|
* "signups_unavailable": "Sorry, this server does not allow signups"<br/>
|
||||||
|
The string to be displayed if the user tries to signup when signup's are disabled.
|
||||||
|
* "user_exists": "Sorry, this user already exists, try a different username"<br/>
|
||||||
|
The string to be shown when someone is trying to signup with a name exists.
|
||||||
|
* "user_doesnt_exist": "Sorry, this user does not exist"<br/>
|
||||||
|
The string to be shown when someone tries to edit their account or make a post but the username doesn't exist.
|
||||||
|
* "delete_account_confirmation": "I agree that my account and all of my posts will be permanently deleted instantly"<br/>
|
||||||
|
The string to be shown as a confirmation when a user tries to delete their account.
|
||||||
|
* "incorrect_password": "Incorrect Password"<br/>
|
||||||
|
The string to be shown if the password is incorrect.
|
||||||
|
|
||||||
//// Format /////
|
## Other
|
||||||
// The syntax for this is pretty simple
|
* "attribution" = "Powered by blogger-nodejs: <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs'>Source Code</a>, <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs/raw/branch/master/LICENSE'>license (WTFPL)</a>"
|
||||||
// %% - A literal %
|
String. Represented by format indicator %Z. Only change this value if you modify the source code or just want to change some of the formatting.
|
||||||
// %A - List of tags
|
|
||||||
// %B - List of tags, each one with a hyperlink to that tag page
|
|
||||||
// %C - Post content
|
|
||||||
// %D - Published date in the format specified by date_format
|
|
||||||
// %E - Edited date in the format specified by date_format
|
|
||||||
// %F - Pretty name
|
|
||||||
// %G - Tag name (used for the tag page only)
|
|
||||||
// %H - Frontpage hit count
|
|
||||||
// %I - User description
|
|
||||||
// %L - URL Permanent link to the post
|
|
||||||
// %M - comments
|
|
||||||
// %N - the username of the user (poster)
|
|
||||||
// %O - URL to edit this post
|
|
||||||
// %P - URL to create a new post
|
|
||||||
// %Q - URL to sign up
|
|
||||||
// %R - Site wide RSS feed
|
|
||||||
// %S - post seperator as defined by post_seperator
|
|
||||||
// %T - Title
|
|
||||||
// %U - URL the the user (poster)
|
|
||||||
// %W - Site Description as defined by site_description
|
|
||||||
// %X - Comment submission box
|
|
||||||
// %Y - Site Name as defined by site_name
|
|
||||||
// %Z - Attribution (to me) and source code link and license
|
|
||||||
|
|
||||||
timeline_header = `<h1>%Y</h1>
|
|
||||||
<h2>%W</h2>
|
|
||||||
<a href="%P">Create Post</a><br/>
|
|
||||||
<a href="%R">RSS Feed</a><br/>
|
|
||||||
<a href="%Q">Sign Up</a><br/>
|
|
||||||
<a href="%D">Delete Account</a><br/>
|
|
||||||
Hit count: %H
|
|
||||||
%S`
|
|
||||||
user_page_header = `<h1>%F's posts:</h1>
|
|
||||||
%I
|
|
||||||
%S`
|
|
||||||
tag_page_header = `<h1>Posts tagged: %G</h1>%S`
|
|
||||||
// ---------------------------------------------
|
|
||||||
user_post_format = `<h2>%T</h2>
|
|
||||||
<p>%C</p>
|
|
||||||
<i>%B</i><br/>
|
|
||||||
<a href="%L">Permalink</a><br/>
|
|
||||||
%X
|
|
||||||
%M
|
|
||||||
%S`
|
|
||||||
post_page_format = `<h1>%T</h1>
|
|
||||||
<p>%C</p>
|
|
||||||
<i>%B</i><br/>
|
|
||||||
<i>By <a href="%U">%N</a></i><br/>
|
|
||||||
<a href="%O">Edit Post</a><br/>
|
|
||||||
<i>Posted: %D</i><br/>
|
|
||||||
<i>Edited: %E</i>
|
|
||||||
%S
|
|
||||||
%X
|
|
||||||
%M
|
|
||||||
%S`
|
|
||||||
timeline_post_format = `<h3>%T</h3>
|
|
||||||
<p>%C</p>
|
|
||||||
<a href="%L">Permalink</a><br/>
|
|
||||||
<i>By <a href="%U">%N</a></i>
|
|
||||||
%X
|
|
||||||
%M
|
|
||||||
%S`
|
|
||||||
tag_post_format = `<h3>%T</h3>
|
|
||||||
<p>%C</p>
|
|
||||||
<i>%B</i><br/>
|
|
||||||
<a href="%L">Permalink</a><br/>
|
|
||||||
<i>By <a href="%U">%N</a></i>
|
|
||||||
%S`
|
|
||||||
// -------------------------------------
|
|
||||||
site_wide_footer = `Site is ran by DeaDvey<br/>
|
|
||||||
%Z`
|
|
||||||
|
|
||||||
// Custom Strings
|
|
||||||
signup_agreement = "I agree to not post illegal or hateful content"
|
|
||||||
signups_unavailable = "Sorry, this server does not allow signups"
|
|
||||||
user_exists = "Sorry, this user already exists, try a different username"
|
|
||||||
user_doesnt_exist = "Sorry, this user does not exist"
|
|
||||||
delete_account_confirmation = "I agree that my account and all of my posts will be permanently deleted instantly"
|
|
||||||
incorrect_password = "Incorrect Password"
|
|
||||||
|
|
||||||
/// Custom CSS to be applied to every page
|
|
||||||
css = `
|
|
||||||
/* Put you custom CSS here,
|
|
||||||
Read about existing classes and ID's in the docs (coming soon)*\
|
|
||||||
`
|
|
||||||
|
|
||||||
// pretty please don't change this
|
|
||||||
attribution = "Powered by blogger-nodejs: <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs'>Source Code</a>, <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs/raw/branch/master/LICENSE'>license (WTFPL)</a>"
|
|
||||||
|
@@ -22,6 +22,8 @@ Read the [configuation guide](CONFIG.md) for configuration help (in config.json)
|
|||||||
* probably insecure as hell
|
* probably insecure as hell
|
||||||
|
|
||||||
# planned features/todo list
|
# planned features/todo list
|
||||||
|
* custom CSS _file_
|
||||||
|
* custom strings use format indicators
|
||||||
* seperate functions into modules
|
* seperate functions into modules
|
||||||
* builtin crypto
|
* builtin crypto
|
||||||
* ejs
|
* ejs
|
||||||
|
2
app.js
2
app.js
@@ -388,7 +388,7 @@ app.post("/submit_comment", (req,res) => {
|
|||||||
const unix_timestamp = getUnixTime(new Date())
|
const unix_timestamp = getUnixTime(new Date())
|
||||||
let name = escape_input(req.body.name)
|
let name = escape_input(req.body.name)
|
||||||
if (name == "") {
|
if (name == "") {
|
||||||
name = config.default_username
|
name = config.default_commenter_username
|
||||||
}
|
}
|
||||||
new_comment = {
|
new_comment = {
|
||||||
"name": name,
|
"name": name,
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
"enable_hitcount": true,
|
"enable_hitcount": true,
|
||||||
"charset": "UTF-8",
|
"charset": "UTF-8",
|
||||||
"root_path": "/path/to/root/of/website",
|
"root_path": "/path/to/root/of/website",
|
||||||
"default_username": "Anon",
|
"default_comenter_username": "Anon",
|
||||||
"rss": true,
|
"rss": true,
|
||||||
"rss_path": "/rss",
|
"rss_path": "/rss",
|
||||||
"date_format": "yyyy-MM-dd",
|
"date_format": "yyyy-MM-dd",
|
||||||
|
Reference in New Issue
Block a user