12 Commits

14 changed files with 168 additions and 23 deletions

0
.gitignore vendored Executable file → Normal file
View File

0
docs/CONFIG.md Executable file → Normal file
View File

0
example-config.json Executable file → Normal file
View File

View File

@@ -10,7 +10,7 @@
"delete_account_confirmation": "Delete my account - (I agree that my account and all of my posts will be permanently deleted instantly)",
"signup_agreement": "I agree to not post illegal or hateful content",
"comment": "Comment",
"submit": "Sumbit",
"submit": "Submit",
"site_ran_by": "Site is ran by",
"signups_unavailable": "Sorry, this server does not allow signups",
@@ -39,5 +39,6 @@
"home_page": "Home Page",
"site_index": "Site Index",
"reply": "reply",
"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>"
"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>",
"translated_by": "DeaDvey"
}

View File

@@ -10,7 +10,7 @@
"delete_account_confirmation": "Delete my account - (I agree that my account and all of my posts will be permanently deleted instantly)",
"signup_agreement": "I agree to not post illegal or hateful content",
"comment": "Comment",
"submit": "Sumbit",
"submit": "Submit",
"site_ran_by": "Site is ran by",
"signups_unavailable": "Sorry, this server does not allow signups",
@@ -39,5 +39,6 @@
"home_page": "Home Page",
"site_index": "Site Index",
"reply": "reply",
"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>"
"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>",
"translated_by": "DeaDvey"
}

View File

@@ -10,7 +10,7 @@
"delete_account_confirmation": "Delete my account - (I agree that my account and all of my posts will be permanently deleted instantly)",
"signup_agreement": "I agree to not post illegal or hateful content",
"comment": "Comment",
"submit": "Sumbit",
"submit": "Submit",
"site_ran_by": "Site is ran by",
"signups_unavailable": "Sorry, this server does not allow signups",
@@ -39,5 +39,6 @@
"home_page": "Home Page",
"site_index": "Site Index",
"reply": "reply",
"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>"
"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>",
"translated_by": "DeaDvey"
}

View File

@@ -38,5 +38,6 @@
"home_page": "Página Principal",
"site_index": "Índice del Sitio",
"reply": "Responder",
"attribution": "Empujado por blogger-nodejs: <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs'>Código Fuente</a>, <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs/raw/branch/master/LICENSE'>licencia (WTFPL)</a>"
"attribution": "Empujado por blogger-nodejs: <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs'>Código Fuente</a>, <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs/raw/branch/master/LICENSE'>licencia (WTFPL)</a>",
"translated_by": "Javalsai"
}

44
locales/ja_JP.json Normal file
View File

@@ -0,0 +1,44 @@
{
"quotes": "“”‘’",
"password": "パスワード",
"username": "ユーザー名",
"prettyname": "きれいな名前",
"description": "説明 (例えばSNSのリンクや何を書くなど)、 マークダウンをスポートする",
"title": "題名",
"post_content": "投稿の内容、マークダウンをスポートする",
"tags": "タグ (カンマで区切られています)",
"delete_account_confirmation": "アカウントを削除する - (アカウントと投稿の全部をいつまでも削除するに賛成します。)",
"signup_agreement": "違法なコンテントと憎らしいコンテントをポストしないに賛成します。",
"comment": "コメント",
"submit": "提出する",
"site_ran_by": "アドミン:",
"signups_unavailable": "申し訳ございませんでもこのサーバーはサインアップ",
"user_exists": "申し訳ございませんでもこのユーザー名をつかえります。別のユーザー名を入ります。",
"user_doesnt_exist": "申し訳ございませんでもこのアカウントがいません。",
"comment_doesnt_exist": "このコメントがない、これから投稿を削除したかもしれない",
"post_doesnt_exist": "この投稿がないか又は削除しました。",
"incorrect_password": "パスワードが違う",
"rss_disabled": "申し訳ございませんでもRSSが使用不可能なります。",
"atom_disabled": "申し訳ございませんでもATOMが使用不可能なります。",
"AI_consent": "書面による同意がないとこのホームページの内容はコピーするか又はスクレイピングするか又はAIモデルか大規模言語モデルLLM)を仕込むことが禁断します。",
"rss_feed": "RSSのフィード",
"atom_feed": "ATOMのフィード",
"no_tags": "タグがない",
"new_post": "新しい投稿",
"edit_post": "投稿をエディットする",
"sign_up": "サインアップ",
"edit_account": "アカウントをエディットする",
"permalink": "恒久リンク",
"written_by": "作家は",
"published": "発行の日付",
"last_modified": "全変更",
"hitcount": "ヒット数",
"posts_tagged": "投稿をタグするの数",
"home_page": "ホーム",
"site_index": "ホームページの索引",
"reply": "返事",
"attribution": "blogger-nodejsで作成されています: <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs'>ソースコード</a>, <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs/raw/branch/master/LICENSE'>ライセンス (WTFPL)</a>",
"translated_by": "Nullifier"
}

44
locales/sv-SE.json Normal file
View File

@@ -0,0 +1,44 @@
{
"quotes": "“”‘’",
"password": "Lösenord",
"username": "Användarnamn",
"prettyname": "Vackert namn",
"description": "Beskrivning (sociala länkar, vad du skriver om m.m.), stöder markdown",
"title": "Titel",
"post_content": "Inläggsinnehåll, stöder markdown",
"tags": "Taggar (komma separerade)",
"delete_account_confirmation": "Radera mitt konto - (Jag förstår och accepterar att mitt konto och alla mina inlägg kommer att raderas permanent omedelbart)",
"signup_agreement": "Jag samtycker till att inte publicera olagligt eller hatiskt innehåll",
"comment": "Kommentera",
"submit": "Skicka",
"site_ran_by": "Webbplatsen drivs av",
"signups_unavailable": "Tyvärr, denna server tillåter inte registreringar",
"user_exists": "Tyvärr, den här användaren finns redan. Försök med ett annat användarnamn",
"user_doesnt_exist": "Tyvärr, den här användaren finns inte",
"comment_doesnt_exist": "Denna kommentar finns inte, vilket kan bero på att inlägget den var kopplad till har raderats",
"post_doesnt_exist": "Det här inlägget finns inte eller har raderats",
"incorrect_password": "Felaktigt Lösenord",
"rss_disabled": "Tyvärr, RSS är inaktiverat",
"atom_disabled": "Tyvärr, ATOM är inaktiverat",
"AI_consent": "Innehållet på denna webbplats får inte kopieras, skrapas eller användas för att träna AI-modeller eller stora språkmodeller (LLM) utan skriftligt samtycke.",
"rss_feed": "RSS-flöde",
"atom_feed": "ATOM-flöde",
"no_tags": "Inga taggar",
"new_post": "Nytt inlägg",
"edit_post": "Redigera inlägg",
"sign_up": "Registrera",
"edit_account": "Redigera konto",
"permalink": "Permalänk",
"written_by": "Skriven av",
"published": "Publicerad",
"last_modified": "Senast ändrad",
"hitcount": "Besökare",
"posts_tagged": "Taggade inlägg",
"home_page": "Startsida",
"site_index": "Webbplatsindex",
"reply": "Svara",
"attribution": "Drivs av blogger-nodejs: <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs'>Källkod</a>, <a href='https://git.javalsai.tuxcord.net/deadvey/blogger-nodejs/raw/branch/master/LICENSE'>licens (WTFPL)</a>",
"translated_by": "pickzelle"
}

61
locales/template.jsonc Normal file
View File

