Split SITE_NAME into computer-readable SITE_ID and human-readable SITE_TITLE.

This commit is contained in:
Ben Rog-Wilhelm 2022-07-31 18:53:18 -05:00
parent 850d175563
commit 800ae8d2dc
59 changed files with 202 additions and 180 deletions

3
env
View file

@ -1,6 +1,7 @@
MASTER_KEY=blahblahblah
DOMAIN=localhost
SITE_NAME=TheMotte
SITE_ID=TheMotte
SITE_TITLE=The Motte
GIPHY_KEY=blahblahblah
DISCORD_SERVER_ID=blahblahblah
DISCORD_CLIENT_ID=blahblahblah

View file

@ -25,14 +25,15 @@ app.jinja_env.auto_reload = True
faulthandler.enable()
app.config["SITE_NAME"]=environ.get("SITE_NAME").strip()
app.config["SITE_ID"]=environ.get("SITE_ID").strip()
app.config["SITE_TITLE"]=environ.get("SITE_TITLE").strip()
app.config["GUMROAD_LINK"]=environ.get("GUMROAD_LINK", "https://marsey1.gumroad.com/l/tfcvri").strip()
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['DATABASE_URL'] = environ.get("DATABASE_URL", "postgresql://postgres@localhost:5432")
app.config['SECRET_KEY'] = environ.get('MASTER_KEY')
app.config["SERVER_NAME"] = environ.get("DOMAIN").strip()
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 3153600
app.config["SESSION_COOKIE_NAME"] = "session_" + environ.get("SITE_NAME").strip().lower()
app.config["SESSION_COOKIE_NAME"] = "session_" + environ.get("SITE_ID").strip().lower()
app.config["VERSION"] = "1.0.0"
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
app.config["SESSION_COOKIE_SECURE"] = "localhost" not in environ.get("DOMAIN")

View file

@ -7,7 +7,7 @@ const box = document.getElementById('chat-window')
const textbox = document.getElementById('input-text')
const icon = document.getElementById('favicon')
const vid = document.getElementById('vid').value
const site_name = document.getElementById('site_name').value
const site_id = document.getElementById('site_id').value
const slurreplacer = document.getElementById('slurreplacer').value
let notifs = 0;
@ -20,17 +20,17 @@ function flash(){
if (notifs >= 1 && !focused){
title.innerHTML = `[+${notifs}] Chat`;
if (alert) {
icon.href = escapeHTML(`/assets/images/${site_name}/alert.webp?v=2`)
icon.href = escapeHTML(`/assets/images/${site_id}/alert.webp?v=2`)
alert=false;
}
else {
icon.href = escapeHTML(`/assets/images/${site_name}/icon.webp?v=1015`)
icon.href = escapeHTML(`/assets/images/${site_id}/icon.webp?v=1015`)
alert=true;
}
setTimeout(flash, 500)
}
else {
icon.href = escapeHTML(`/assets/images/${site_name}/icon.webp?v=1015`)
icon.href = escapeHTML(`/assets/images/${site_id}/icon.webp?v=1015`)
notifs = 0
title.innerHTML = 'Chat';
}

View file

@ -5,7 +5,6 @@ from files.helpers.lazy import lazy
from os import environ
from .sub_block import *
SITE_NAME = environ.get("SITE_NAME", '').strip()
SITE = environ.get("DOMAIN", '').strip()
if SITE == "localhost": SITE_FULL = 'http://' + SITE
else: SITE_FULL = 'https://' + SITE

View file

@ -267,7 +267,7 @@ class Submission(Base):
@lazy
def thumb_url(self):
if self.over_18: return f"{SITE_FULL}/assets/images/nsfw.webp?v=1"
elif not self.url: return f"{SITE_FULL}/assets/images/{SITE_NAME}/default_text.webp?v=1"
elif not self.url: return f"{SITE_FULL}/assets/images/{SITE_ID}/default_text.webp?v=1"
elif self.thumburl:
if self.thumburl.startswith('/'): return SITE_FULL + self.thumburl
return self.thumburl

View file

@ -529,7 +529,7 @@ class User(Base):
@lazy
def banner_url(self):
if self.bannerurl: return self.bannerurl
else: return f"/assets/images/{SITE_NAME}/site_preview.webp?v=1015"
else: return f"/assets/images/{SITE_ID}/site_preview.webp?v=1015"
@property
@lazy

View file

@ -8,7 +8,8 @@ from files.classes.marsey import Marsey
from flask import request
SITE = environ.get("DOMAIN", '').strip()
SITE_NAME = environ.get("SITE_NAME", '').strip()
SITE_ID = environ.get("SITE_ID", '').strip()
SITE_TITLE = environ.get("SITE_TITLE", '').strip()
if "localhost" in SITE: SITE_FULL = 'http://' + SITE
else: SITE_FULL = 'https://' + SITE
@ -62,7 +63,7 @@ DAD_ID = 0
MOM_ID = 0
DONGER_ID = 0
BUG_THREAD = 0
WELCOME_MSG = f"Welcome to {SITE_NAME}!"
WELCOME_MSG = f"Welcome to {SITE_TITLE}!"
ROLES={}
IMGUR_KEY = environ.get("IMGUR_KEY").strip()

View file

@ -49,4 +49,23 @@ def timestamp(timestamp):
@app.context_processor
def inject_constants():
return {"environ":environ, "SITE":SITE, "SITE_NAME":SITE_NAME, "SITE_FULL":SITE_FULL, "AUTOJANNY_ID":AUTOJANNY_ID, "NOTIFICATIONS_ID":NOTIFICATIONS_ID, "PUSHER_ID":PUSHER_ID, "CC":CC, "CC_TITLE":CC_TITLE, "listdir":listdir, "MOOSE_ID":MOOSE_ID, "AEVANN_ID":AEVANN_ID, "PIZZASHILL_ID":PIZZASHILL_ID, "config":app.config.get, "DEFAULT_COLOR":DEFAULT_COLOR, "COLORS":COLORS, "ADMIGGERS":ADMINISTRATORS}
return {
"environ":environ,
"SITE":SITE,
"SITE_ID":SITE_ID,
"SITE_TITLE":SITE_TITLE,
"SITE_FULL":SITE_FULL,
"AUTOJANNY_ID":AUTOJANNY_ID,
"NOTIFICATIONS_ID":NOTIFICATIONS_ID,
"PUSHER_ID":PUSHER_ID,
"CC":CC,
"CC_TITLE":CC_TITLE,
"listdir":listdir,
"MOOSE_ID":MOOSE_ID,
"AEVANN_ID":AEVANN_ID,
"PIZZASHILL_ID":PIZZASHILL_ID,
"config":app.config.get,
"DEFAULT_COLOR":DEFAULT_COLOR,
"COLORS":COLORS,
"ADMIGGERS":ADMINISTRATORS
}

View file

@ -10,11 +10,12 @@ from files.classes import *
from files.__main__ import app, mail, limiter
from flask_mail import Message
name = environ.get("SITE_NAME").strip()
SITE_ID = environ.get("SITE_ID").strip()
SITE_TITLE = environ.get("SITE_TITLE").strip()
def send_mail(to_address, subject, html):
msg = Message(html=html, subject=subject, sender=f"{name}@{SITE}", recipients=[to_address])
msg = Message(html=html, subject=subject, sender=f"{SITE_ID}@{SITE}", recipients=[to_address])
mail.send(msg)
@ -35,7 +36,7 @@ def send_verification_email(user, email=None):
html=render_template("email/email_verify.html",
action_url=link,
v=user),
subject=f"Validate your {name} account email."
subject=f"Validate your {SITE_TITLE} account email."
)

View file

@ -38,7 +38,7 @@ def pusher_thread(interests, c, username):
'title': f'New reply by @{username}',
'body': notifbody,
'deep_link': f'{SITE_FULL}/comment/{c.id}?context=8&read=true#context',
'icon': f'{SITE_FULL}/assets/images/{SITE_NAME}/icon.webp?v=1015',
'icon': f'{SITE_FULL}/assets/images/{SITE_ID}/icon.webp?v=1015',
}
},
'fcm': {
@ -185,7 +185,7 @@ def api_comment(v):
body = request.values.get("body", "").strip()[:10000]
if v.admin_level > 2 and parent_post.id == 37749 and level == 1:
with open(f"snappy_{SITE_NAME}.txt", "a", encoding="utf-8") as f:
with open(f"snappy_{SITE_ID}.txt", "a", encoding="utf-8") as f:
f.write('\n{[para]}\n' + body)
if parent_post.id not in ADMINISTRATORS:

View file

@ -22,8 +22,8 @@ from sys import stdout
snappyquotes = [f':#{x}:' for x in marseys_const2]
if path.exists(f'snappy_{SITE_NAME}.txt'):
with open(f'snappy_{SITE_NAME}.txt', "r", encoding="utf-8") as f:
if path.exists(f'snappy_{SITE_ID}.txt'):
with open(f'snappy_{SITE_ID}.txt', "r", encoding="utf-8") as f:
snappyquotes += f.read().split("\n{[para]}\n")
discounts = {

View file

@ -26,7 +26,7 @@ def pusher_thread2(interests, notifbody, username):
'title': f'New message from @{username}',
'body': notifbody,
'deep_link': f'{SITE_FULL}/notifications?messages=true',
'icon': f'{SITE_FULL}/assets/images/{SITE_NAME}/icon.webp?v=1015',
'icon': f'{SITE_FULL}/assets/images/{SITE_ID}/icon.webp?v=1015',
}
},
'fcm': {
@ -704,7 +704,7 @@ def messagereply(v):
'title': f'New message from @{v.username}',
'body': notifbody,
'deep_link': f'{SITE_FULL}/notifications?messages=true',
'icon': f'{SITE_FULL}/assets/images/{SITE_NAME}/icon.webp"a=1010',
'icon': f'{SITE_FULL}/assets/images/{SITE_ID}/icon.webp"a=1010',
}
},
'fcm': {
@ -742,7 +742,7 @@ def mfa_qr(secret, v):
qr = qrcode.QRCode(
error_correction=qrcode.constants.ERROR_CORRECT_L
)
qr.add_data(x.provisioning_uri(v.username, issuer_name=app.config["SITE_NAME"]))
qr.add_data(x.provisioning_uri(v.username, issuer_name=app.config["SITE_TITLE"]))
img = qr.make_image(fill_color="#000000", back_color="white")
mem = io.BytesIO()

View file

@ -1,7 +1,7 @@
{% extends "default.html" %}
{% block title %}
<title>{{SITE_NAME}}</title>
<title>{{SITE_TITLE}}</title>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "default.html" %}
{% block title %}
<title>{{SITE_NAME}}</title>
<title>{{SITE_TITLE}}</title>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "default.html" %}
{% block title %}
<title>{{SITE_NAME}}</title>
<title>{{SITE_TITLE}}</title>
{% endblock %}

View file

@ -1,6 +1,6 @@
{% extends "default.html" %}
{% block pagetitle %}Edit {{SITE_NAME}} sidebar{% endblock %}
{% block pagetitle %}Edit {{SITE_TITLE}} sidebar{% endblock %}
{% block content %}

View file

