Merge pull request #227 from TLSM/rework-assets
Rework assets to use automatic cachebusting (#127).
This commit is contained in:
commit
9657adbebf
56 changed files with 237 additions and 191 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 3.8 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 11 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.7 KiB |
|
@ -4,6 +4,7 @@ from files.__main__ import Base, app
|
||||||
from os import environ
|
from os import environ
|
||||||
from files.helpers.lazy import lazy
|
from files.helpers.lazy import lazy
|
||||||
from files.helpers.const import *
|
from files.helpers.const import *
|
||||||
|
from files.helpers.assetcache import assetcache_path
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from json import loads
|
from json import loads
|
||||||
|
|
||||||
|
@ -61,7 +62,7 @@ class Badge(Base):
|
||||||
@property
|
@property
|
||||||
@lazy
|
@lazy
|
||||||
def path(self):
|
def path(self):
|
||||||
return f"/assets/images/badges/{self.badge_id}.webp"
|
return assetcache_path(f'images/badges/{self.badge_id}.webp')
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@lazy
|
@lazy
|
||||||
|
|
|
@ -9,6 +9,7 @@ from sqlalchemy.orm import relationship, deferred
|
||||||
from files.__main__ import Base
|
from files.__main__ import Base
|
||||||
from files.helpers.const import *
|
from files.helpers.const import *
|
||||||
from files.helpers.lazy import lazy
|
from files.helpers.lazy import lazy
|
||||||
|
from files.helpers.assetcache import assetcache_path
|
||||||
from .flags import Flag
|
from .flags import Flag
|
||||||
from .comment import Comment
|
from .comment import Comment
|
||||||
from flask import g
|
from flask import g
|
||||||
|
@ -266,13 +267,18 @@ class Submission(Base):
|
||||||
@property
|
@property
|
||||||
@lazy
|
@lazy
|
||||||
def thumb_url(self):
|
def thumb_url(self):
|
||||||
if self.over_18: return f"{SITE_FULL}/assets/images/nsfw.webp?v=1"
|
if self.over_18:
|
||||||
elif not self.url: return f"{SITE_FULL}/assets/images/{SITE_ID}/default_text.webp?v=1"
|
return SITE_FULL + assetcache_path('images/nsfw.webp')
|
||||||
|
elif not self.url:
|
||||||
|
return SITE_FULL + assetcache_path(f'images/{SITE_ID}/default_text.webp')
|
||||||
elif self.thumburl:
|
elif self.thumburl:
|
||||||
if self.thumburl.startswith('/'): return SITE_FULL + self.thumburl
|
if self.thumburl.startswith('/'):
|
||||||
|
return SITE_FULL + self.thumburl
|
||||||
return self.thumburl
|
return self.thumburl
|
||||||
elif self.is_youtube or self.is_video: return f"{SITE_FULL}/assets/images/default_thumb_yt.webp?v=1"
|
elif self.is_youtube or self.is_video:
|
||||||
else: return f"{SITE_FULL}/assets/images/default_thumb_link.webp?v=1"
|
return SITE_FULL + assetcache_path('images/default_thumb_yt.webp')
|
||||||
|
else:
|
||||||
|
return SITE_FULL + assetcache_path('images/default_thumb_link.webp')
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@lazy
|
@lazy
|
||||||
|
|
|
@ -19,6 +19,7 @@ from .exiles import *
|
||||||
from .sub_block import *
|
from .sub_block import *
|
||||||
from files.__main__ import app, Base, cache
|
from files.__main__ import app, Base, cache
|
||||||
from files.helpers.security import *
|
from files.helpers.security import *
|
||||||
|
from files.helpers.assetcache import assetcache_path
|
||||||
import random
|
import random
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from os import environ, remove, path
|
from os import environ, remove, path
|
||||||
|
@ -528,16 +529,18 @@ class User(Base):
|
||||||
@property
|
@property
|
||||||
@lazy
|
@lazy
|
||||||
def banner_url(self):
|
def banner_url(self):
|
||||||
if self.bannerurl: return self.bannerurl
|
if self.bannerurl:
|
||||||
else: return f"/assets/images/{SITE_ID}/site_preview.webp?v=1015"
|
return self.bannerurl
|
||||||
|
return assetcache_path(f'images/{SITE_ID}/site_preview.webp')
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@lazy
|
@lazy
|
||||||
def profile_url(self):
|
def profile_url(self):
|
||||||
if self.profileurl:
|
if self.profileurl:
|
||||||
if self.profileurl.startswith('/'): return SITE_FULL + self.profileurl
|
if self.profileurl.startswith('/'):
|
||||||
|
return SITE_FULL + self.profileurl
|
||||||
return self.profileurl
|
return self.profileurl
|
||||||
return f"{SITE_FULL}/assets/images/default-profile-pic.webp?v=1008"
|
return assetcache_path('images/default-profile-pic.webp')
|
||||||
|
|
||||||
@lazy
|
@lazy
|
||||||
def json_popover(self, v):
|
def json_popover(self, v):
|
||||||
|
|
30
files/helpers/assetcache.py
Normal file
30
files/helpers/assetcache.py
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
import os
|
||||||
|
import zlib
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
ASSET_DIR = 'files/assets'
|
||||||
|
ASSET_URL = '/assets/'
|
||||||
|
ASSET_CACHE = defaultdict(lambda: None)
|
||||||
|
|
||||||
|
def assetcache_build(asset_dir):
|
||||||
|
for root, dirs, files in os.walk(asset_dir):
|
||||||
|
for fname in files:
|
||||||
|
fpath = root + '/' + fname
|
||||||
|
relpath = fpath[len(asset_dir) + 1:].replace('\\', '/')
|
||||||
|
with open(fpath, 'rb') as f:
|
||||||
|
fhash = zlib.crc32(f.read())
|
||||||
|
ASSET_CACHE[relpath] = '%x' % fhash
|
||||||
|
|
||||||
|
def assetcache_hash(asset_path):
|
||||||
|
return ASSET_CACHE[asset_path]
|
||||||
|
|
||||||
|
def assetcache_path(asset_path):
|
||||||
|
cachehash = assetcache_hash(asset_path)
|
||||||
|
|
||||||
|
url = ASSET_URL + asset_path
|
||||||
|
if cachehash:
|
||||||
|
url += '?v=' + cachehash
|
||||||
|
|
||||||
|
return url
|
||||||
|
|
||||||
|
assetcache_build(ASSET_DIR)
|
|
@ -3,6 +3,7 @@ from .get import *
|
||||||
from os import listdir, environ
|
from os import listdir, environ
|
||||||
from .const import *
|
from .const import *
|
||||||
import time
|
import time
|
||||||
|
from files.helpers.assetcache import assetcache_path
|
||||||
|
|
||||||
@app.template_filter("post_embed")
|
@app.template_filter("post_embed")
|
||||||
def post_embed(id, v):
|
def post_embed(id, v):
|
||||||
|
@ -46,6 +47,9 @@ def timestamp(timestamp):
|
||||||
years = int(months / 12)
|
years = int(months / 12)
|
||||||
return f"{years}yr ago"
|
return f"{years}yr ago"
|
||||||
|
|
||||||
|
@app.template_filter("asset")
|
||||||
|
def template_asset(asset_path):
|
||||||
|
return assetcache_path(asset_path)
|
||||||
|
|
||||||
@app.context_processor
|
@app.context_processor
|
||||||
def inject_constants():
|
def inject_constants():
|
||||||
|
|
|
@ -11,6 +11,7 @@ from pusher_push_notifications import PushNotifications
|
||||||
from flask import *
|
from flask import *
|
||||||
from files.__main__ import app, limiter
|
from files.__main__ import app, limiter
|
||||||
from files.helpers.sanitize import filter_emojis_only
|
from files.helpers.sanitize import filter_emojis_only
|
||||||
|
from files.helpers.assetcache import assetcache_path
|
||||||
import requests
|
import requests
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
from json import loads
|
from json import loads
|
||||||
|
@ -38,7 +39,7 @@ def pusher_thread(interests, c, username):
|
||||||
'title': f'New reply by @{username}',
|
'title': f'New reply by @{username}',
|
||||||
'body': notifbody,
|
'body': notifbody,
|
||||||
'deep_link': f'{SITE_FULL}/comment/{c.id}?context=8&read=true#context',
|
'deep_link': f'{SITE_FULL}/comment/{c.id}?context=8&read=true#context',
|
||||||
'icon': f'{SITE_FULL}/assets/images/{SITE_ID}/icon.webp?v=1015',
|
'icon': SITE_FULL + assetcache_path(f'images/{SITE_ID}/icon.webp'),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'fcm': {
|
'fcm': {
|
||||||
|
|
|
@ -6,6 +6,7 @@ from files.classes.views import ViewerRelationship
|
||||||
from files.helpers.alerts import *
|
from files.helpers.alerts import *
|
||||||
from files.helpers.sanitize import *
|
from files.helpers.sanitize import *
|
||||||
from files.helpers.const import *
|
from files.helpers.const import *
|
||||||
|
from files.helpers.assetcache import assetcache_path
|
||||||
from files.mail import *
|
from files.mail import *
|
||||||
from flask import *
|
from flask import *
|
||||||
from files.__main__ import app, limiter, db_session
|
from files.__main__ import app, limiter, db_session
|
||||||
|
@ -26,7 +27,7 @@ def pusher_thread2(interests, notifbody, username):
|
||||||
'title': f'New message from @{username}',
|
'title': f'New message from @{username}',
|
||||||
'body': notifbody,
|
'body': notifbody,
|
||||||
'deep_link': f'{SITE_FULL}/notifications?messages=true',
|
'deep_link': f'{SITE_FULL}/notifications?messages=true',
|
||||||
'icon': f'{SITE_FULL}/assets/images/{SITE_ID}/icon.webp?v=1015',
|
'icon': SITE_FULL + assetcache_path(f'images/{SITE_ID}/icon.webp'),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'fcm': {
|
'fcm': {
|
||||||
|
@ -707,7 +708,7 @@ def messagereply(v):
|
||||||
'title': f'New message from @{v.username}',
|
'title': f'New message from @{v.username}',
|
||||||
'body': notifbody,
|
'body': notifbody,
|
||||||
'deep_link': f'{SITE_FULL}/notifications?messages=true',
|
'deep_link': f'{SITE_FULL}/notifications?messages=true',
|
||||||
'icon': f'{SITE_FULL}/assets/images/{SITE_ID}/icon.webp"a=1010',
|
'icon': SITE_FULL + assetcache_path(f'images/{SITE_ID}/icon.webp'),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'fcm': {
|
'fcm': {
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<label class="custom-control-label" for="{{badge.id}}"></label>
|
<label class="custom-control-label" for="{{badge.id}}"></label>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><label for="badge-{{badge.id}}"><img alt="{{badge.name}}" loading="lazy" src="/assets/images/badges/{{badge.id}}.webp?v=1016" width=64.16 height=70></label></td>
|
<td><label for="badge-{{badge.id}}"><img alt="{{badge.name}}" loading="lazy" src="{{ ('images/badges/'~badge.id~'.webp') | asset }}" width=64.16 height=70></label></td>
|
||||||
<td>{{badge.name}}</td>
|
<td>{{badge.name}}</td>
|
||||||
<td>{{badge.description}}</td>
|
<td>{{badge.description}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<label class="custom-control-label" for="{{badge.id}}"></label>
|
<label class="custom-control-label" for="{{badge.id}}"></label>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><label for="badge-{{badge.id}}"><img alt="{{badge.name}}" loading="lazy" src="/assets/images/badges/{{badge.id}}.webp?v=1016" width=64.16 height=70></label></td>
|
<td><label for="badge-{{badge.id}}"><img alt="{{badge.name}}" loading="lazy" src="{{ ('images/badges/'~badge.id~'.webp') | asset }}" width=64.16 height=70></label></td>
|
||||||
<td>{{badge.name}}</td>
|
<td>{{badge.name}}</td>
|
||||||
<td>{{badge.description}}</td>
|
<td>{{badge.description}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<script src="/assets/js/sort_table.js?v=242"></script>
|
<script src="{{ 'js/sort_table.js' | asset }}"></script>
|
||||||
|
|
||||||
<pre class="d-none d-md-inline-block"></pre>
|
<pre class="d-none d-md-inline-block"></pre>
|
||||||
<h5 style="font-weight:bold;">Admins</h5>
|
<h5 style="font-weight:bold;">Admins</h5>
|
||||||
|
|
|
@ -15,15 +15,15 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=59">
|
<link rel="stylesheet" href="{{ ('css/'~v.theme~'.css') | asset }}">
|
||||||
{% if v.css %}
|
{% if v.css %}
|
||||||
<link rel="stylesheet" href="/@{{v.username}}/css">
|
<link rel="stylesheet" href="/@{{v.username}}/css">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=58">
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
|
|
||||||
<div class="splash-overlay"></div>
|
<div class="splash-overlay"></div>
|
||||||
|
|
||||||
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
|
<img alt="cover" loading="lazy" class="splash-img" src="{{ ('images/'~SITE_ID~'/cover.webp') | asset }}"></img>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -44,4 +44,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/assets/js/award_modal.js?v=248" data-cfasync="false"></script>
|
<script src="{{ 'js/award_modal.js' | asset }}" data-cfasync="false"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{% extends "default.html" %}
|
{% extends "default.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<script src="/assets/js/sort_table.js?v=242"></script>
|
<script src="{{ 'js/sort_table.js' | asset }}"></script>
|
||||||
<pre>
|
<pre>
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{loop.index}}</td>
|
<td>{{loop.index}}</td>
|
||||||
<td>{{badge.name}}</td>
|
<td>{{badge.name}}</td>
|
||||||
<td><img alt="{{badge.name}}" loading="lazy" src="/assets/images/badges/{{badge.id}}.webp?v=1016" width=45.83 height=50>
|
<td><img alt="{{badge.name}}" loading="lazy" src="{{ ('images/badges/'~badge.id~'.webp') | asset }}" width=45.83 height=50>
|
||||||
<td>{{badge.description}}</td>
|
<td>{{badge.description}}</td>
|
||||||
{%- set ct = counts[badge.id] if badge.id in counts else (0, 0) %}
|
{%- set ct = counts[badge.id] if badge.id in counts else (0, 0) %}
|
||||||
<td class="badges-rarity-qty">{{ ct[0] }}</td>
|
<td class="badges-rarity-qty">{{ ct[0] }}</td>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
<script src="/assets/js/ban_modal.js?v=241"></script>
|
<script src="{{ 'js/ban_modal.js' | asset }}"></script>
|
||||||
|
|
||||||
<div class="modal fade" id="banModal" tabindex="-1" role="dialog" aria-labelledby="banModalTitle" aria-hidden="true">
|
<div class="modal fade" id="banModal" tabindex="-1" role="dialog" aria-labelledby="banModalTitle" aria-hidden="true">
|
||||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||||
|
|
|
@ -104,6 +104,6 @@
|
||||||
</nav>
|
</nav>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script src="/assets/js/post_toast2.js?v=243"></script>
|
<script src="{{ 'js/post_toast2.js' | asset }}"></script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -9,13 +9,13 @@
|
||||||
|
|
||||||
<meta name="author" content="">
|
<meta name="author" content="">
|
||||||
|
|
||||||
<link id="favicon" rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
|
<link id="favicon" rel="icon" type="image/png" href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}">
|
||||||
|
|
||||||
<title>Chat</title>
|
<title>Chat</title>
|
||||||
|
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=59">
|
<link rel="stylesheet" href="{{ ('css/'~v.theme~'.css') | asset }}">
|
||||||
{% if v.css %}
|
{% if v.css %}
|
||||||
<link rel="stylesheet" href="/@{{v.username}}/css">
|
<link rel="stylesheet" href="/@{{v.username}}/css">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -101,7 +101,7 @@
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<script src="/assets/js/bootstrap.js?v=249"></script>
|
<script src="{{ 'js/bootstrap.js' | asset }}"></script>
|
||||||
|
|
||||||
{% include "header.html" %}
|
{% include "header.html" %}
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@
|
||||||
|
|
||||||
<script src="/chat.js?v=16"></script>
|
<script src="/chat.js?v=16"></script>
|
||||||
|
|
||||||
<script src="/assets/js/lozad.js?v=242"></script>
|
<script src="{{ 'js/lozad.js' | asset }}"></script>
|
||||||
<script src="/assets/js/lite-youtube.js?v=240"></script>
|
<script src="{{ 'js/lite-youtube.js' | asset }}"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -225,7 +225,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if c.treasure_amount and c.treasure_amount != '0' %}
|
{% if c.treasure_amount and c.treasure_amount != '0' %}
|
||||||
<img class="treasure" alt="treasure" src="/assets/images/chest.webp" width="20" />
|
<img class="treasure" alt="treasure" src="{{ 'images/chest.webp' | asset }}" width="20" />
|
||||||
{% if '-' in c.treasure_amount %}
|
{% if '-' in c.treasure_amount %}
|
||||||
<em>A Mimic Ate {{c.treasure_amount.replace('-', '')}} Coins!</em>
|
<em>A Mimic Ate {{c.treasure_amount.replace('-', '')}} Coins!</em>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -839,26 +839,26 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<script src="/assets/js/vendor/purify.min.js?v=251"></script>
|
<script src="{{ 'js/vendor/purify.min.js' | asset }}"></script>
|
||||||
<script src="/assets/js/vendor/marked.min.js?v=251"></script>
|
<script src="{{ 'js/vendor/marked.min.js' | asset }}"></script>
|
||||||
<script src="/assets/js/marked.custom.js?v=252"></script>
|
<script src="{{ 'js/marked.custom.js' | asset }}"></script>
|
||||||
<script src="/assets/js/comments_v.js?v=268"></script>
|
<script src="{{ 'js/comments_v.js' | asset }}"></script>
|
||||||
<script src="/assets/js/award_modal.js?v=1"></script>
|
<script src="{{ 'js/award_modal.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script src="/assets/js/clipboard.js?v=250"></script>
|
<script src="{{ 'js/clipboard.js' | asset }}"></script>
|
||||||
|
|
||||||
{% if v and v.admin_level > 1 %}
|
{% if v and v.admin_level > 1 %}
|
||||||
<script src="/assets/js/comments_admin.js?v=250"></script>
|
<script src="{{ 'js/comments_admin.js' | asset }}"></script>
|
||||||
{% if v.admin_level > 2 %}
|
{% if v.admin_level > 2 %}
|
||||||
<script src="/assets/js/filter_actions.js?v=8"></script>
|
<script src="{{ 'js/filter_actions.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% include "expanded_image_modal.html" %}
|
{% include "expanded_image_modal.html" %}
|
||||||
|
|
||||||
<script src="/assets/js/comments+submission_listing.js?v=259"></script>
|
<script src="{{ 'js/comments+submission_listing.js' | asset }}"></script>
|
||||||
<script src="/assets/js/comments.js?v=256"></script>
|
<script src="{{ 'js/comments.js' | asset }}"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
{% if p and (not v or v.highlightcomments) %}
|
{% if p and (not v or v.highlightcomments) %}
|
||||||
|
|
|
@ -4,23 +4,23 @@
|
||||||
<meta name="description" content="{{config('DESCRIPTION')}}">
|
<meta name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' ajax.cloudflare.com; connect-src 'self' tls-use1.fpapi.io api.fpjs.io {% if PUSHER_ID != 'blahblahblah' %}{{PUSHER_ID}}.pushnotifications.pusher.com{% endif %}; object-src 'none';">
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' ajax.cloudflare.com; connect-src 'self' tls-use1.fpapi.io api.fpjs.io {% if PUSHER_ID != 'blahblahblah' %}{{PUSHER_ID}}.pushnotifications.pusher.com{% endif %}; object-src 'none';">
|
||||||
|
|
||||||
<script src="/assets/js/bootstrap.js?v=245"></script>
|
<script src="{{ 'js/bootstrap.js' | asset }}"></script>
|
||||||
<script src="/assets/js/micromodal.js?v=245"></script>
|
<script src="{{ 'js/micromodal.js' | asset }}"></script>
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=59">
|
<link rel="stylesheet" href="{{ ('css/'~v.theme~'.css') | asset }}">
|
||||||
{% if v.css %}
|
{% if v.css %}
|
||||||
<link rel="stylesheet" href="/@{{v.username}}/css">
|
<link rel="stylesheet" href="/@{{v.username}}/css">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=58">
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if request.path == '/catalog' %}
|
{% if request.path == '/catalog' %}
|
||||||
<link rel="stylesheet" href="/assets/css/catalog.css?v=1">
|
<link rel="stylesheet" href="{{ 'css/catalog.css' | asset }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if sub and sub.css and not request.path.endswith('settings') %}
|
{% if sub and sub.css and not request.path.endswith('settings') %}
|
||||||
|
@ -38,16 +38,16 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
<meta name="thumbnail" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta name="thumbnail" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
|
|
||||||
<link rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
|
<link rel="icon" type="image/png" href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}">
|
||||||
{% block title %}
|
{% block title %}
|
||||||
<title>{{SITE_TITLE}}</title>
|
<title>{{SITE_TITLE}}</title>
|
||||||
|
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:title" content="{{SITE_TITLE}}">
|
<meta property="og:title" content="{{SITE_TITLE}}">
|
||||||
<meta property="og:site_name" content="{{request.host}}">
|
<meta property="og:site_name" content="{{request.host}}">
|
||||||
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta property="og:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta property="og:url" content="{{SITE_FULL}}{{request.full_path}}">
|
<meta property="og:url" content="{{SITE_FULL}}{{request.full_path}}">
|
||||||
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
||||||
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
||||||
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta name="twitter:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta name="twitter:url" content="{{SITE_FULL}}{{request.full_path}}">
|
<meta name="twitter:url" content="{{SITE_FULL}}{{request.full_path}}">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -67,14 +67,14 @@
|
||||||
<meta name="format-detection" content="telephone=no">
|
<meta name="format-detection" content="telephone=no">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
|
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
|
<link rel="apple-touch-icon" sizes="180x180" href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}">
|
||||||
<link rel="manifest" href="/assets/manifest_{{SITE_ID}}.json?v=1">
|
<link rel="manifest" href="{{ ('manifest_'~SITE_ID~'.json') | asset }}">
|
||||||
<link rel="mask-icon" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
|
<link rel="mask-icon" href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}">
|
||||||
<link rel="shortcut icon" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
|
<link rel="shortcut icon" href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}">
|
||||||
<meta name="apple-mobile-web-app-title" content="{{SITE_TITLE}}">
|
<meta name="apple-mobile-web-app-title" content="{{SITE_TITLE}}">
|
||||||
<meta name="application-name" content="{{SITE_TITLE}}">
|
<meta name="application-name" content="{{SITE_TITLE}}">
|
||||||
<meta name="msapplication-TileColor" content="#{{config('DEFAULT_COLOR')}}">
|
<meta name="msapplication-TileColor" content="#{{config('DEFAULT_COLOR')}}">
|
||||||
<meta name="msapplication-config" content="/assets/browserconfig.xml?v=2">
|
<meta name="msapplication-config" content="{{ 'browserconfig.xml' | asset }}">
|
||||||
<meta name="theme-color" content="#{{config('DEFAULT_COLOR')}}">
|
<meta name="theme-color" content="#{{config('DEFAULT_COLOR')}}">
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,127 +82,127 @@
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="320x480"
|
sizes="320x480"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="640x960"
|
sizes="640x960"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-icon"
|
rel="apple-touch-icon"
|
||||||
sizes="640x1136"
|
sizes="640x1136"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-icon"
|
rel="apple-touch-icon"
|
||||||
sizes="750x1334"
|
sizes="750x1334"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="768x1004"
|
sizes="768x1004"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="768x1024"
|
sizes="768x1024"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="828x1792"
|
sizes="828x1792"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1024x748"
|
sizes="1024x748"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1024x768"
|
sizes="1024x768"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1125x2436"
|
sizes="1125x2436"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1242x2208"
|
sizes="1242x2208"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1242x2688"
|
sizes="1242x2688"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1334x750"
|
sizes="1334x750"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1536x2008"
|
sizes="1536x2008"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1536x2048"
|
sizes="1536x2048"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1668x2224"
|
sizes="1668x2224"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="1792x828"
|
sizes="1792x828"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="2048x1496"
|
sizes="2048x1496"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="2048x1536"
|
sizes="2048x1536"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="2048x2732"
|
sizes="2048x2732"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="2208x1242"
|
sizes="2208x1242"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="2224x1668"
|
sizes="2224x1668"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="2436x1125"
|
sizes="2436x1125"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="2668x1242"
|
sizes="2668x1242"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
<link
|
<link
|
||||||
rel="apple-touch-startup-image"
|
rel="apple-touch-startup-image"
|
||||||
sizes="2737x2048"
|
sizes="2737x2048"
|
||||||
href="/assets/images/{{SITE_ID}}/icon.webp?v=1015"
|
href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}"
|
||||||
>
|
>
|
||||||
|
|
||||||
{% block fixedMobileBarJS %}
|
{% 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">
|
<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 %}
|
{% else %}
|
||||||
<a href="/">
|
<a href="/">
|
||||||
<img alt="site banner" class="primary_banner" src="/assets/images/{{SITE_ID}}/banner.webp?v=1046" width="100%">
|
<img alt="site banner" class="primary_banner" src="{{ ('images/'~SITE_ID~'/banner.webp') | asset }}" width="100%">
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -298,14 +298,14 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/assets/js/lozad.js?v=242"></script>
|
<script src="{{ 'js/lozad.js' | asset }}"></script>
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<script src="/assets/js/post_toast2.js?v=243"></script>
|
<script src="{{ 'js/post_toast2.js' | asset }}"></script>
|
||||||
<script src="/assets/js/formatting.js?v=240"></script>
|
<script src="{{ 'js/formatting.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script src="/assets/js/lite-youtube.js?v=240"></script>
|
<script src="{{ 'js/lite-youtube.js' | asset }}"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
MicroModal.init();
|
MicroModal.init();
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<script src="/assets/js/delete_post_modal.js?v=240"></script>
|
<script src="{{ 'js/delete_post_modal.js' | asset }}"></script>
|
||||||
|
|
||||||
<div class="modal fade" id="deletePostModal" tabindex="-1" role="dialog" aria-labelledby="deletePostModalTitle" aria-hidden="true">
|
<div class="modal fade" id="deletePostModal" tabindex="-1" role="dialog" aria-labelledby="deletePostModalTitle" aria-hidden="true">
|
||||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{% extends "default.html" %}
|
{% extends "default.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<script src="/assets/js/followers.js?v=241"></script>
|
<script src="{{ 'js/followers.js' | asset }}"></script>
|
||||||
<pre>
|
<pre>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{% extends "default.html" %}
|
{% extends "default.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<script src="/assets/js/following.js?v=241"></script>
|
<script src="{{ 'js/following.js' | asset }}"></script>
|
||||||
<pre>
|
<pre>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -26,4 +26,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/assets/js/gif_modal.js?v=245"></script>
|
<script src="{{ 'js/gif_modal.js' | asset }}"></script>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<div class="navbar navbar-expand-md navbar-light" id="navbar">
|
<div class="navbar navbar-expand-md navbar-light" id="navbar">
|
||||||
<div class="container-fluid" style="padding:0;">
|
<div class="container-fluid" style="padding:0;">
|
||||||
<a href="/" class="navbar-brand mr-auto">
|
<a href="/" class="navbar-brand mr-auto">
|
||||||
<img alt="header icon" height=33 src="/assets/images/{{SITE_ID}}/headericon.webp?v=1019">
|
<img alt="header icon" height=33 src="{{ ('images/'~SITE_ID~'/headericon.webp') | asset }}">
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
{% if sub %}
|
{% if sub %}
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</style>
|
</style>
|
||||||
<a href="/" class="flex-grow-1">
|
<a href="/" class="flex-grow-1">
|
||||||
<img class="ml-1" id="logo" alt="logo" src="/assets/images/{{SITE_ID}}/logo.webp?v=1013" width=70>
|
<img class="ml-1" id="logo" alt="logo" src="{{ ('images/'~SITE_ID~'/logo.webp') | asset }}" width=70>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -222,7 +222,7 @@
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<script src="/assets/js/header.js?v=267"></script>
|
<script src="{{ 'js/header.js' | asset }}"></script>
|
||||||
|
|
||||||
{% if v and not err %}
|
{% if v and not err %}
|
||||||
<div id="formkey" class="d-none">{{v.formkey}}</div>
|
<div id="formkey" class="d-none">{{v.formkey}}</div>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
script.onload = resolve;
|
script.onload = resolve;
|
||||||
script.onerror = reject;
|
script.onerror = reject;
|
||||||
script.async = true;
|
script.async = true;
|
||||||
script.src = "/assets/js/fp.js?v=240";
|
script.src = "{{ 'js/fp.js' | asset }}";
|
||||||
document.head.appendChild(script);
|
document.head.appendChild(script);
|
||||||
})
|
})
|
||||||
.then(() => FingerprintJS.load({token: '{{environ.get("FP")}}'}));
|
.then(() => FingerprintJS.load({token: '{{environ.get("FP")}}'}));
|
||||||
|
@ -154,7 +154,7 @@
|
||||||
{% if PUSHER_ID != 'blahblahblah' and v %}
|
{% if PUSHER_ID != 'blahblahblah' and v %}
|
||||||
<div class="d-none" id="strid">{{request.host}}{{v.id}}</div>
|
<div class="d-none" id="strid">{{request.host}}{{v.id}}</div>
|
||||||
<div class="d-none" id="pusherid">{{PUSHER_ID}}</div>
|
<div class="d-none" id="pusherid">{{PUSHER_ID}}</div>
|
||||||
<script src="/assets/js/pusher.js?v=242"></script>
|
<script src="{{ 'js/pusher.js' | asset }}"></script>
|
||||||
<script>
|
<script>
|
||||||
if (typeof Android != 'undefined') {
|
if (typeof Android != 'undefined') {
|
||||||
Android.Subscribe('{{request.host}}{{v.id}}');
|
Android.Subscribe('{{request.host}}{{v.id}}');
|
||||||
|
|
|
@ -6,15 +6,15 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=59">
|
<link rel="stylesheet" href="{{ ('css/'~v.theme~'.css') | asset }}">
|
||||||
{% if v.css %}
|
{% if v.css %}
|
||||||
<link rel="stylesheet" href="/@{{v.username}}/css">
|
<link rel="stylesheet" href="/@{{v.username}}/css">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=58">
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="row justify-content-around">
|
<div class="row justify-content-around">
|
||||||
|
@ -126,6 +126,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/assets/js/clipboard.js?v=240"></script>
|
<script src="{{ 'js/clipboard.js' | asset }}"></script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<meta name="description" content="{{config('DESCRIPTION')}}">
|
<meta name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
||||||
|
|
||||||
<script src="/assets/js/bootstrap.js?v=245"></script>
|
<script src="{{ 'js/bootstrap.js' | asset }}"></script>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
@ -18,8 +18,8 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=58">
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
|
|
||||||
<div class="splash-overlay"></div>
|
<div class="splash-overlay"></div>
|
||||||
|
|
||||||
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
|
<img alt="cover" loading="lazy" class="splash-img" src="{{ ('images/'~SITE_ID~'/cover.webp') | asset }}"></img>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
<title>2-Step Login - {{SITE_TITLE}}</title>
|
<title>2-Step Login - {{SITE_TITLE}}</title>
|
||||||
|
|
||||||
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=58">
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@
|
||||||
|
|
||||||
<div class="splash-overlay"></div>
|
<div class="splash-overlay"></div>
|
||||||
|
|
||||||
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
|
<img alt="cover" loading="lazy" class="splash-img" src="{{ ('images/'~SITE_ID~'/cover.webp') | asset }}"></img>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="text-center py-7 py-md-8">
|
<div class="text-center py-7 py-md-8">
|
||||||
|
|
||||||
<img loading="lazy" src="/assets/images/ruckus.webp" class="empty-state-img mb-3" alt="success state">
|
<img loading="lazy" src="{{ 'images/ruckus.webp' | asset }}" class="empty-state-img mb-3" alt="success state">
|
||||||
<div class="font-weight-bold text-muted mb-4">{{title}}</div>
|
<div class="font-weight-bold text-muted mb-4">{{title}}</div>
|
||||||
<p class="text-muted">{{message}}</p>
|
<p class="text-muted">{{message}}</p>
|
||||||
|
|
||||||
|
|
|
@ -50,4 +50,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/assets/js/mobile_navigation_bar.js?v=240"></script>
|
<script src="{{ 'js/mobile_navigation_bar.js' | asset }}"></script>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<td>{{loop.index}}</td>
|
<td>{{loop.index}}</td>
|
||||||
<td><a style="color:#{{u.namecolor}}" href="/@{{u.username}}"><img loading="lazy" src="{{u.profile_url}}" class="pp20"><span {% if u.patron %}class="patron" style="background-color:#{{u.namecolor}}"{% endif %}>{{u.username}}</span></a></td>
|
<td><a style="color:#{{u.namecolor}}" href="/@{{u.username}}"><img loading="lazy" src="{{u.profile_url}}" class="pp20"><span {% if u.patron %}class="patron" style="background-color:#{{u.namecolor}}"{% endif %}>{{u.username}}</span></a></td>
|
||||||
|
|
||||||
<td><img alt="2{{u.patron}}" loading="lazy" width=29.33 height=32 src="/assets/images/badges/2{{u.patron}}.webp?v=1016"></td>
|
<td><img alt="2{{u.patron}}" loading="lazy" width=29.33 height=32 src="{{ ('images/badges/2'~u.patron~'.webp') | asset }}"></td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -32,4 +32,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/assets/js/report_post_modal.js?v=241"></script>
|
<script src="{{ 'js/report_post_modal.js' | asset }}"></script>
|
||||||
|
|
|
@ -5,20 +5,20 @@
|
||||||
<meta name="description" content="{{config('DESCRIPTION')}}">
|
<meta name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
||||||
|
|
||||||
<script src="/assets/js/bootstrap.js?v=245"></script>
|
<script src="{{ 'js/bootstrap.js' | asset }}"></script>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
<meta name="author" content="">
|
<meta name="author" content="">
|
||||||
|
|
||||||
<link rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
|
<link rel="icon" type="image/png" href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}">
|
||||||
|
|
||||||
<title>{% block pagetitle %}Settings - {{SITE_TITLE}}{% endblock %}</title>
|
<title>{% block pagetitle %}Settings - {{SITE_TITLE}}{% endblock %}</title>
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:title" content="{{SITE_TITLE}}">
|
<meta property="og:title" content="{{SITE_TITLE}}">
|
||||||
<meta property="og:site_name" content="{{request.host}}">
|
<meta property="og:site_name" content="{{request.host}}">
|
||||||
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta property="og:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta property="og:url" content="{{request.host}}">
|
<meta property="og:url" content="{{request.host}}">
|
||||||
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
||||||
|
@ -29,13 +29,13 @@
|
||||||
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
||||||
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
||||||
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta name="twitter:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta name="twitter:url" content="{{request.host}}">
|
<meta name="twitter:url" content="{{request.host}}">
|
||||||
|
|
||||||
|
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=59">
|
<link rel="stylesheet" href="{{ ('css/'~v.theme~'.css') | asset }}">
|
||||||
{% if v.css and not request.path.startswith('/settings/css') %}
|
{% if v.css and not request.path.startswith('/settings/css') %}
|
||||||
<link rel="stylesheet" href="/@{{v.username}}/css">
|
<link rel="stylesheet" href="/@{{v.username}}/css">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -241,7 +241,7 @@
|
||||||
|
|
||||||
{% block onload %}{% endblock %}
|
{% block onload %}{% endblock %}
|
||||||
|
|
||||||
<script src="/assets/js/clipboard.js?v=240"></script>
|
<script src="{{ 'js/clipboard.js' | asset }}"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
@ -6,19 +6,19 @@
|
||||||
<meta name="description" content="{{config('DESCRIPTION')}}">
|
<meta name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
||||||
|
|
||||||
<script src="/assets/js/bootstrap.js?v=245"></script>
|
<script src="{{ 'js/bootstrap.js' | asset }}"></script>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
<meta name="author" content="">
|
<meta name="author" content="">
|
||||||
<meta name="thumbnail" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta name="thumbnail" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<link rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
|
<link rel="icon" type="image/png" href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}">
|
||||||
|
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:title" content="{{SITE_TITLE}}">
|
<meta property="og:title" content="{{SITE_TITLE}}">
|
||||||
<meta property="og:site_name" content="{{request.host}}">
|
<meta property="og:site_name" content="{{request.host}}">
|
||||||
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta property="og:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta property="og:url" content="{{SITE_FULL}}{{request.full_path}}">
|
<meta property="og:url" content="{{SITE_FULL}}{{request.full_path}}">
|
||||||
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
||||||
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
||||||
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta name="twitter:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta name="twitter:url" content="{{SITE_FULL}}{{request.full_path}}">
|
<meta name="twitter:url" content="{{SITE_FULL}}{{request.full_path}}">
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,12 +39,12 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=59">
|
<link rel="stylesheet" href="{{ ('css/'~v.theme~'.css') | asset }}">
|
||||||
{% else %}
|
{% else %}
|
||||||
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=58">
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<script src="/assets/js/settings_blocks.js?v=241"></script>
|
<script src="{{ 'js/settings_blocks.js' | asset }}"></script>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
|
|
|
@ -501,7 +501,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<script src="/assets/js/settings_profile.js?v=251"></script>
|
<script src="{{ 'js/settings_profile.js' | asset }}"></script>
|
||||||
|
|
||||||
{% include "gif_modal.html" %}
|
{% include "gif_modal.html" %}
|
||||||
|
|
||||||
|
|
|
@ -257,6 +257,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/assets/js/settings_security.js?v=241"></script>
|
<script src="{{ 'js/settings_security.js' | asset }}"></script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
{% block Banner %}
|
{% block Banner %}
|
||||||
<header class="container pb-1 text-center">
|
<header class="container pb-1 text-center">
|
||||||
<img alt="shop banner" src="/assets/images/shop.webp" width="50%">
|
<img alt="shop banner" src="{{ 'images/shop.webp' | asset }}" width="50%">
|
||||||
<h3 class="mt-4">Stir drama. Earn coins.</h5>
|
<h3 class="mt-4">Stir drama. Earn coins.</h5>
|
||||||
<h5 class="mt-4">Total sales: {{sales}} coins</h5>
|
<h5 class="mt-4">Total sales: {{sales}} coins</h5>
|
||||||
<h5 class="mt-4">Coins spent by you: {{v.coins_spent}} coins</h5>
|
<h5 class="mt-4">Coins spent by you: {{v.coins_spent}} coins</h5>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<meta name="description" content="{{config('DESCRIPTION')}}">
|
<meta name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
||||||
|
|
||||||
<script src="/assets/js/bootstrap.js?v=245"></script>
|
<script src="{{ 'js/bootstrap.js' | asset }}"></script>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:title" content="{{SITE_TITLE}}">
|
<meta property="og:title" content="{{SITE_TITLE}}">
|
||||||
<meta property="og:site_name" content="{{request.host}}">
|
<meta property="og:site_name" content="{{request.host}}">
|
||||||
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta property="og:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta property="og:url" content="{{request.host}}">
|
<meta property="og:url" content="{{request.host}}">
|
||||||
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
||||||
|
@ -25,14 +25,14 @@
|
||||||
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
||||||
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
||||||
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta name="twitter:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta name="twitter:url" content="{{request.host}}">
|
<meta name="twitter:url" content="{{request.host}}">
|
||||||
|
|
||||||
<title>{% if ref_user %}{{ref_user.username}} invites you to {{SITE_TITLE}}{% else %}Sign up - {{SITE_TITLE}}{% 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>
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=58">
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@
|
||||||
|
|
||||||
<div class="splash-overlay"></div>
|
<div class="splash-overlay"></div>
|
||||||
|
|
||||||
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
|
<img alt="cover" loading="lazy" class="splash-img" src="{{ ('images/'~SITE_ID~'/cover.webp') | asset }}"></img>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -148,10 +148,10 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/assets/js/signup.js?v=240"></script>
|
<script src="{{ 'js/signup.js' | asset }}"></script>
|
||||||
|
|
||||||
{% if hcaptcha %}
|
{% if hcaptcha %}
|
||||||
<script src="/assets/js/hcaptcha.js?v=240"></script>
|
<script src="{{ 'js/hcaptcha.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<meta name="description" content="{{config('DESCRIPTION')}}">
|
<meta name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
||||||
|
|
||||||
<script src="/assets/js/bootstrap.js?v=245"></script>
|
<script src="{{ 'js/bootstrap.js' | asset }}"></script>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:title" content="{{SITE_TITLE}}">
|
<meta property="og:title" content="{{SITE_TITLE}}">
|
||||||
<meta property="og:site_name" content="{{request.host}}">
|
<meta property="og:site_name" content="{{request.host}}">
|
||||||
<meta property="og:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta property="og:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta property="og:url" content="{{request.host}}">
|
<meta property="og:url" content="{{request.host}}">
|
||||||
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
||||||
|
@ -26,14 +26,14 @@
|
||||||
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
||||||
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
||||||
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta name="twitter:image" content="/assets/images/{{SITE_ID}}/site_preview.webp?v=1015">
|
<meta name="twitter:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
||||||
<meta name="twitter:url" content="{{request.host}}">
|
<meta name="twitter:url" content="{{request.host}}">
|
||||||
|
|
||||||
<title>{% if ref_user %}{{ref_user.username}} invites you to {{SITE_TITLE}}{% else %}{{SITE_TITLE}}{% 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>
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=58">
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@
|
||||||
|
|
||||||
<div class="splash-overlay"></div>
|
<div class="splash-overlay"></div>
|
||||||
|
|
||||||
<img alt="cover" loading="lazy" class="splash-img" src="/assets/images/{{SITE_ID}}/cover.webp?v=1014"></img>
|
<img alt="cover" loading="lazy" class="splash-img" src="{{ ('images/'~SITE_ID~'/cover.webp') | asset }}"></img>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{% extends "default.html" %}
|
{% extends "default.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<script src="/assets/js/sort_table.js?v=242"></script>
|
<script src="{{ 'js/sort_table.js' | asset }}"></script>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
<meta property="og:description" name="description" content="{{comment_info.plainbody(v)}}">
|
<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:author" name="author" content="{{'@'+comment_info.author_name}}">
|
||||||
<meta property="og:title" content="{{'@'+comment_info.author_name}} comments on {{p.plaintitle(v)}} - {{SITE_TITLE}}">
|
<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 %}">
|
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{SITE_FULL}}{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}{% endif %}">
|
||||||
{% if p.is_video %}
|
{% if p.is_video %}
|
||||||
<meta property="og:video" content="{{p.realurl(v)}}">
|
<meta property="og:video" content="{{p.realurl(v)}}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
<meta name="twitter:title" content="{{'@'+comment_info.author_name}} comments on {{p.plaintitle(v)}} - {{SITE_TITLE}}">
|
<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:creator" content="{{'@'+comment_info.author_name}}">
|
||||||
<meta name="twitter:description" content="{{comment_info.plainbody(v)}}">
|
<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_ID}}/assets/images/{{SITE_ID}}/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_FULL}}{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}{% endif %}">
|
||||||
<meta name="twitter:url" content="{{p.permalink}}">
|
<meta name="twitter:url" content="{{p.permalink}}">
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
<meta property="og:description" name="description" content="{{p.plainbody(v)}}">
|
<meta property="og:description" name="description" content="{{p.plainbody(v)}}">
|
||||||
{% if p.author %}<meta property="og:author" name="author" content="{{'@'+p.author_name}}">{% endif %}
|
{% if p.author %}<meta property="og:author" name="author" content="{{'@'+p.author_name}}">{% endif %}
|
||||||
<meta property="og:title" content="{{p.plaintitle(v)}} - {{SITE_TITLE}}">
|
<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 %}">
|
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{SITE_FULL}}{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}{% endif %}">
|
||||||
{% if p.url and p.is_video %}
|
{% if p.url and p.is_video %}
|
||||||
<meta property="og:video" content="{{p.realurl(v)}}">
|
<meta property="og:video" content="{{p.realurl(v)}}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
<meta name="twitter:title" content="{{p.plaintitle(v)}} - {{SITE_TITLE}}">
|
<meta name="twitter:title" content="{{p.plaintitle(v)}} - {{SITE_TITLE}}">
|
||||||
{% if p.author %}<meta name="twitter:creator" content="{{'@'+p.author_name}}">{% endif %}
|
{% if p.author %}<meta name="twitter:creator" content="{{'@'+p.author_name}}">{% endif %}
|
||||||
<meta name="twitter:description" content="{{p.plainbody(v)}}">
|
<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_ID}}/assets/images/{{SITE_ID}}/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_FULL}}{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}{% endif %}">
|
||||||
<meta name="twitter:url" content="{{p.permalink}}">
|
<meta name="twitter:url" content="{{p.permalink}}">
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -246,9 +246,9 @@
|
||||||
{% if p.domain == "twitter.com" %}
|
{% if p.domain == "twitter.com" %}
|
||||||
{{p.embed_url | safe}}
|
{{p.embed_url | safe}}
|
||||||
{% if v and v.theme.split("_")[0] in ["light", "coffee", "4chan"] %}
|
{% if v and v.theme.split("_")[0] in ["light", "coffee", "4chan"] %}
|
||||||
<script src="/assets/js/twitterlight.js?v=243"></script>
|
<script src="{{ 'js/twitterlight.js' | asset }}"></script>
|
||||||
{% else %}
|
{% else %}
|
||||||
<script src="/assets/js/twitter.js?v=243"></script>
|
<script src="{{ 'js/twitter.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif p.domain in ['youtu.be','youtube.com'] and p.embed_url and p.embed_url.startswith('<lite-youtube') %}
|
{% elif p.domain in ['youtu.be','youtube.com'] and p.embed_url and p.embed_url.startswith('<lite-youtube') %}
|
||||||
{{p.embed_url | safe}}
|
{{p.embed_url | safe}}
|
||||||
|
@ -595,28 +595,28 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v and (v.id == p.author_id or v.admin_level > 1 and v.admin_level > 2) %}
|
{% if v and (v.id == p.author_id or v.admin_level > 1 and v.admin_level > 2) %}
|
||||||
<script src="/assets/js/togglePostEdit.js?v=240"></script>
|
<script src="{{ 'js/togglePostEdit.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if not v or v.highlightcomments %}
|
{% if not v or v.highlightcomments %}
|
||||||
<script src="/assets/js/new_comments_count.js?v=242"></script>
|
<script src="{{ 'js/new_comments_count.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script src="/assets/js/clipboard.js?v=240"></script>
|
<script src="{{ 'js/clipboard.js' | asset }}"></script>
|
||||||
|
|
||||||
{% if not p.replies %}
|
{% if not p.replies %}
|
||||||
{% include "comments.html" %}
|
{% include "comments.html" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if p.award_count("shit") %}
|
{% if p.award_count("shit") %}
|
||||||
<script src="/assets/js/critters.js?v=240"></script>
|
<script src="{{ 'js/critters.js' | asset }}"></script>
|
||||||
<script src="/assets/js/bugs.js?v=241"></script>
|
<script src="{{ 'js/bugs.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
{% if p.award_count("fireflies") %}
|
{% if p.award_count("fireflies") %}
|
||||||
<script src="/assets/js/critters.js?v=240"></script>
|
<script src="{{ 'js/critters.js' | asset }}"></script>
|
||||||
<script src="/assets/js/fireflies.js?v=241"></script>
|
<script src="{{ 'js/fireflies.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{% set cc='COUNTRY CLUB' %}
|
{% set cc='COUNTRY CLUB' %}
|
||||||
|
|
||||||
{% if not v or v.highlightcomments %}
|
{% if not v or v.highlightcomments %}
|
||||||
<script src="/assets/js/new_comments_count.js?v=242"></script>
|
<script src="{{ 'js/new_comments_count.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v and v.admin_level > 2 %}
|
{% if v and v.admin_level > 2 %}
|
||||||
<script src="/assets/js/filter_actions.js?v=8"></script>
|
<script src="{{ 'js/filter_actions.js' | asset }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div style="display:none" id="popover">
|
<div style="display:none" id="popover">
|
||||||
|
@ -417,6 +417,6 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% include "expanded_image_modal.html" %}
|
{% include "expanded_image_modal.html" %}
|
||||||
|
|
||||||
<script src="/assets/js/clipboard.js?v=240"></script>
|
<script src="{{ 'js/clipboard.js' | asset }}"></script>
|
||||||
<script src="/assets/js/comments+submission_listing.js?v=259"></script>
|
<script src="{{ 'js/comments+submission_listing.js' | asset }}"></script>
|
||||||
<script src="/assets/js/submission_listing.js?v=240"></script>
|
<script src="{{ 'js/submission_listing.js' | asset }}"></script>
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
<meta name="description" content="{{config('DESCRIPTION')}}">
|
<meta name="description" content="{{config('DESCRIPTION')}}">
|
||||||
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
||||||
|
|
||||||
<script src="/assets/js/bootstrap.js?v=245"></script>
|
<script src="{{ 'js/bootstrap.js' | asset }}"></script>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
<meta name="author" content="">
|
<meta name="author" content="">
|
||||||
<link rel="icon" type="image/png" href="/assets/images/{{SITE_ID}}/icon.webp?v=1015">
|
<link rel="icon" type="image/png" href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}">
|
||||||
|
|
||||||
{% block title %}
|
{% block title %}
|
||||||
<title>Create a post - {{SITE_TITLE}}</title>
|
<title>Create a post - {{SITE_TITLE}}</title>
|
||||||
|
@ -20,15 +20,15 @@
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=49">
|
<link rel="stylesheet" href="{{ ('css/'~v.theme~'.css') | asset }}">
|
||||||
{% if v.css %}
|
{% if v.css %}
|
||||||
<link rel="stylesheet" href="/@{{v.username}}/css">
|
<link rel="stylesheet" href="/@{{v.username}}/css">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=254">
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
||||||
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=49">
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -169,11 +169,11 @@
|
||||||
</script>
|
</script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script src="/assets/js/vendor/purify.min.js?v=251"></script>
|
<script src="{{ 'js/vendor/purify.min.js' | asset }}"></script>
|
||||||
<script src="/assets/js/vendor/marked.min.js?v=251"></script>
|
<script src="{{ 'js/vendor/marked.min.js' | asset }}"></script>
|
||||||
<script src="/assets/js/marked.custom.js?v=252"></script>
|
<script src="{{ 'js/marked.custom.js' | asset }}"></script>
|
||||||
<script src="/assets/js/formatting.js?v=240"></script>
|
<script src="{{ 'js/formatting.js' | asset }}"></script>
|
||||||
<script src="/assets/js/submit.js?v=255"></script>
|
<script src="{{ 'js/submit.js' | asset }}"></script>
|
||||||
|
|
||||||
{% include "gif_modal.html" %}
|
{% include "gif_modal.html" %}
|
||||||
|
|
||||||
|
|
|
@ -299,9 +299,9 @@
|
||||||
<div>
|
<div>
|
||||||
{% for b in u.badges %}
|
{% for b in u.badges %}
|
||||||
{% if b.url %}
|
{% if b.url %}
|
||||||
<a rel="nofollow noopener noreferrer" href="{{b.url}}"><img alt="{{b.name}}" width=55 height=60 loading="lazy" src="{{b.path}}?v=1016" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{b.text}}"></a>
|
<a rel="nofollow noopener noreferrer" href="{{b.url}}"><img alt="{{b.name}}" width=55 height=60 loading="lazy" src="{{b.path}}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{b.text}}"></a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<img alt="{{b.name}}" width=55 height=60 loading="lazy" src="{{b.path}}?v=1016" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{b.text}}">
|
<img alt="{{b.name}}" width=55 height=60 loading="lazy" src="{{b.path}}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{b.text}}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -420,9 +420,9 @@
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
{% for b in u.badges %}
|
{% for b in u.badges %}
|
||||||
{% if b.url %}
|
{% if b.url %}
|
||||||
<a rel="nofollow noopener noreferrer" href="{{b.url}}"><img alt="{{b.name}}" width=29.33 height=32 loading="lazy" src="{{b.path}}?v=1016" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{b.text}}"></a>
|
<a rel="nofollow noopener noreferrer" href="{{b.url}}"><img alt="{{b.name}}" width=29.33 height=32 loading="lazy" src="{{b.path}}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{b.text}}"></a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<img alt="{{b.name}}" width=29.33 height=32 loading="lazy" src="{{b.path}}?v=1016" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{b.text}}">
|
<img alt="{{b.name}}" width=29.33 height=32 loading="lazy" src="{{b.path}}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{b.text}}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -667,11 +667,11 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<div id='tax' class="d-none">{% if v.patron or u.patron or v.alts_patron or u.alts_patron %}0{% else %}0.03{% endif %}</div>
|
<div id='tax' class="d-none">{% if v.patron or u.patron or v.alts_patron or u.alts_patron %}0{% else %}0.03{% endif %}</div>
|
||||||
<script src="/assets/js/userpage_v.js?v=244"></script>
|
<script src="{{ 'js/userpage_v.js' | asset }}"></script>
|
||||||
<div id="username" class="d-none">{{u.username}}</div>
|
<div id="username" class="d-none">{{u.username}}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script src="/assets/js/userpage.js?v=241"></script>
|
<script src="{{ 'js/userpage.js' | asset }}"></script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -697,9 +697,9 @@
|
||||||
</nav>
|
</nav>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script src="/assets/js/vendor/purify.min.js?v=251"></script>
|
<script src="{{ 'js/vendor/purify.min.js' | asset }}"></script>
|
||||||
<script src="/assets/js/vendor/marked.min.js?v=252"></script>
|
<script src="{{ 'js/vendor/marked.min.js' | asset }}"></script>
|
||||||
<script src="/assets/js/marked.custom.js?v=251"></script>
|
<script src="{{ 'js/marked.custom.js' | asset }}"></script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -114,9 +114,9 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<div id='tax' class="d-none">{% if v.patron or u.patron %}0{% else %}0.03{% endif %}</div>
|
<div id='tax' class="d-none">{% if v.patron or u.patron %}0{% else %}0.03{% endif %}</div>
|
||||||
<script src="/assets/js/userpage_v.js?v=244"></script>
|
<script src="{{ 'js/userpage_v.js' | asset }}"></script>
|
||||||
<div id="username" class="d-none">{{u.username}}</div>
|
<div id="username" class="d-none">{{u.username}}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script src="/assets/js/userpage.js?v=241"></script>
|
<script src="{{ 'js/userpage.js' | asset }}"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -32,9 +32,9 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<div id='tax' class="d-none">{% if v.patron or u.patron %}0{% else %}0.03{% endif %}</div>
|
<div id='tax' class="d-none">{% if v.patron or u.patron %}0{% else %}0.03{% endif %}</div>
|
||||||
<script src="/assets/js/userpage_v.js?v=244"></script>
|
<script src="{{ 'js/userpage_v.js' | asset }}"></script>
|
||||||
<div id="username" class="d-none">{{u.username}}</div>
|
<div id="username" class="d-none">{{u.username}}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script src="/assets/js/userpage.js?v=241"></script>
|
<script src="{{ 'js/userpage.js' | asset }}"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue