diff --git a/app/__init__.py b/app/__init__.py index 49180ce..1fc6341 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -8,7 +8,7 @@ from .constants import ( PermissionLevel, permission_level_string, InfoboxKind, InfoboxHTMLClass, REACTION_EMOJI, MOTD_BANNED_TAGS, - SIG_BANNED_TAGS, + SIG_BANNED_TAGS, STRICT_BANNED_TAGS, ) from .lib.babycode import babycode_to_html, EMOJI, BABYCODE_VERSION from datetime import datetime @@ -149,6 +149,7 @@ def create_app(): from app.routes.api import bp as api_bp from app.routes.posts import bp as posts_bp from app.routes.hyperapi import bp as hyperapi_bp + from app.routes.guides import bp as guides_bp app.register_blueprint(app_bp) app.register_blueprint(topics_bp) app.register_blueprint(threads_bp) @@ -157,6 +158,7 @@ def create_app(): app.register_blueprint(api_bp) app.register_blueprint(posts_bp) app.register_blueprint(hyperapi_bp) + app.register_blueprint(guides_bp) app.config['SESSION_COOKIE_SECURE'] = True @@ -212,6 +214,10 @@ def create_app(): def babycode_filter(markup): return babycode_to_html(markup).result + @app.template_filter('babycode_strict') + def babycode_strict_filter(markup): + return babycode_to_html(markup, STRICT_BANNED_TAGS).result + @app.template_filter('extract_h2') def extract_h2(content): import re diff --git a/app/constants.py b/app/constants.py index eff5cd9..b88b073 100644 --- a/app/constants.py +++ b/app/constants.py @@ -48,11 +48,16 @@ REACTION_EMOJI = [ ] MOTD_BANNED_TAGS = [ - 'img', 'spoiler', '@mention' + 'img', 'spoiler', '@mention', ] SIG_BANNED_TAGS = [ - '@mention' + '@mention', +] + +STRICT_BANNED_TAGS = [ + 'img', 'spoiler', '@mention', + 'big', 'small', 'center', 'right', 'color', ] def permission_level_string(perm): diff --git a/app/routes/app.py b/app/routes/app.py index 4937d08..5db25cd 100644 --- a/app/routes/app.py +++ b/app/routes/app.py @@ -5,8 +5,3 @@ bp = Blueprint("app", __name__, url_prefix = "/") @bp.route("/") def index(): return redirect(url_for("topics.all_topics")) - - -@bp.route("/babycode") -def babycode_guide(): - return render_template('babycode.html') diff --git a/app/routes/guides.py b/app/routes/guides.py new file mode 100644 index 0000000..515d7ab --- /dev/null +++ b/app/routes/guides.py @@ -0,0 +1,13 @@ +from flask import Blueprint, render_template + +bp = Blueprint('guides', __name__, url_prefix='/guides/') + + +@bp.get('/babycode') +def babycode(): + return render_template('guides/babycode.html') + + +@bp.get('/contact') +def contact(): + return render_template('guides/contact.html') diff --git a/app/templates/base.html b/app/templates/base.html index e02ff72..fc1ea87 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -23,9 +23,7 @@ {% endif %} {% endwith %} {% block content %}{% endblock %} - + {% include 'common/footer.html' %} diff --git a/app/templates/common/footer.html b/app/templates/common/footer.html new file mode 100644 index 0000000..aa81040 --- /dev/null +++ b/app/templates/common/footer.html @@ -0,0 +1,6 @@ + diff --git a/app/templates/common/macros.html b/app/templates/common/macros.html index bc45a75..0ae3232 100644 --- a/app/templates/common/macros.html +++ b/app/templates/common/macros.html @@ -99,7 +99,7 @@ - babycode guide + babycode guide {% if banned_tags %}
Forbidden tags:
diff --git a/app/templates/babycode.html b/app/templates/guides/babycode.html similarity index 99% rename from app/templates/babycode.html rename to app/templates/guides/babycode.html index 144aa59..c89a22c 100644 --- a/app/templates/babycode.html +++ b/app/templates/guides/babycode.html @@ -1,4 +1,3 @@ - {% extends 'base.html' %} {% block title %}babycode guide{% endblock %} {% block content %} diff --git a/app/templates/guides/contact.html b/app/templates/guides/contact.html new file mode 100644 index 0000000..3b87591 --- /dev/null +++ b/app/templates/guides/contact.html @@ -0,0 +1,13 @@ +{% extends 'base.html' %} +{% block title %}contact us{% endblock %} +{% block content %} +
+