@ -1,7 +1,7 @@
{% extends "default.html" %}
{% block title %}
<title>{{SITE_NAME}} - API</title>
<title>{{SITE_TITLE}} - API</title>
{% endblock %}
@ -14,17 +14,17 @@
<pre></pre>
<p>This page explains how to obtain and use an access token. </p>
<h2>Step 1: Create your Application</h2>
<p>In the <a href="/settings/apps">apps tab of {{SITE_NAME}} settings</a>, fill in and submit the form to request an access token. You will need:</p>
<p>In the <a href="/settings/apps">apps tab of {{SITE_TITLE}} settings</a>, fill in and submit the form to request an access token. You will need:</p>
<ul>
<li>an application name</li>
<li>a Redirect URI. May not use HTTP unless using localhost (use HTTPS instead).</li>
<li>a brief description of what your bot is intended to do</li>
</ul>
<p>Don't worry too much about accuracy; you will be able to change all of these later.</p>
<p>{{SITE_NAME}} administrators will review and approve or deny your request for an access token. You'll know when your request has been approved when you get a private message with an access token tied to your account.</p>
<p>{{SITE_TITLE}} administrators will review and approve or deny your request for an access token. You'll know when your request has been approved when you get a private message with an access token tied to your account.</p>
<p>DO NOT reveal your Client ID or Access Token. Anyone with these information will be able to pretend to be you. You are responsible for keeping them a secret!</p>
<h2>Step 2: Using the Access Token</h2>
<p>To use the access token, include the following header in subsequent API requests to {{SITE_NAME}}: <code>Authorization: access_token_goes_here</code></p>
<p>To use the access token, include the following header in subsequent API requests to {{SITE_TITLE}}: <code>Authorization: access_token_goes_here</code></p>
<p>Python example:</p>
<pre> import requests
@ -63,25 +63,25 @@
</pre>
<h1>API Guide for Applications</h1>
<pre></pre>
<p>The OAuth2 authorization flow is used to enable users to authorize third-party applications to access their {{SITE_NAME}} account without having to provide their login information to the application.</p>
<p>The OAuth2 authorization flow is used to enable users to authorize third-party applications to access their {{SITE_TITLE}} account without having to provide their login information to the application.</p>
<p>This page explains how to obtain API application keys, how to prompt a user for authorization, and how to obtain and use access tokens. </p>
<h2>Step 1: Create your Application</h2>
<p>In the <a href="/settings/apps">apps tab of {{SITE_NAME}} settings</a>, fill in and submit the form to request new API keys. You will need:</p>
<p>In the <a href="/settings/apps">apps tab of {{SITE_TITLE}} settings</a>, fill in and submit the form to request new API keys. You will need:</p>
<ul>
<li>an application name</li>
<li>a Redirect URI. May not use HTTP unless using localhost (use HTTPS instead).</li>
<li>a brief description of what your application is intended to do</li>
</ul>
<p>Don't worry too much about accuracy; you will be able to change all of these later.</p>
<p>{{SITE_NAME}} administrators will review and approve or deny your request for API keys. You'll know when your request has been approved when you get a private message with an access token tied to your account.</p>
<p>{{SITE_TITLE}} administrators will review and approve or deny your request for API keys. You'll know when your request has been approved when you get a private message with an access token tied to your account.</p>
<p>DO NOT reveal your Client ID or Access Token. Anyone with these information will be able to pretend to be you. You are responsible for keeping them a secret!</p>
<h2>Step 2: Prompt Your User for Authorization</h2>
<p>Send your user to <code>{{SITE_FULL}}/authorize/?client_id=YOUR_CLIENT_ID</code></p>
<p>If done correctly, the user will see that your application wants to access their {{SITE_NAME}} account, and be prompted to approve or deny the request.</p>
<p>If done correctly, the user will see that your application wants to access their {{SITE_TITLE}} account, and be prompted to approve or deny the request.</p>
<h2>Step 3: Catch the redirect</h2>
<p>The user clicks "Authorize". {{SITE_NAME}} will redirect the user's browser to GET the designated redirect URI. The access token URL parameter will be included in the redirect, which your server should process.</p>
<p>The user clicks "Authorize". {{SITE_TITLE}} will redirect the user's browser to GET the designated redirect URI. The access token URL parameter will be included in the redirect, which your server should process.</p>
<h2>Step 4: Using the Access Token</h2>
<p>To use the access token, include the following header in subsequent API requests to {{SITE_NAME}}: <code>Authorization: access_token_goes_here</code></p>
<p>To use the access token, include the following header in subsequent API requests to {{SITE_TITLE}}: <code>Authorization: access_token_goes_here</code></p>
<p>Python example:</p>
<pre> import requests

View file

@ -10,7 +10,7 @@
<meta name="author" content="">
<title>{% block pagetitle %}{{SITE_NAME}}{% endblock %}</title>
<title>{% block pagetitle %}{{SITE_TITLE}}{% endblock %}</title>
{% if v %}
@ -94,7 +94,7 @@
<div class="splash-overlay"></div>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_NAME}}/cover.webp?v=1014"></img>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
</div>
</div>

View file

@ -9,7 +9,7 @@
<meta name="author" content="">
<link id="favicon" rel="icon" type="image/png" href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015">
<link id="favicon" rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
<title>Chat</title>
@ -184,7 +184,7 @@
</div>
<input id="vid" type="hidden" value="{{v.id}}">
<input id="site_name" type="hidden" value="{{SITE_NAME}}">
<input id="site_id" type="hidden" value="{{SITE_ID}}">
<input id="slurreplacer" type="hidden" value="{{v.slurreplacer}}">
<script src="/chat.js?v=16"></script>

View file

@ -187,7 +187,7 @@
{% if c.is_pinned %}
<i id='pinned-{{c.id}}'class="fas fa-thumbtack fa-rotate--45 text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Pinned by @{{c.is_pinned}}" {% if c.is_pinned_utc %}onmouseover="pinned_timestamp('pinned-{{c.id}}')" data-timestamp={{c.is_pinned_utc}} {% endif %}></i>
{% endif %}
{% if c.distinguish_level and not c.ghost %}<i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{SITE_NAME}} Admin, speaking officially"></i>{% endif %}
{% if c.distinguish_level and not c.ghost %}<i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{SITE_TITLE}} Admin, speaking officially"></i>{% endif %}
{% if c.is_op %}<i class="fas fa-microphone-stand text-info" data-bs-toggle="tooltip" data-bs-placement="bottom" title="OP"></i>{% endif %}
{% if c.is_bot %}<i class="fas fa-robot text-info" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Bot"></i>{% endif %}
{% if c.is_blocking %}<i class="fas fa-user-minus text-warning" data-bs-toggle="tooltip" data-bs-placement="bottom" title="You're blocking this user, but you can see this comment because you're an admin"></i>{% endif %}
@ -790,9 +790,9 @@
<div class="h4 d-md-none">Delete comment?</div>
<p class="d-none d-md-block">Your comment will be deleted everywhere on {{SITE_NAME}}.</p>
<p class="d-none d-md-block">Your comment will be deleted everywhere on {{SITE_TITLE}}.</p>
<p class="text-muted d-md-none">Your comment will be deleted everywhere on {{SITE_NAME}}.</p>
<p class="text-muted d-md-none">Your comment will be deleted everywhere on {{SITE_TITLE}}.</p>
<button id="deleteCommentButton" class="btn btn-danger btn-block mt-5" data-bs-dismiss="modal">Delete comment</button>

View file

@ -1,7 +1,7 @@
{% extends "default.html" %}
{% block title %}
<title>{{SITE_NAME}} - Contact</title>
<title>{{SITE_TITLE}} - Contact</title>
{% endblock %}
@ -19,9 +19,9 @@
</div>
{% endif %}
<h1 class="article-title">Contact {{SITE_NAME}} Admins</h1>
<h1 class="article-title">Contact {{SITE_TITLE}} Admins</h1>
<p>Use this form to contact {{SITE_NAME}} Admins.</p>
<p>Use this form to contact {{SITE_TITLE}} Admins.</p>
<form id="contactform" action="/send_admin" method="post" enctype="multipart/form-data">
<label class="mt-3">Your Email</label>
{% if v and v.email %}

View file