@@ -0,0 +1,61 @@
{
"quotes": "“”‘’", // Single and Double quotes, according to https://github.com/markdown-it/markdown-it format
// Placeholders in form inputs!
"password": "Password",
"username": "Username",
"prettyname": "Prettyname",
"description": "Description (social links, what you write about etc), supports markdown", // Should explain what can be entered into the user description/bio
"title": "Title", // Post title
"post_content": "Post Content, supports markdown",
"tags": "Tags (comma seperated)", // An input field that allows you to enter a comma seperated list of tags like: 'sus,test,haha'
"delete_account_confirmation": "Delete my account - (I agree that my account and all of my posts will be permanently deleted instantly)", // Should make it clear that all user data and posts will be deleted
"signup_agreement": "I agree to not post illegal or hateful content", // Should make it clear that you cannot post illegal or hateful content
"comment": "Comment",
"submit": "Sumbit",
"site_ran_by": "Site is ran by", // eg 'Site is ran by Bob', it shows up in the footer of each page
// Error messages, should just apologise and make it clear the error
"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",
"comment_doesnt_exist": "This comment doesn't exist, this could be because the post it was attached to was deleted",
"post_doesnt_exist": "This post doesn't exist or was deleted",
"incorrect_password": "Incorrect Password",
"rss_disabled": "Sorry, RSS is disabled",
"atom_disabled": "Sorry, ATOM is disabled",
// Disclaimer, not legally binding
"AI_consent": "The content on this website may not be copied, scraped, or used to train AI models or large language models (LLMs) without prior written consent.",
// Hyperlinks to pages and plain text that shows up on the website
"rss_feed": "RSS Feed",
"atom_feed": "ATOM Feed",
"no_tags": "No Tags",
"new_post": "New Post",
"edit_post": "Edit Post",
"sign_up": "Sign Up",
"edit_account": "Edit Account",
"permalink": "Permalink",
"written_by": "Written by", // A post is written/authored by x person
"published": "Published", // Published on this date
"last_modified": "Last Modified", // Last modified on this date
"hitcount": "Hitcount", // The number of views/hits/visits to a page, eg: 'hitcount: 53'
"posts_tagged": "Posts Tagged",
"home_page": "Home Page", // The main or default page, ie index.html
"site_index": "Site Index", // Or 'site map'
"reply": "reply", // Reply to a comment
// Attribution for the source code, don't change the URLs obviously, just the text within them.
"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>",
// Comma seperated list of people who contributed to this translation
"translated_by": "DeaDvey"
// TODO
// indexes locales
// Password again
// site_admin?
// Should colons be part of the translations?
}

2
package.json Executable file → Normal file
View File

@@ -10,7 +10,7 @@
"express": "^5.2.1",
"express-router": "^0.0.1",
"markdown-it": "^14.1.0",
"mysql": "^2.18.1",
"mssql": "^12.2.0",
"package.json": "^2.0.1"
}
}

View File

@@ -59,6 +59,7 @@ export function unix_time_to_atom_date(unix_time)
// returns: string
export function render_tags(tags)
{
tags = tags.filter((item, index) => tags.indexOf(item) === index) // Remove duplicate tags
let string = "" // Initialises the string
if (tags.length == 1 && tags[0] == "")
{
@@ -135,6 +136,7 @@ export function render_md(content)
typographer: true,
quotes: locale.quotes,
})
.disable('image');
return md.render(content)
};

View File

@@ -10,13 +10,6 @@
<header id='page-header'>
<%- include('../headers/timeline'); %>
</header>
<form method="POST" action="/submit_nothing" style="display:none">
<!-- Form is used to help mitigate spam as it is the first form on the front page -->
<input type="hidden" name="post_index" value="0">
<input placeholder="username" name="name"><br/>
<textarea placeholder="comment" name="content"></textarea><br/>
<button type="submit">Submit</button>
</form>
<div id="posts">
<% for (let index = posts.length - 1; index >= 0; index--) { %>
<% if (posts[index]["deleted"] != true) { %>
@@ -24,13 +17,6 @@
<% } %>
<% } %>
</div>
<form method="POST" action="/submit_nothing" style="display:none">
<!-- Form is used to help mitigate spam as it is the last form on the front page -->
<input type="hidden" name="post_index" value="0">
<input placeholder="username" name="name"><br/>
<textarea placeholder="comment" name="content"></textarea><br/>
<button type="submit">Submit</button>
</form>
<footer id='footer'>
<%- include('../partials/footer'); %>
</footer>

View File

@@ -18,6 +18,10 @@
<i><a href="/user/<%= user.username %>"><%= user.prettyname %></a></i>
</span>
-
<a if='edit-account-link' href="<%= config.edit_account_base_url %>/<%= user.id %>">
<img class='icon' src='/icons/edit.png' alt='<%= locale.edit_account %>' title='<%= locale.edit_account %>'>
</a>
-
<span id="post-pubdate">
<i><%= func.unix_time_to_date_format(post.pubdate) %></i><br/>
</span>