# Configuration Documentation
## 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.
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.
## Technical configuration
* "site_url": "https://example.com"
This value defines the url of your site, this used for the RSS feed to link back to post.
* "port": 8080
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
Boolean that defines weather new people should be allowed to signup.
* "timeline_length": 20
How many posts will be shown on the timeline (home page).
* "enable_hitcount": true
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"
This is the value in the tag in the html of all pages, you should not change this unless you know why.
## Basic Customisation
seperator = "
"
site_name = "My Blog"
site_description = "Read my blogs!"
// Anything in this directory will be in the webroot, so put favicon.ico and anything else here.
root_path = "/path/to/root/of/website"
// Default username if no username is inputted in comment submission
default_username = "Anon"
// RSS feeds
rss = true
rss_path = "/rss"
// Dates
// https://date-fns.org/v4.1.0/docs/format
date_format = "yyyy-MM-dd"
time_zone = "+0000"
//// Format /////
// 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
timeline_header = `%Y
%W
Create Post
RSS Feed
Sign Up
Delete Account
Hit count: %H
%S`
user_page_header = `%F's posts:
%I
%S`
tag_page_header = `Posts tagged: %G
%S`
// ---------------------------------------------
user_post_format = `%T
%C
%B
Permalink
%X
%M
%S`
post_page_format = `%T
%C
%B
By %N
Edit Post
Posted: %D
Edited: %E
%S
%X
%M
%S`
timeline_post_format = `%T
%C
Permalink
By %N
%X
%M
%S`
tag_post_format = `%T
%C
%B
Permalink
By %N
%S`
// -------------------------------------
site_wide_footer = `Site is ran by DeaDvey
%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: Source Code, license (WTFPL)"