@ -38,16 +38,16 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="thumbnail" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta name="thumbnail" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<link rel="icon" type="image/png" href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015">
<link rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
{% block title %}
<title>{{SITE_NAME}}</title>
<title>{{SITE_TITLE}}</title>
<meta property="og:type" content="article">
<meta property="og:title" content="{{SITE_NAME}}">
<meta property="og:title" content="{{SITE_TITLE}}">
<meta property="og:site_name" content="{{request.host}}">
<meta property="og:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta property="og:url" content="{{SITE_FULL}}{{request.full_path}}">
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
<meta property="og:author" name="author" content="{{SITE_FULL}}">
@ -55,10 +55,10 @@
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="{{SITE_FULL}}">
<meta name="twitter:title" content="{{SITE_NAME}}">
<meta name="twitter:title" content="{{SITE_TITLE}}">
<meta name="twitter:creator" content="{{SITE_FULL}}">
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
<meta name="twitter:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta name="twitter:url" content="{{SITE_FULL}}{{request.full_path}}">
{% endblock %}
@ -67,12 +67,12 @@
<meta name="format-detection" content="telephone=no">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015">
<link rel="manifest" href="/assets/manifest_{{SITE_NAME}}.json?v=1">
<link rel="mask-icon" href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015">
<link rel="shortcut icon" href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015">
<meta name="apple-mobile-web-app-title" content="{{SITE_NAME}}">
<meta name="application-name" content="{{SITE_NAME}}">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
<link rel="manifest" href="/assets/manifest_{{SITE_ID}}.json?v=1">
<link rel="mask-icon" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
<link rel="shortcut icon" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
<meta name="apple-mobile-web-app-title" content="{{SITE_TITLE}}">
<meta name="application-name" content="{{SITE_TITLE}}">
<meta name="msapplication-TileColor" content="#{{config('DEFAULT_COLOR')}}">
<meta name="msapplication-config" content="/assets/browserconfig.xml?v=2">
<meta name="theme-color" content="#{{config('DEFAULT_COLOR')}}">
@ -82,127 +82,127 @@
<link
rel="apple-touch-startup-image"
sizes="320x480"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="640x960"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-icon"
sizes="640x1136"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-icon"
sizes="750x1334"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="768x1004"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="768x1024"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="828x1792"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1024x748"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1024x768"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1125x2436"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1242x2208"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1242x2688"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1334x750"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1536x2008"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1536x2048"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1668x2224"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="1792x828"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="2048x1496"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="2048x1536"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="2048x2732"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="2208x1242"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="2224x1668"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="2436x1125"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="2668x1242"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
<link
rel="apple-touch-startup-image"
sizes="2737x2048"
href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015"
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
>
{% block fixedMobileBarJS %}
@ -218,7 +218,7 @@
<img alt="/h/{{sub.name}} banner" class="primary_banner" role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" onclick="expandDesktopImage('{{sub.banner_url}}')" loading="lazy" src="{{sub.banner_url}}" width=100% style="object-fit:cover;max-height:25vw">
{% else %}
<a href="/">
<img alt="site banner" class="primary_banner" src="/assets/images/{{SITE_NAME}}/banner.webp?v=1046" width="100%">
<img alt="site banner" class="primary_banner" src="/assets/images/{{SITE_ID}}/banner.webp?v=1046" width="100%">
</a>
{% endif %}
{% endif %}
@ -258,7 +258,7 @@
</div>
{% block sidebar %}
{% if home or sub and p %}
{% include "sidebar_" + SITE_NAME + ".html" %}
{% include "sidebar_" + SITE_ID + ".html" %}
{% endif %}
{% endblock %}
</div>

View file

@ -17,9 +17,9 @@
<div class="h4 d-md-none">Delete post?</div>
<p class="d-none d-md-block">Your post will be deleted everywhere on {{SITE_NAME}}.</p>
<p class="d-none d-md-block">Your post will be deleted everywhere on {{SITE_TITLE}}.</p>
<p class="text-muted d-md-none">Your post will be deleted everywhere on {{SITE_NAME}}.</p>
<p class="text-muted d-md-none">Your post will be deleted everywhere on {{SITE_TITLE}}.</p>
<button id="deletePostButton" class="btn btn-danger btn-block mt-5" data-bs-dismiss="modal">Delete post</button>

View file