Contact

+ {% if config.ADMIN_CONTACT_INFO %} +

The administrators of {{ config.SITE_NAME }} provide the following contact information:

+
{{ config.ADMIN_CONTACT_INFO | babycode_strict | safe }}
+ {% else %} +

The administrators of {{ config.SITE_NAME }} did not provide any contact information.

+ {% endif %} +
+{% endblock %} diff --git a/app/templates/users/delete_page.html b/app/templates/users/delete_page.html index e0d715d..8e90a66 100644 --- a/app/templates/users/delete_page.html +++ b/app/templates/users/delete_page.html @@ -4,7 +4,7 @@

Confirm account deletion

Are you sure you want to delete your account on {{ config.SITE_NAME }}? This action is irreversible. Your posts and threads will remain accessible to preserve history but will be de-personalized, showing up as authored by a system user. Posts that @mention you will also mention the system user instead.

-

If you wish for any and all content relating to you to be removed, you will have to ask {{ config.SITE_NAME }}'s administrators separately.

+

If you wish for any and all content relating to you to be removed, you will have to contact {{ config.SITE_NAME }}'s administrators separately.

If you are sure, please confirm your current password below.

diff --git a/config/pyrom_config.toml b/config/pyrom_config.toml index 97a5f3e..d11bfff 100644 --- a/config/pyrom_config.toml +++ b/config/pyrom_config.toml @@ -6,3 +6,8 @@ DISABLE_SIGNUP = false # if true, no one can sign up. MODS_CAN_INVITE = true # if true, allows moderators to create invite links. useless unless DISABLE_SIGNUP to be true. USERS_CAN_INVITE = false # if true, allows users to create invite links. useless unless DISABLE_SIGNUP to be true. + +# contact information, will be shown in /guides/contact +# some babycodes allowed +# forbidden tags: [spoiler], [img], @mention, [big], [small], [center], [right], [color] +ADMIN_CONTACT_INFO = "" diff --git a/data/static/css/style.css b/data/static/css/style.css index 7efaa9e..dfb1bf0 100644 --- a/data/static/css/style.css +++ b/data/static/css/style.css @@ -89,6 +89,16 @@ a:visited { background-color: rgb(143.7039271654, 144.3879625984, 142.8620374016); } +#footer { + padding: 10px; + margin: 0; + display: flex; + justify-content: end; + background-color: rgb(143.7039271654, 144.3879625984, 142.8620374016); + justify-content: space-between; + align-items: baseline; +} + .darkbg { padding-bottom: 10px; padding-left: 10px; diff --git a/data/static/css/theme-otomotone.css b/data/static/css/theme-otomotone.css index 2f26eb0..2250b9e 100644 --- a/data/static/css/theme-otomotone.css +++ b/data/static/css/theme-otomotone.css @@ -89,6 +89,16 @@ a:visited { background-color: #231c23; } +#footer { + padding: 10px; + margin: 0; + display: flex; + justify-content: end; + background-color: #231c23; + justify-content: space-between; + align-items: baseline; +} + .darkbg { padding-bottom: 10px; padding-left: 10px; diff --git a/data/static/css/theme-peachy.css b/data/static/css/theme-peachy.css index 10ec1ea..46fef4a 100644 --- a/data/static/css/theme-peachy.css +++ b/data/static/css/theme-peachy.css @@ -89,6 +89,16 @@ a:visited { background-color: #88486d; } +#footer { + padding: 6px; + margin: 0; + display: flex; + justify-content: end; + background-color: #88486d; + justify-content: space-between; + align-items: baseline; +} + .darkbg { padding-bottom: 6px; padding-left: 6px; diff --git a/sass/_default.scss b/sass/_default.scss index bf68fe4..c3ba7f1 100644 --- a/sass/_default.scss +++ b/sass/_default.scss @@ -206,6 +206,12 @@ $bottomnav_color: $DARK_1 !default; @include navbar($bottomnav_color); } +#footer { + @include navbar($bottomnav_color); + justify-content: space-between; + align-items: baseline; +} + $darkbg_color: $DARK_1 !default; .darkbg { padding-bottom: $MEDIUM_PADDING;