@ -20,7 +20,7 @@
</td>
</tr>
</table>
<p>Please note that {{SITE_NAME}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<p>Please note that {{SITE_TITLE}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<div class="overflow-x-auto"><table class="body-sub" role="presentation">
<tr>
<td>

View file

@ -369,7 +369,7 @@
</style>
</head>
<body>
<span class="preheader">{% block preheader %}Thanks for joining {{SITE_NAME}}! Please take a sec to verify the email you used to sign up.{% endblock %}</span>
<span class="preheader">{% block preheader %}Thanks for joining {{SITE_TITLE}}! Please take a sec to verify the email you used to sign up.{% endblock %}</span>
<div class="overflow-x-auto"><table class="email-wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr>
<td align="center">
@ -377,7 +377,7 @@
<tr>
<td class="email-masthead">
<a href="/" class="f-fallback email-masthead_name">
{{SITE_NAME}}
{{SITE_TITLE}}
</a>
</td>
</tr>

View file

@ -2,10 +2,10 @@
{% block title %}Verify Your Email{% endblock %}</h1>
{% block preheader %}Verify your new {{SITE_NAME}} email.{% endblock %}
{% block preheader %}Verify your new {{SITE_TITLE}} email.{% endblock %}
{% block content %}
<p>You told us you wanted to change your {{SITE_NAME}} account email. To finish this process, please verify your new email address:</p>
<p>You told us you wanted to change your {{SITE_TITLE}} account email. To finish this process, please verify your new email address:</p>
<div class="overflow-x-auto"><table class="body-action" align="center" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr>
<td align="center">
@ -42,7 +42,7 @@
</td>
</tr>
</table>
<p>Please note that {{SITE_NAME}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<p>Please note that {{SITE_TITLE}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<div class="overflow-x-auto"><table class="body-sub" role="presentation">
<tr>
<td>

View file

@ -1,9 +1,9 @@
{% extends "email/default.html" %}
{% block title %}Welcome to {{SITE_NAME}}!{% endblock %}</h1>
{% block title %}Welcome to {{SITE_TITLE}}!{% endblock %}</h1>
{% block content %}
<p>Thanks for joining {{SITE_NAME}}. Were happy to have you on board. To get the most out of {{SITE_NAME}}, please verify your account email:</p>
<p>Thanks for joining {{SITE_TITLE}}. Were happy to have you on board. To get the most out of {{SITE_TITLE}}, please verify your account email:</p>
<div class="overflow-x-auto"><table class="body-action" align="center" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr>
<td align="center">
@ -40,7 +40,7 @@
</td>
</tr>
</table>
<p>Please note that {{SITE_NAME}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<p>Please note that {{SITE_TITLE}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<div class="overflow-x-auto"><table class="body-sub" role="presentation">
<tr>
<td>

View file

@ -1,7 +1,7 @@
{% extends "email/default.html" %}
{% block title %}Reset Your Password{% endblock %}
{% block preheader %}Reset your {{SITE_NAME}} password.{% endblock %}
{% block preheader %}Reset your {{SITE_TITLE}} password.{% endblock %}
{% block content %}
<p>To reset your password, click the button below:</p>

View file

@ -1,10 +1,10 @@
{% extends "authforms.html" %}
{% block pagetitle %}{{SITE_NAME}} Password Reset{% endblock %}
{% block pagetitle %}{{SITE_TITLE}} Password Reset{% endblock %}
{% block authtitle %}Reset your password.{% endblock %}
{% block authtext %}If there's an email address associated with your account, you can use it to recover your {{SITE_NAME}} account and change your password.{% endblock %}
{% block authtext %}If there's an email address associated with your account, you can use it to recover your {{SITE_TITLE}} account and change your password.{% endblock %}
{% block content %}

View file

@ -1,6 +1,6 @@
{% extends "default.html" %}
{% block title %}
<title>{{SITE_NAME}} - Formatting</title>
<title>{{SITE_TITLE}} - Formatting</title>
{% endblock %}
@ -63,8 +63,8 @@ Text 2
</tr>
<tr>
<td>Links</td>
<td>[{{SITE_NAME}}]({{SITE_FULL}}/)</td>
<td><a href="/">{{SITE_NAME}}</a></td>
<td>[{{SITE_TITLE}}]({{SITE_FULL}}/)</td>
<td><a href="/">{{SITE_TITLE}}</a></td>
</tr>
<tr>
<td>Images</td>

View file

@ -12,7 +12,7 @@
<div class="navbar navbar-expand-md navbar-light" id="navbar">
<div class="container-fluid" style="padding:0;">
<a href="/" class="navbar-brand mr-auto">
<img alt="header icon" height=33 src="/assets/images/{{SITE_NAME}}/headericon.webp?v=1019">
<img alt="header icon" height=33 src="/assets/images/{{SITE_ID}}/headericon.webp?v=1019">
</a>
{% if sub %}
@ -31,7 +31,7 @@
{% endif %}
</style>
<a href="/" class="flex-grow-1">
<img class="ml-1" id="logo" alt="logo" src="/assets/images/{{SITE_NAME}}/logo.webp?v=1013" width=70>
<img class="ml-1" id="logo" alt="logo" src="/assets/images/{{SITE_ID}}/logo.webp?v=1013" width=70>
</a>
{% endif %}
@ -213,7 +213,7 @@
</li>
{% endif %}
<li class="mt-3">
{% include "sidebar_" + SITE_NAME + ".html" %}
{% include "sidebar_" + SITE_ID + ".html" %}
</li>
</ul>
</div>

View file

@ -164,7 +164,7 @@
{% if request.path == '/' and g.timestamp > session.get('tooltip_last_dismissed',0)+60*60*24*30 and not g.webview %}
<div id="mobile-prompt-container" class="fixed-top">
<div id="mobile-prompt" href="javascript:void(0)" data-bs-toggle="tooltip" data-bs-container="#mobile-prompt-container" data-bs-placement="top" data-bs-trigger="click" data-bs-original-title="Install the {{SITE_NAME}} webapp by saving this page to your home screen!"></div>
<div id="mobile-prompt" href="javascript:void(0)" data-bs-toggle="tooltip" data-bs-container="#mobile-prompt-container" data-bs-placement="top" data-bs-trigger="click" data-bs-original-title="Install the {{SITE_TITLE}} webapp by saving this page to your home screen!"></div>
</div>
<script>

View file

@ -14,7 +14,7 @@
<meta name="author" content="">
{% block title %}
<title>Login - {{SITE_NAME}}</title>
<title>Login - {{SITE_TITLE}}</title>
{% endblock %}
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
@ -109,7 +109,7 @@
<div class="splash-overlay"></div>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_NAME}}/cover.webp?v=1014"></img>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
</div>
</div>

View file

@ -11,7 +11,7 @@
<meta name="author" content="">
<title>2-Step Login - {{SITE_NAME}}</title>
<title>2-Step Login - {{SITE_TITLE}}</title>
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=250">
@ -93,7 +93,7 @@
<div class="splash-overlay"></div>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_NAME}}/cover.webp?v=1014"></img>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
</div>
</div>

View file

@ -1,6 +1,6 @@
{% extends "authforms.html" %}
{% block pagetitle %}{{SITE_NAME}} Two-Factor Removal{% endblock %}
{% block pagetitle %}{{SITE_TITLE}} Two-Factor Removal{% endblock %}
{% block authtitle %}Remove the two-factor authentication from your account.{% endblock %}

View file

@ -25,7 +25,7 @@
<input type="submit" class="btn btn-primary" id="auth_button" value="Authorize {{application.app_name}}">
<a href="/" class="btn btn-secondary">No, back to {{SITE_NAME}}</a>
<a href="/" class="btn btn-secondary">No, back to {{SITE_TITLE}}</a>
</form>

View file

@ -1,6 +1,6 @@
{% extends "authforms.html" %}
{% block pagetitle %}{{SITE_NAME}} Password Reset{% endblock %}
{% block pagetitle %}{{SITE_TITLE}} Password Reset{% endblock %}
{% block authtitle %}Change your password.{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "default.html" %}
{% block title %}
<title>{{SITE_NAME}} Rules</title>
<title>{{SITE_TITLE}} Rules</title>
{% endblock %}
{% block content %}

View file

@ -3,7 +3,7 @@
{% block pagetype %}search{% endblock %}
{% block title %}
<title>Search for "{{query}}" - {{SITE_NAME}}"</title> <meta name="description" content="{{total}} result{{'s' if total != 1 else ''}}">
<title>Search for "{{query}}" - {{SITE_TITLE}}"</title> <meta name="description" content="{{total}} result{{'s' if total != 1 else ''}}">
{% endblock %}
{% block navbar %}

View file

@ -12,13 +12,13 @@
<meta name="author" content="">
<link rel="icon" type="image/png" href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015">
<link rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
<title>{% block pagetitle %}Settings - {{SITE_NAME}}{% endblock %}</title>
<title>{% block pagetitle %}Settings - {{SITE_TITLE}}{% endblock %}</title>
<meta property="og:type" content="article">
<meta property="og:title" content="{{SITE_NAME}}">
<meta property="og:title" content="{{SITE_TITLE}}">
<meta property="og:site_name" content="{{request.host}}">
<meta property="og:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta property="og:url" content="{{request.host}}">
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
<meta property="og:author" name="author" content="{{SITE_FULL}}">
@ -26,10 +26,10 @@
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="{{SITE_FULL}}">
<meta name="twitter:title" content="{{SITE_NAME}}">
<meta name="twitter:title" content="{{SITE_TITLE}}">
<meta name="twitter:creator" content="{{SITE_FULL}}">
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
<meta name="twitter:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta name="twitter:url" content="{{request.host}}">
@ -172,7 +172,7 @@
<div class="text-small text-muted">Or enter this code: {{mfa_secret}}</div>
</div>
<p>
<span class="font-weight-bold">Step 2:</span> Enter the six-digit code generated in the authenticator app and your {{SITE_NAME}} account password.
<span class="font-weight-bold">Step 2:</span> Enter the six-digit code generated in the authenticator app and your {{SITE_TITLE}} account password.
</p>
<label for="2fa_input">6-digit code</label>
<input autocomplete="off" type="text" class="form-control mb-2" id="2fa_input" name="2fa_token" placeholder="# # # # # #" required>
@ -195,7 +195,7 @@
<div class="alert alert-warning" role="alert">
<i class="fas fa-info-circle"></i>
To disable two-step login, please enter your {{SITE_NAME}} account password and the 6-digit code generated in your authentication app. If you no longer have your two-step device, <a href="/lost_2fa">click here</a>.
To disable two-step login, please enter your {{SITE_TITLE}} account password and the 6-digit code generated in your authentication app. If you no longer have your two-step device, <a href="/lost_2fa">click here</a>.
</div>
<label for="2fa_input_password">Password</label>

View file

@ -12,13 +12,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author" content="">
<meta name="thumbnail" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<link rel="icon" type="image/png" href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015">
<meta name="thumbnail" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<link rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
<meta property="og:type" content="article">
<meta property="og:title" content="{{SITE_NAME}}">
<meta property="og:title" content="{{SITE_TITLE}}">
<meta property="og:site_name" content="{{request.host}}">
<meta property="og:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta property="og:url" content="{{SITE_FULL}}{{request.full_path}}">
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
<meta property="og:author" name="author" content="{{SITE_FULL}}">
@ -26,15 +26,15 @@
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="{{SITE_FULL}}">
<meta name="twitter:title" content="{{SITE_NAME}}">
<meta name="twitter:title" content="{{SITE_TITLE}}">
<meta name="twitter:creator" content="{{SITE_FULL}}">
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
<meta name="twitter:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta name="twitter:url" content="{{SITE_FULL}}{{request.full_path}}">
<title>{% block pagetitle %}{{SITE_NAME}}{% endblock %}</title>
<title>{% block pagetitle %}{{SITE_TITLE}}{% endblock %}</title>
{% if v %}

View file

@ -1,7 +1,7 @@
{% extends "settings.html" %}
{% block title %}
<title>{{SITE_NAME}} - FAQ</title>
<title>{{SITE_TITLE}} - FAQ</title>
{% endblock %}

View file

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Block Settings - {{SITE_NAME}}{% endblock %}
{% block pagetitle %}Block Settings - {{SITE_TITLE}}{% endblock %}
{% block content %}

View file

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Custom CSS - {{SITE_NAME}}{% endblock %}
{% block pagetitle %}Custom CSS - {{SITE_TITLE}}{% endblock %}
{% block content %}

View file

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Profile Settings - {{SITE_NAME}}{% endblock %}
{% block pagetitle %}Profile Settings - {{SITE_TITLE}}{% endblock %}
{% block content %}

View file

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Profile Settings - {{SITE_NAME}}{% endblock %}
{% block pagetitle %}Profile Settings - {{SITE_TITLE}}{% endblock %}
{% block content %}
@ -220,7 +220,7 @@
<h2 class="h5" name="referral">RSS Feed</h2>
<p class="text-small text-muted">Subscribe to the {{SITE_NAME}} RSS feed.</p>
<p class="text-small text-muted">Subscribe to the {{SITE_TITLE}} RSS feed.</p>
<div class="settings-section rounded">
@ -240,7 +240,7 @@
<h2 class="h5" id="bio" name="bio">Your Profile</h2>
<p class="text-small text-muted">Edit how others see you on {{SITE_NAME}}.</p>
<p class="text-small text-muted">Edit how others see you on {{SITE_TITLE}}.</p>
<div class="settings-section rounded mb-0">

View file

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Custom profilecss - {{SITE_NAME}}{% endblock %}
{% block pagetitle %}Custom profilecss - {{SITE_TITLE}}{% endblock %}
{% block content %}

View file

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Security Settings - {{SITE_NAME}}{% endblock %}
{% block pagetitle %}Security Settings - {{SITE_TITLE}}{% endblock %}
{% block content %}
@ -163,7 +163,7 @@
<h2 class="h5">Log Out Everywhere</h2>
<p class="text-small text-muted">Log all other devices out of your {{SITE_NAME}} account.</p>
<p class="text-small text-muted">Log all other devices out of your {{SITE_TITLE}} account.</p>
<div class="settings-section rounded">
@ -218,7 +218,7 @@
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Delete your {{SITE_NAME}} account</h5>
<h5 class="modal-title">Delete your {{SITE_TITLE}} account</h5>
<button class="close" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true"><i class="far fa-times"></i></span>
</button>

View file

@ -1,7 +1,7 @@
{% extends "default.html" %}
{% block title %}
<title>{{SITE_NAME}} Sidebar</title>
<title>{{SITE_TITLE}} Sidebar</title>
{% endblock %}
{% block content %}
@ -13,7 +13,7 @@
<h1 class="text-muted text-uppercase">Sidebar</h5>
<div id="sidebar" class="my-3">
{% include "sidebar_" + SITE_NAME + ".html" %}
{% include "sidebar_" + SITE_ID + ".html" %}
</div>
</div>
{% endblock %}

View file

@ -29,7 +29,7 @@
optimize for light, not heat</a>; this is a group effort, and all commentators are asked to do their part.<br/><br/>
The weekly <a href="https://en.wikipedia.org/wiki/Culture_war">Culture War</a> threads host the most
controversial topics and are the most visible aspect of TheMotte. However, many other topics are
controversial topics and are the most visible aspect of The Motte. However, many other topics are
appropriate here. We encourage people to post anything related to science, politics, or philosophy;
if in doubt, post!<br/><br/>
@ -49,7 +49,7 @@
the more easily defended motte. In Shackel's words, "The Motte represents the defensible but undesired
propositions to which one retreats when hard pressed."<br/><br/>
On TheMotte, always attempt to remain inside your defensible territory, even if you are not being pressed.
On The Motte, always attempt to remain inside your defensible territory, even if you are not being pressed.
</p>

View file

@ -12,9 +12,9 @@
<meta name="author" content="">
<meta property="og:type" content="article">
<meta property="og:title" content="{{SITE_NAME}}">
<meta property="og:title" content="{{SITE_TITLE}}">
<meta property="og:site_name" content="{{request.host}}">
<meta property="og:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta property="og:url" content="{{request.host}}">
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
<meta property="og:author" name="author" content="{{SITE_FULL}}">
@ -22,13 +22,13 @@
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="{{SITE_FULL}}">
<meta name="twitter:title" content="{{SITE_NAME}}">
<meta name="twitter:title" content="{{SITE_TITLE}}">
<meta name="twitter:creator" content="{{SITE_FULL}}">
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
<meta name="twitter:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta name="twitter:url" content="{{request.host}}">
<title>{% if ref_user %}{{ref_user.username}} invites you to {{SITE_NAME}}{% else %}Sign up - {{SITE_NAME}}{% endif %}</title>
<title>{% if ref_user %}{{ref_user.username}} invites you to {{SITE_TITLE}}{% else %}Sign up - {{SITE_TITLE}}{% endif %}</title>
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=250">
@ -64,7 +64,7 @@
{% if ref_user %}
<h1 class="h2">@{{ref_user.username}} has invited you!</h1>
<p class="text-muted mb-md-2">Looks like someone wants you to join {{SITE_NAME}}.</p>
<p class="text-muted mb-md-2">Looks like someone wants you to join {{SITE_TITLE}}.</p>
{% else %}
<h1 class="h2">Create your account.</h1>
<p class="text-muted mb-md-2">No email address required.</p>
@ -140,7 +140,7 @@
<div class="splash-overlay"></div>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_NAME}}/cover.webp?v=1014"></img>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
</div>
</div>

View file

@ -13,9 +13,9 @@
<meta name="author" content="">
<meta property="og:type" content="article">
<meta property="og:title" content="{{SITE_NAME}}">
<meta property="og:title" content="{{SITE_TITLE}}">
<meta property="og:site_name" content="{{request.host}}">
<meta property="og:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta property="og:url" content="{{request.host}}">
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
<meta property="og:author" name="author" content="{{SITE_FULL}}">
@ -23,13 +23,13 @@
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="{{SITE_FULL}}">
<meta name="twitter:title" content="{{SITE_NAME}}">
<meta name="twitter:title" content="{{SITE_TITLE}}">
<meta name="twitter:creator" content="{{SITE_FULL}}">
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
<meta name="twitter:image" content="/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015">
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
<meta name="twitter:url" content="{{request.host}}">
<title>{% if ref_user %}{{ref_user.username}} invites you to {{SITE_NAME}}{% else %}{{SITE_NAME}}{% endif %}</title>
<title>{% if ref_user %}{{ref_user.username}} invites you to {{SITE_TITLE}}{% else %}{{SITE_TITLE}}{% endif %}</title>
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=250">
@ -84,7 +84,7 @@
<div class="splash-overlay"></div>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_NAME}}/cover.webp?v=1014"></img>
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
</div>
</div>

View file

@ -1,6 +1,6 @@
{% extends "default.html" %}
{% block pagetitle %}Edit {{SITE_NAME}} sidebar{% endblock %}
{% block pagetitle %}Edit {{SITE_TITLE}} sidebar{% endblock %}
{% block content %}

View file

@ -34,7 +34,7 @@
<meta property="og:type" content="article">
{% if comment_info and not comment_info.is_banned and not comment_info.deleted_utc %}
<title>{{'@'+comment_info.author_name}} comments on "{{p.plaintitle(v)}} - {{SITE_NAME}}"</title>
<title>{{'@'+comment_info.author_name}} comments on "{{p.plaintitle(v)}} - {{SITE_TITLE}}"</title>
<meta property="og:article:author" content="{{'@'+comment_info.author_name}}">
@ -42,8 +42,8 @@
{% if comment_info.edited_utc %}<meta property="article:modified_time" content="{{comment_info.edited_string}}">{% endif %}
<meta property="og:description" name="description" content="{{comment_info.plainbody(v)}}">
<meta property="og:author" name="author" content="{{'@'+comment_info.author_name}}">
<meta property="og:title" content="{{'@'+comment_info.author_name}} comments on {{p.plaintitle(v)}} - {{SITE_NAME}}">
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{SITE_NAME}}/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015{% endif %}">
<meta property="og:title" content="{{'@'+comment_info.author_name}} comments on {{p.plaintitle(v)}} - {{SITE_TITLE}}">
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{SITE_ID}}/assets/images/{{SITE_ID}}/site_preview.webp?v=1015{% endif %}">
{% if p.is_video %}
<meta property="og:video" content="{{p.realurl(v)}}">
{% endif %}
@ -52,14 +52,14 @@
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="{{SITE_FULL}}">
<meta name="twitter:title" content="{{'@'+comment_info.author_name}} comments on {{p.plaintitle(v)}} - {{SITE_NAME}}">
<meta name="twitter:title" content="{{'@'+comment_info.author_name}} comments on {{p.plaintitle(v)}} - {{SITE_TITLE}}">
<meta name="twitter:creator" content="{{'@'+comment_info.author_name}}">
<meta name="twitter:description" content="{{comment_info.plainbody(v)}}">
<meta name="twitter:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{SITE_NAME}}/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015{% endif %}">
<meta name="twitter:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{SITE_ID}}/assets/images/{{SITE_ID}}/site_preview.webp?v=1015{% endif %}">
<meta name="twitter:url" content="{{p.permalink}}">
{% else %}
<title>{{p.plaintitle(v)}} - {{SITE_NAME}}</title>
<title>{{p.plaintitle(v)}} - {{SITE_TITLE}}</title>
{% if p.author %}<meta property="og:article:author" content="{{'@'+p.author_name}}">{% endif %}
@ -67,8 +67,8 @@
{% if p.edited_utc %}<meta property="article:modified_time" content="{{p.edited_string}}">{% endif %}
<meta property="og:description" name="description" content="{{p.plainbody(v)}}">
{% if p.author %}<meta property="og:author" name="author" content="{{'@'+p.author_name}}">{% endif %}
<meta property="og:title" content="{{p.plaintitle(v)}} - {{SITE_NAME}}">
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{SITE_NAME}}/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015{% endif %}">
<meta property="og:title" content="{{p.plaintitle(v)}} - {{SITE_TITLE}}">
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{SITE_ID}}/assets/images/{{SITE_ID}}/site_preview.webp?v=1015{% endif %}">
{% if p.url and p.is_video %}
<meta property="og:video" content="{{p.realurl(v)}}">
{% endif %}
@ -77,10 +77,10 @@
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="{{SITE_FULL}}">
<meta name="twitter:title" content="{{p.plaintitle(v)}} - {{SITE_NAME}}">
<meta name="twitter:title" content="{{p.plaintitle(v)}} - {{SITE_TITLE}}">
{% if p.author %}<meta name="twitter:creator" content="{{'@'+p.author_name}}">{% endif %}
<meta name="twitter:description" content="{{p.plainbody(v)}}">
<meta name="twitter:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb %}{{p.thumb_url}}{% else %}{{SITE_NAME}}/assets/images/{{SITE_NAME}}/site_preview.webp?v=1015{% endif %}">
<meta name="twitter:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb %}{{p.thumb_url}}{% else %}{{SITE_ID}}/assets/images/{{SITE_ID}}/site_preview.webp?v=1015{% endif %}">
<meta name="twitter:url" content="{{p.permalink}}">
{% endif %}
@ -165,7 +165,7 @@
{% endif %}
{% if p.is_pinned %}<i class="fas fa-thumbtack fa-rotate--45 fa-fw text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Pinned to profile"></i>{% endif %}
{% if p.distinguish_level %} <i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{SITE_NAME}} Admin, speaking officially"></i>{% endif %}
{% if p.distinguish_level %} <i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{SITE_TITLE}} Admin, speaking officially"></i>{% endif %}
{% if p.is_bot %} <i class="fas fa-robot text-info" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Bot"></i>{% endif %}
{% if p.over_18 %}<span class="badge badge-danger text-small-extra mr-1">+18</span>{% endif %}
{% if p.private %}<span class="badge border-warning border-1 text-small-extra">Draft</span>{% endif %}

View file

@ -179,7 +179,7 @@
<i id='pinned-{{p.id}}' class="fas fa-thumbtack fa-rotate--45 text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Pinned by @{{p.stickied}}" {% if p.stickied_utc %}onmouseover="pinned_timestamp('pinned-{{p.id}}')" data-timestamp={{p.stickied_utc}} {% endif %}></i>
{% endif %}
{% if p.distinguish_level %}<i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{SITE_NAME}} Admin, speaking officially"></i>{% endif %}
{% if p.distinguish_level %}<i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{SITE_TITLE}} Admin, speaking officially"></i>{% endif %}
{% if p.is_pinned and request.path.startswith('/@') %}<i class="fas fa-thumbtack fa-rotate--45 text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Pinned to profile"></i>{% endif %}
{% if p.over_18 %}<span class="badge badge-danger text-small-extra mr-1">+18</span>{% endif %}
{% if p.is_bot %} <i class="fas fa-robot text-info" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Bot"></i>{% endif %}

View file

@ -10,10 +10,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author" content="">
<link rel="icon" type="image/png" href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015">
<link rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
{% block title %}
<title>Create a post - {{SITE_NAME}}</title>
<title>Create a post - {{SITE_TITLE}}</title>
{% endblock %}

View file

@ -9,9 +9,9 @@
<link rel="stylesheet" href="/@{{u.username}}/profilecss">
{% endif %}
<title>{{u.username}}'s profile - {{SITE_NAME}}</title>
<title>{{u.username}}'s profile - {{SITE_TITLE}}</title>
<meta property="og:article:author" content="@{{u.username}}">
<meta property="article:section" content="{{u.username}}'s profile - {{SITE_NAME}}">
<meta property="article:section" content="{{u.username}}'s profile - {{SITE_TITLE}}">
<meta property="article:published_time" content="{{u.created_date}}">
<meta property="og:description" name="description" content="Joined {{u.created_date}} - {% if u.stored_subscriber_count >=1 and not u.is_private and not u.is_nofollow %}{{u.stored_subscriber_count}} Followers - {% endif %}{% if not u.is_private %} {{0 if u.shadowbanned else u.post_count}} Posts - {{0 if u.shadowbanned else u.comment_count}} Comments - {% endif %}{{u.bio}}">
<meta property="og:author" name="author" content="@{{u.username}}">
@ -22,7 +22,7 @@
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="{{SITE_FULL}}">
<meta name="twitter:title" content="{{u.username}}'s profile - {{SITE_NAME}}">
<meta name="twitter:title" content="{{u.username}}'s profile - {{SITE_TITLE}}">
<meta name="twitter:creator" content="@{{u.username}}">
<meta name="twitter:description" content="Joined {{u.created_date}} - {% if u.stored_subscriber_count >=1 and not u.is_private and not u.is_nofollow %}{{u.stored_subscriber_count}} Followers -{% endif %} {% if not u.is_private %} {{0 if u.shadowbanned else u.post_count}} Posts - {{0 if u.shadowbanned else u.comment_count}} Comments - {% endif %}{{u.bio}}">
<meta name="twitter:image" content="{{u.banner_url}}">

View file

@ -25,7 +25,7 @@
<div class="font-weight-bold text-muted">Account Reserved</div>
<div class="text-muted">The username @{{u.username}} has been pre-emptively reserved for: {{u.reserved}}</div>
<div class="text-muted">If that's you, or if you are their authorized representative, please contact {{SITE_NAME}} staff in order to obtain access to this account.</div>
<div class="text-muted">If that's you, or if you are their authorized representative, please contact {{SITE_TITLE}} staff in order to obtain access to this account.</div>
</div>
</div>

View file

@ -1,7 +1,7 @@
{% extends "default.html" %}
{% block title %}
<title>{{SITE_NAME}}</title>
<title>{{SITE_TITLE}}</title>
{% endblock %}