From 5335bc248fac2b603f7b7c8a6c97c7fa87c5bae3 Mon Sep 17 00:00:00 2001 From: Phuoc Anh Kha Le <76896393+anhkha2003@users.noreply.github.com> Date: Tue, 21 May 2024 23:09:22 -0500 Subject: [PATCH] Ad profile table (#110) --- judge/ratings.py | 2 + judge/utils/users.py | 61 +++++ judge/views/blog.py | 21 ++ judge/views/user.py | 59 +---- resources/darkmode.css | 406 +++++++++++++++-------------- resources/organization.scss | 5 +- resources/users.scss | 74 ++++++ templates/blog/list.html | 15 +- templates/organization/list.html | 2 +- templates/profile-table.html | 79 ++++++ templates/recent-organization.html | 16 -- templates/user/user-about.html | 8 +- 12 files changed, 474 insertions(+), 274 deletions(-) create mode 100644 judge/utils/users.py create mode 100644 templates/profile-table.html diff --git a/judge/ratings.py b/judge/ratings.py index f255e31..bfcb828 100644 --- a/judge/ratings.py +++ b/judge/ratings.py @@ -147,6 +147,7 @@ def recalculate_ratings(ranking, old_mean, times_ranked, historical_p): def rate_contest(contest): from judge.models import Rating, Profile from judge.models.profile import _get_basic_info + from judge.utils.users import get_contest_ratings rating_subquery = Rating.objects.filter(user=OuterRef("user")) rating_sorted = rating_subquery.order_by("-contest__end_time") @@ -239,6 +240,7 @@ def rate_contest(contest): ) _get_basic_info.dirty_multi([(uid,) for uid in user_ids]) + get_contest_ratings.dirty_multi([(uid,) for uid in user_ids]) RATING_LEVELS = [ diff --git a/judge/utils/users.py b/judge/utils/users.py new file mode 100644 index 0000000..b9eb0b6 --- /dev/null +++ b/judge/utils/users.py @@ -0,0 +1,61 @@ +from django.urls import reverse +from django.utils.formats import date_format +from django.utils.translation import gettext as _, gettext_lazy + +from judge.caching import cache_wrapper +from judge.models import Profile, Rating, Submission, Friend, ProfileInfo + + +def get_rating_rank(profile): + rank = None + if profile.rating: + rank = ( + Profile.objects.filter( + is_unlisted=False, + rating__gt=profile.rating, + ).count() + + 1 + ) + return rank + + +def get_points_rank(profile): + return ( + Profile.objects.filter( + is_unlisted=False, + performance_points__gt=profile.performance_points, + ).count() + + 1 + ) + + +@cache_wrapper(prefix="gcr") +def get_contest_ratings(profile): + return ( + profile.ratings.order_by("-contest__end_time") + .select_related("contest") + .defer("contest__description") + ) + + +def get_awards(profile): + ratings = get_contest_ratings(profile) + + sorted_ratings = sorted( + ratings, key=lambda x: (x.rank, -x.contest.end_time.timestamp()) + ) + + result = [ + { + "label": rating.contest.name, + "ranking": rating.rank, + "link": reverse("contest_ranking", args=(rating.contest.key,)) + + "#!" + + profile.username, + "date": date_format(rating.contest.end_time, _("M j, Y")), + } + for rating in sorted_ratings + if rating.rank <= 3 + ] + + return result diff --git a/judge/views/blog.py b/judge/views/blog.py index 62b8e32..e5a6d78 100644 --- a/judge/views/blog.py +++ b/judge/views/blog.py @@ -25,6 +25,7 @@ from judge.utils.cachedict import CacheDict from judge.utils.diggpaginator import DiggPaginator from judge.utils.tickets import filter_visible_tickets from judge.utils.views import TitleMixin +from judge.utils.users import get_rating_rank, get_points_rank, get_awards from judge.views.feed import FeedView @@ -81,6 +82,26 @@ class HomeFeedView(FeedView): ) Profile.prefetch_profile_cache([p.id for p in context["top_rated"]]) Profile.prefetch_profile_cache([p.id for p in context["top_scorer"]]) + + if self.request.user.is_authenticated: + context["rating_rank"] = get_rating_rank(self.request.profile) + context["points_rank"] = get_points_rank(self.request.profile) + + medals_list = get_awards(self.request.profile) + context["awards"] = { + "medals": medals_list, + "gold_count": 0, + "silver_count": 0, + "bronze_count": 0, + } + for medal in medals_list: + if medal["ranking"] == 1: + context["awards"]["gold_count"] += 1 + elif medal["ranking"] == 2: + context["awards"]["silver_count"] += 1 + elif medal["ranking"] == 3: + context["awards"]["bronze_count"] += 1 + return context diff --git a/judge/views/user.py b/judge/views/user.py index f413775..33a7074 100644 --- a/judge/views/user.py +++ b/judge/views/user.py @@ -43,6 +43,12 @@ from judge.tasks import import_users from judge.utils.problems import contest_completed_ids, user_completed_ids from judge.utils.ranker import ranker from judge.utils.unicode import utf8text +from judge.utils.users import ( + get_rating_rank, + get_points_rank, + get_awards, + get_contest_ratings, +) from judge.utils.views import ( QueryStringSortMixin, TitleMixin, @@ -142,22 +148,10 @@ class UserPage(TitleMixin, UserMixin, DetailView): rating = self.object.ratings.order_by("-contest__end_time")[:1] context["rating"] = rating[0] if rating else None - context["rank"] = ( - Profile.objects.filter( - is_unlisted=False, - performance_points__gt=self.object.performance_points, - ).count() - + 1 - ) + context["points_rank"] = get_points_rank(self.object) if rating: - context["rating_rank"] = ( - Profile.objects.filter( - is_unlisted=False, - rating__gt=self.object.rating, - ).count() - + 1 - ) + context["rating_rank"] = get_rating_rank(self.object) context["rated_users"] = Profile.objects.filter( is_unlisted=False, rating__isnull=False ).count() @@ -185,42 +179,9 @@ EPOCH = datetime(1970, 1, 1, tzinfo=timezone.utc) class UserAboutPage(UserPage): template_name = "user/user-about.html" - def get_awards(self, ratings): - result = {} - - sorted_ratings = sorted( - ratings, key=lambda x: (x.rank, -x.contest.end_time.timestamp()) - ) - - result["medals"] = [ - { - "label": rating.contest.name, - "ranking": rating.rank, - "link": reverse("contest_ranking", args=(rating.contest.key,)) - + "#!" - + self.object.username, - "date": date_format(rating.contest.end_time, _("M j, Y")), - } - for rating in sorted_ratings - if rating.rank <= 3 - ] - - num_awards = 0 - for i in result: - num_awards += len(result[i]) - - if num_awards == 0: - result = None - - return result - def get_context_data(self, **kwargs): context = super(UserAboutPage, self).get_context_data(**kwargs) - ratings = context["ratings"] = ( - self.object.ratings.order_by("-contest__end_time") - .select_related("contest") - .defer("contest__description") - ) + ratings = context["ratings"] = get_contest_ratings(self.object) context["rating_data"] = mark_safe( json.dumps( @@ -244,7 +205,7 @@ class UserAboutPage(UserPage): ) ) - context["awards"] = self.get_awards(ratings) + context["awards"] = get_awards(self.object) if ratings: user_data = self.object.ratings.aggregate(Min("rating"), Max("rating")) diff --git a/resources/darkmode.css b/resources/darkmode.css index 12957c8..0cf5fee 100644 --- a/resources/darkmode.css +++ b/resources/darkmode.css @@ -11,10 +11,10 @@ html { iframe { color-scheme: initial; } -html, body { +html, body, input, textarea, select, button, dialog { background-color: #181a1b; } -html, body { +html, body, input, textarea, select, button { border-color: #736b5e; color: #e8e6e3; } @@ -157,11 +157,11 @@ body { --darkreader-bgimg--md-typeset-table-sort-icon--desc: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5IDdoM2wtNC00LTQgNGgzdjE0aDJNMiAxN2gxMHYySDJNNiA1djJIMlY1bTAgNmg3djJIMnYtMloiLz48L3N2Zz4="); } .md-typeset h1 { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-typeset h5, .md-typeset h6 { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-typeset hr { border-bottom: .05rem solid var(--darkreader-border--md-default-fg-color--lightest); @@ -169,15 +169,15 @@ body { .md-typeset code, .md-typeset kbd, .md-typeset pre { - color: var(--darkreader-text--md-code-fg-color); + color: var(--darkreader-text--md-code-fg-color, #e8e6e3); } .md-typeset kbd { - background-color: var(--darkreader-bg--md-typeset-kbd-color); + background-color: var(--darkreader-bg--md-typeset-kbd-color, #181a1b); box-shadow: 0 .1rem 0 .05rem var(--darkreader-bg--md-typeset-kbd-border-color),0 .1rem 0 var(--darkreader-bg--md-typeset-kbd-border-color),0 -.1rem .2rem var(--darkreader-bg--md-typeset-kbd-accent-color) inset; - color: var(--darkreader-text--md-default-fg-color); + color: var(--darkreader-text--md-default-fg-color, #e8e6e3); } .md-typeset mark { - background-color: var(--darkreader-bg--md-typeset-mark-color); + background-color: var(--darkreader-bg--md-typeset-mark-color, #181a1b); color: inherit; } .md-typeset abbr { @@ -186,14 +186,14 @@ body { } @media (hover: none) { .md-typeset abbr[title]:-webkit-any(:focus, :hover)::after { - background-color: var(--darkreader-bg--md-default-fg-color); + background-color: var(--darkreader-bg--md-default-fg-color, #181a1b); box-shadow: var(--darkreader-bg--md-shadow-z3); - color: var(--darkreader-text--md-default-bg-color); + color: var(--darkreader-text--md-default-bg-color, #e8e6e3); } .md-typeset abbr[title]:is(:focus, :hover)::after { - background-color: var(--darkreader-bg--md-default-fg-color); + background-color: var(--darkreader-bg--md-default-fg-color, #181a1b); box-shadow: var(--darkreader-bg--md-shadow-z3); - color: var(--darkreader-text--md-default-bg-color); + color: var(--darkreader-text--md-default-bg-color, #e8e6e3); } } .md-typeset blockquote { @@ -203,10 +203,10 @@ body { border-right: .2rem solid var(--darkreader-border--md-default-fg-color--lighter); } .md-typeset blockquote { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-typeset table:not([class]) { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); border: .05rem solid var(--darkreader-border--md-typeset-table-color); } .md-typeset table:not([class]) td { @@ -217,21 +217,21 @@ body { box-shadow: 0 .05rem 0 var(--darkreader-bg--md-default-bg-color) inset; } .md-typeset table th[role="columnheader"]:hover::after { - background-color: var(--darkreader-bg--md-default-fg-color--lighter); + background-color: var(--darkreader-bg--md-default-fg-color--lighter, #181a1b); } .md-typeset table th[role="columnheader"][aria-sort="ascending"]::after { - background-color: var(--darkreader-bg--md-default-fg-color--light); + background-color: var(--darkreader-bg--md-default-fg-color--light, #181a1b); } .md-typeset table th[role="columnheader"][aria-sort="descending"]::after { - background-color: var(--darkreader-bg--md-default-fg-color--light); + background-color: var(--darkreader-bg--md-default-fg-color--light, #181a1b); } .md-banner { - background-color: var(--darkreader-bg--md-footer-bg-color); - color: var(--darkreader-text--md-footer-fg-color); + background-color: var(--darkreader-bg--md-footer-bg-color, #181a1b); + color: var(--darkreader-text--md-footer-fg-color, #e8e6e3); } .md-banner--warning { background: var(--darkreader-bg--md-typeset-mark-color); - color: var(--darkreader-text--md-default-fg-color); + color: var(--darkreader-text--md-default-fg-color, #e8e6e3); } .md-banner__button { color: inherit; @@ -240,15 +240,15 @@ body { outline-color: var(--darkreader-border--md-accent-fg-color); } .md-skip { - background-color: var(--darkreader-bg--md-default-fg-color); - color: var(--darkreader-text--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-fg-color, #181a1b); + color: var(--darkreader-text--md-default-bg-color, #e8e6e3); outline-color: var(--darkreader-border--md-accent-fg-color); } :root { --darkreader-bgimg--md-clipboard-icon: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwmbHQ7c3ZnIHhtbG5zPSZxdW90O2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJnF1b3Q7IHZpZXdCb3g9JnF1b3Q7MCAwIDI0IDI0JnF1b3Q7Jmd0OyZsdDtwYXRoIGQ9JnF1b3Q7TTE5IDIxSDhWN2gxMW0wLTJIOGEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTFhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJtLTMtNEg0YTIgMiAwIDAgMC0yIDJ2MTRoMlYzaDEyVjFaJnF1b3Q7LyZndDsmbHQ7L3N2ZyZndDsiIC8+PC9zdmc+"); } .md-clipboard { - color: var(--darkreader-text--md-default-fg-color--lightest); + color: var(--darkreader-text--md-default-fg-color--lightest, #e8e6e3); outline-color: var(--darkreader-border--md-accent-fg-color); } .md-clipboard:not(.focus-visible) { @@ -256,44 +256,44 @@ body { outline-color: initial; } :hover > .md-clipboard { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-clipboard:-webkit-any(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-clipboard:is(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-clipboard::after { background-color: currentcolor; } .md-clipboard--inline:-webkit-any(:focus, :hover) code { - background-color: var(--darkreader-bg--md-accent-fg-color--transparent); - color: var(--darkreader-text--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color--transparent, #181a1b); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-clipboard--inline:is(:focus, :hover) code { - background-color: var(--darkreader-bg--md-accent-fg-color--transparent); - color: var(--darkreader-text--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color--transparent, #181a1b); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-consent__overlay { background-color: rgba(0, 0, 0, 0.54); } .md-consent__inner { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); border-color: initial; border-style: initial; border-width: 0px; box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0.2rem, rgba(0, 0, 0, 0.2) 0px 0.2rem 0.4rem; } .md-typeset .md-content__button { - color: var(--darkreader-text--md-default-fg-color--lighter); + color: var(--darkreader-text--md-default-fg-color--lighter, #e8e6e3); } .md-dialog { - background-color: var(--darkreader-bg--md-default-fg-color); + background-color: var(--darkreader-bg--md-default-fg-color, #181a1b); box-shadow: var(--darkreader-bg--md-shadow-z3); } .md-dialog__inner { - color: var(--darkreader-text--md-default-bg-color); + color: var(--darkreader-text--md-default-bg-color, #e8e6e3); } .md-feedback fieldset { border-color: initial; @@ -301,63 +301,63 @@ body { border-width: initial; } .md-feedback__list:hover .md-icon:not(:disabled) { - color: var(--darkreader-text--md-default-fg-color--lighter); + color: var(--darkreader-text--md-default-fg-color--lighter, #e8e6e3); } .md-feedback__icon { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-feedback__icon:not(:disabled).md-icon:hover { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-feedback__icon:disabled { - color: var(--darkreader-text--md-default-fg-color--lightest); + color: var(--darkreader-text--md-default-fg-color--lightest, #e8e6e3); } .md-footer { - background-color: var(--darkreader-bg--md-footer-bg-color); - color: var(--darkreader-text--md-footer-fg-color); + background-color: var(--darkreader-bg--md-footer-bg-color, #181a1b); + color: var(--darkreader-text--md-footer-fg-color, #e8e6e3); } .md-footer__link { outline-color: var(--darkreader-border--md-accent-fg-color); } .md-footer-meta { - background-color: var(--darkreader-bg--md-footer-bg-color--dark); + background-color: var(--darkreader-bg--md-footer-bg-color--dark, #181a1b); } html .md-footer-meta.md-typeset a { - color: var(--darkreader-text--md-footer-fg-color--light); + color: var(--darkreader-text--md-footer-fg-color--light, #e8e6e3); } html .md-footer-meta.md-typeset a:-webkit-any(:focus, :hover) { - color: var(--darkreader-text--md-footer-fg-color); + color: var(--darkreader-text--md-footer-fg-color, #e8e6e3); } html .md-footer-meta.md-typeset a:is(:focus, :hover) { - color: var(--darkreader-text--md-footer-fg-color); + color: var(--darkreader-text--md-footer-fg-color, #e8e6e3); } .md-copyright { - color: var(--darkreader-text--md-footer-fg-color--lighter); + color: var(--darkreader-text--md-footer-fg-color--lighter, #e8e6e3); } .md-copyright__highlight { - color: var(--darkreader-text--md-footer-fg-color--light); + color: var(--darkreader-text--md-footer-fg-color--light, #e8e6e3); } .md-social__link svg { fill: currentcolor; } .md-typeset .md-button { border-color: initial; - color: var(--darkreader-text--md-primary-fg-color); + color: var(--darkreader-text--md-primary-fg-color, #e8e6e3); } .md-typeset .md-button--primary { - background-color: var(--darkreader-bg--md-primary-fg-color); + background-color: var(--darkreader-bg--md-primary-fg-color, #181a1b); border-color: var(--darkreader-border--md-primary-fg-color); - color: var(--darkreader-text--md-primary-bg-color); + color: var(--darkreader-text--md-primary-bg-color, #e8e6e3); } .md-typeset .md-button:-webkit-any(:focus, :hover) { - background-color: var(--darkreader-bg--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color, #181a1b); border-color: var(--darkreader-border--md-accent-fg-color); - color: var(--darkreader-text--md-accent-bg-color); + color: var(--darkreader-text--md-accent-bg-color, #e8e6e3); } .md-typeset .md-button:is(:focus, :hover) { - background-color: var(--darkreader-bg--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color, #181a1b); border-color: var(--darkreader-border--md-accent-fg-color); - color: var(--darkreader-text--md-accent-bg-color); + color: var(--darkreader-text--md-accent-bg-color, #e8e6e3); } .md-typeset .md-input { border-bottom: .1rem solid var(--darkreader-border--md-default-fg-color--lighter); @@ -372,9 +372,9 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { box-shadow: var(--darkreader-bg--md-shadow-z2); } .md-header { - background-color: var(--darkreader-bg--md-primary-fg-color); + background-color: var(--darkreader-bg--md-primary-fg-color, #181a1b); box-shadow: rgba(0, 0, 0, 0) 0px 0px 0.2rem, rgba(0, 0, 0, 0) 0px 0.2rem 0.4rem; - color: var(--darkreader-text--md-primary-bg-color); + color: var(--darkreader-text--md-primary-bg-color, #e8e6e3); } .md-header--shadow { box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0.2rem, rgba(0, 0, 0, 0.2) 0px 0.2rem 0.4rem; @@ -408,16 +408,16 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { list-style-image: initial; } .md-nav__link--passed { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-nav__item .md-nav__link--active { - color: var(--darkreader-text--md-typeset-a-color); + color: var(--darkreader-text--md-typeset-a-color, #e8e6e3); } .md-nav__link:-webkit-any(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-nav__link:is(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-nav__link.focus-visible { outline-color: var(--darkreader-border--md-accent-fg-color); @@ -428,37 +428,37 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { @media screen and (max-width: 76.1875em) { .md-nav--primary, .md-nav--primary .md-nav { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); } .md-nav--primary .md-nav__title { - background-color: var(--darkreader-bg--md-default-fg-color--lightest); - color: var(--darkreader-text--md-default-fg-color--light); + background-color: var(--darkreader-bg--md-default-fg-color--lightest, #181a1b); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-nav--primary .md-nav__title .md-nav__icon::after { background-color: currentcolor; } .md-nav--primary .md-nav__title ~ .md-nav__list { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); box-shadow: 0 .05rem 0 var(--darkreader-bg--md-default-fg-color--lightest) inset; } .md-nav--primary .md-nav__title ~ .md-nav__list > :first-child { border-top: 0px; } .md-nav--primary .md-nav__title[for="__drawer"] { - background-color: var(--darkreader-bg--md-primary-fg-color); - color: var(--darkreader-text--md-primary-bg-color); + background-color: var(--darkreader-bg--md-primary-fg-color, #181a1b); + color: var(--darkreader-text--md-primary-bg-color, #e8e6e3); } .md-nav--primary .md-nav__item { border-top: .05rem solid var(--darkreader-border--md-default-fg-color--lightest); } .md-nav--primary .md-nav__item--active > .md-nav__link { - color: var(--darkreader-text--md-typeset-a-color); + color: var(--darkreader-text--md-typeset-a-color, #e8e6e3); } .md-nav--primary .md-nav__item--active > .md-nav__link:-webkit-any(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-nav--primary .md-nav__item--active > .md-nav__link:is(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-nav--primary .md-nav__link .md-nav__icon::after { background-color: currentcolor; @@ -472,8 +472,8 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } @media screen and (max-width: 59.9375em) { .md-nav__source { - background-color: var(--darkreader-bg--md-primary-fg-color--dark); - color: var(--darkreader-text--md-primary-bg-color); + background-color: var(--darkreader-bg--md-primary-fg-color--dark, #181a1b); + color: var(--darkreader-text--md-primary-bg-color, #e8e6e3); } } @media screen and (min-width: 60em) { @@ -488,7 +488,7 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { box-shadow: 0 0 .4rem .4rem var(--darkreader-bg--md-default-bg-color); } .md-nav__icon:hover { - background-color: var(--darkreader-bg--md-accent-fg-color--transparent); + background-color: var(--darkreader-bg--md-accent-fg-color--transparent, #181a1b); } .md-nav__icon::after { background-color: currentcolor; @@ -509,7 +509,7 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } @media screen and (max-width: 59.9375em) { .md-search__overlay { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); } } @media screen and (min-width: 60em) { @@ -518,7 +518,7 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } } .md-search__form { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); box-shadow: rgba(0, 0, 0, 0) 0px 0px 0.6rem; } @media screen and (min-width: 60em) { @@ -530,9 +530,9 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } } [data-md-toggle="search"]:checked ~ .md-header .md-search__form { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); box-shadow: rgba(0, 0, 0, 0.07) 0px 0px 0.6rem; - color: var(--darkreader-text--md-default-fg-color); + color: var(--darkreader-text--md-default-fg-color, #e8e6e3); } .md-search__input { background-color: transparent; @@ -540,32 +540,32 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } .md-search__input::placeholder, .md-search__input ~ .md-search__icon { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } @media screen and (min-width: 60em) { .md-search__input { color: inherit; } .md-search__input::placeholder { - color: var(--darkreader-text--md-primary-bg-color--light); + color: var(--darkreader-text--md-primary-bg-color--light, #e8e6e3); } .md-search__input + .md-search__icon { - color: var(--darkreader-text--md-primary-bg-color); + color: var(--darkreader-text--md-primary-bg-color, #e8e6e3); } [data-md-toggle="search"]:checked ~ .md-header .md-search__input + .md-search__icon, [data-md-toggle="search"]:checked ~ .md-header .md-search__input::placeholder { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } } .md-search__options > * { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-search__options > :not(.focus-visible) { -webkit-tap-highlight-color: transparent; outline-color: initial; } .md-search__suggest { - color: var(--darkreader-text--md-default-fg-color--lighter); + color: var(--darkreader-text--md-default-fg-color--lighter, #e8e6e3); } @media screen and (min-width: 60em) { [data-md-toggle="search"]:checked ~ .md-header .md-search__output { @@ -573,22 +573,22 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } } .md-search__scrollwrap { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); } @media screen and (min-width: 60em) { .md-search__scrollwrap::-webkit-scrollbar-thumb { - background-color: var(--darkreader-bg--md-default-fg-color--lighter); + background-color: var(--darkreader-bg--md-default-fg-color--lighter, #181a1b); } .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { - background-color: var(--darkreader-bg--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color, #181a1b); } } .md-search-result { - color: var(--darkreader-text--md-default-fg-color); + color: var(--darkreader-text--md-default-fg-color, #e8e6e3); } .md-search-result__meta { - background-color: var(--darkreader-bg--md-default-fg-color--lightest); - color: var(--darkreader-text--md-default-fg-color--light); + background-color: var(--darkreader-bg--md-default-fg-color--lightest, #181a1b); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-search-result__list { list-style-image: initial; @@ -603,31 +603,31 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { outline-color: initial; } .md-search-result__link:-webkit-any(:focus, :hover) { - background-color: var(--darkreader-bg--md-accent-fg-color--transparent); + background-color: var(--darkreader-bg--md-accent-fg-color--transparent, #181a1b); } .md-search-result__link:is(:focus, :hover) { - background-color: var(--darkreader-bg--md-accent-fg-color--transparent); + background-color: var(--darkreader-bg--md-accent-fg-color--transparent, #181a1b); } .md-search-result__more summary { - color: var(--darkreader-text--md-typeset-a-color); + color: var(--darkreader-text--md-typeset-a-color, #e8e6e3); outline-color: initial; } .md-search-result__more summary:-webkit-any(:focus, :hover) { - background-color: var(--darkreader-bg--md-accent-fg-color--transparent); - color: var(--darkreader-text--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color--transparent, #181a1b); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-search-result__more summary:is(:focus, :hover) { - background-color: var(--darkreader-bg--md-accent-fg-color--transparent); - color: var(--darkreader-text--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color--transparent, #181a1b); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-search-result__icon { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-search-result__icon::after { background-color: currentcolor; } .md-search-result__teaser { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-search-result__teaser mark { background-color: initial; @@ -635,12 +635,12 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } .md-search-result mark { background-color: initial; - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-select__inner { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); box-shadow: var(--darkreader-bg--md-shadow-z2); - color: var(--darkreader-text--md-default-fg-color); + color: var(--darkreader-text--md-default-fg-color, #e8e6e3); } .md-select__inner::after { border-bottom-color: var(--darkreader-border--md-default-bg-color); @@ -652,27 +652,27 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { outline-color: initial; } .md-select__link:-webkit-any(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-select__link:is(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-select__link:focus { - background-color: var(--darkreader-bg--md-default-fg-color--lightest); + background-color: var(--darkreader-bg--md-default-fg-color--lightest, #181a1b); } @media screen and (max-width: 76.1875em) { .md-sidebar--primary { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); } [data-md-toggle="drawer"]:checked ~ .md-container .md-sidebar--primary { box-shadow: var(--darkreader-bg--md-shadow-z3); } } .md-sidebar__scrollwrap::-webkit-scrollbar-thumb { - background-color: var(--darkreader-bg--md-default-fg-color--lighter); + background-color: var(--darkreader-bg--md-default-fg-color--lighter, #181a1b); } .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { - background-color: var(--darkreader-bg--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color, #181a1b); } @media screen and (max-width: 76.1875em) { .md-overlay { @@ -692,8 +692,8 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { background-color: currentcolor; } .md-tabs { - background-color: var(--darkreader-bg--md-primary-fg-color); - color: var(--darkreader-text--md-primary-bg-color); + background-color: var(--darkreader-bg--md-primary-fg-color, #181a1b); + color: var(--darkreader-text--md-primary-bg-color, #e8e6e3); } .md-tabs__list { list-style-image: initial; @@ -722,25 +722,25 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } .md-typeset .md-tag[href]:focus, .md-typeset .md-tag[href]:hover { - background-color: var(--darkreader-bg--md-accent-fg-color); - color: var(--darkreader-text--md-accent-bg-color); + background-color: var(--darkreader-bg--md-accent-fg-color, #181a1b); + color: var(--darkreader-text--md-accent-bg-color, #e8e6e3); } .md-typeset .md-tag-icon::before { - background-color: var(--darkreader-bg--md-default-fg-color--lighter); + background-color: var(--darkreader-bg--md-default-fg-color--lighter, #181a1b); } .md-typeset .md-tag-icon:-webkit-any(a:focus, a:hover)::before { - background-color: var(--darkreader-bg--md-accent-bg-color); + background-color: var(--darkreader-bg--md-accent-bg-color, #181a1b); } .md-typeset .md-tag-icon:is(a:focus, a:hover)::before { - background-color: var(--darkreader-bg--md-accent-bg-color); + background-color: var(--darkreader-bg--md-accent-bg-color, #181a1b); } :root { --md-tooltip-width: 20rem; } .md-tooltip { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); box-shadow: var(--darkreader-bg--md-shadow-z2); - color: var(--darkreader-text--md-default-fg-color); + color: var(--darkreader-text--md-default-fg-color, #e8e6e3); } :is(.focus-visible > .md-tooltip, .md-tooltip:target) { outline: var(--darkreader-border--md-accent-fg-color) auto; @@ -761,27 +761,27 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { color: rgb(232, 230, 227); } .md-annotation__index::after { - background-color: var(--darkreader-bg--md-default-fg-color--lighter); + background-color: var(--darkreader-bg--md-default-fg-color--lighter, #181a1b); } :is(.md-tooltip--active + .md-annotation__index, :hover > .md-annotation__index) { - color: var(--darkreader-text--md-accent-bg-color); + color: var(--darkreader-text--md-accent-bg-color, #e8e6e3); } :is(.md-tooltip--active + .md-annotation__index, :hover > .md-annotation__index)::after { - background-color: var(--darkreader-bg--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color, #181a1b); } .md-top { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); box-shadow: var(--darkreader-bg--md-shadow-z2); - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); outline-color: initial; } .md-top:-webkit-any(:focus, :hover) { - background-color: var(--darkreader-bg--md-accent-fg-color); - color: var(--darkreader-text--md-accent-bg-color); + background-color: var(--darkreader-bg--md-accent-fg-color, #181a1b); + color: var(--darkreader-text--md-accent-bg-color, #e8e6e3); } .md-top:is(:focus, :hover) { - background-color: var(--darkreader-bg--md-accent-fg-color); - color: var(--darkreader-text--md-accent-bg-color); + background-color: var(--darkreader-bg--md-accent-fg-color, #181a1b); + color: var(--darkreader-text--md-accent-bg-color, #e8e6e3); } :root { --darkreader-bgimg--md-version-icon: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgNTEyIj48IS0tISBGb250IEF3ZXNvbWUgRnJlZSA2LjIuMCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSBDb3B5cmlnaHQgMjAyMiBGb250aWNvbnMsIEluYy4tLT48cGF0aCBkPSJNMTM3LjQgMzc0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMDEgMTkxLjkgMjg4IDE5MS45TDMyIDE5MmMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsMTI4IDEyOHoiLz48L3N2Zz4="); @@ -794,21 +794,21 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { background-color: currentcolor; } .md-version__list { - background-color: var(--darkreader-bg--md-default-bg-color); + background-color: var(--darkreader-bg--md-default-bg-color, #181a1b); box-shadow: var(--darkreader-bg--md-shadow-z2); - color: var(--darkreader-text--md-default-fg-color); + color: var(--darkreader-text--md-default-fg-color, #e8e6e3); } .md-version__link { outline-color: initial; } .md-version__link:-webkit-any(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-version__link:is(:focus, :hover) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-version__link:focus { - background-color: var(--darkreader-bg--md-default-fg-color--lightest); + background-color: var(--darkreader-bg--md-default-fg-color--lightest, #181a1b); } :root { --darkreader-bgimg--md-admonition-icon--abstract: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE3IDlIN1Y3aDEwbTAgNkg3di0yaDEwbS0zIDZIN3YtMmg3TTEyIDNhMSAxIDAgMCAxIDEgMSAxIDEgMCAwIDEtMSAxIDEgMSAwIDAgMS0xLTEgMSAxIDAgMCAxIDEtMW03IDBoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0yWiIvPjwvc3ZnPg=="); @@ -826,10 +826,10 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } .md-typeset .admonition, .md-typeset details { - background-color: var(--darkreader-bg--md-admonition-bg-color); + background-color: var(--darkreader-bg--md-admonition-bg-color, #181a1b); border-color: rgb(0, 59, 158); box-shadow: var(--darkreader-bg--md-shadow-z1); - color: var(--darkreader-text--md-admonition-fg-color); + color: var(--darkreader-text--md-admonition-fg-color, #e8e6e3); } .md-typeset .admonition-title, .md-typeset summary { @@ -1138,33 +1138,33 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { --darkreader-bgimg--md-footnotes-icon: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5IDd2NEg1LjgzbDMuNTgtMy41OUw4IDZsLTYgNiA2IDYgMS40MS0xLjQyTDUuODMgMTNIMjFWN2gtMloiLz48L3N2Zz4="); } .md-typeset .footnote { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-typeset .footnote > ol > li:target { - color: var(--darkreader-text--md-default-fg-color); + color: var(--darkreader-text--md-default-fg-color, #e8e6e3); } .md-typeset [id^="fnref:"]:target > .footnote-ref { outline-color: initial; } .md-typeset .footnote-backref { - color: var(--darkreader-text--md-typeset-a-color); + color: var(--darkreader-text--md-typeset-a-color, #e8e6e3); } .md-typeset .footnote-backref:hover { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-typeset .footnote-backref::before { background-color: currentcolor; } .md-typeset .headerlink { - color: var(--darkreader-text--md-default-fg-color--lighter); + color: var(--darkreader-text--md-default-fg-color--lighter, #e8e6e3); } .md-typeset .headerlink:-webkit-any(:focus, :hover), .md-typeset :target > .headerlink { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-typeset .headerlink:is(:focus, :hover), .md-typeset :target > .headerlink { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-typeset :target { --md-scroll-margin: 3.6rem; @@ -1185,13 +1185,13 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { --md-scroll-offset: 0.15rem; } .md-typeset del.critic { - background-color: var(--darkreader-bg--md-typeset-del-color); + background-color: var(--darkreader-bg--md-typeset-del-color, #181a1b); } .md-typeset ins.critic { - background-color: var(--darkreader-bg--md-typeset-ins-color); + background-color: var(--darkreader-bg--md-typeset-ins-color, #181a1b); } .md-typeset .critic.comment { - color: var(--darkreader-text--md-code-hl-comment-color); + color: var(--darkreader-text--md-code-hl-comment-color, #e8e6e3); } .md-typeset .critic.block { box-shadow: none; @@ -1219,112 +1219,112 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { fill: currentcolor; } .highlight :-webkit-any(.o, .ow) { - color: var(--darkreader-text--md-code-hl-operator-color); + color: var(--darkreader-text--md-code-hl-operator-color, #e8e6e3); } .highlight :is(.o, .ow) { - color: var(--darkreader-text--md-code-hl-operator-color); + color: var(--darkreader-text--md-code-hl-operator-color, #e8e6e3); } .highlight .p { - color: var(--darkreader-text--md-code-hl-punctuation-color); + color: var(--darkreader-text--md-code-hl-punctuation-color, #e8e6e3); } .highlight :-webkit-any(.cpf, .l, .s, .sb, .sc, .s2, .si, .s1, .ss) { - color: var(--darkreader-text--md-code-hl-string-color); + color: var(--darkreader-text--md-code-hl-string-color, #e8e6e3); } .highlight :is(.cpf, .l, .s, .sb, .sc, .s2, .si, .s1, .ss) { - color: var(--darkreader-text--md-code-hl-string-color); + color: var(--darkreader-text--md-code-hl-string-color, #e8e6e3); } .highlight :-webkit-any(.cp, .se, .sh, .sr, .sx) { - color: var(--darkreader-text--md-code-hl-special-color); + color: var(--darkreader-text--md-code-hl-special-color, #e8e6e3); } .highlight :is(.cp, .se, .sh, .sr, .sx) { - color: var(--darkreader-text--md-code-hl-special-color); + color: var(--darkreader-text--md-code-hl-special-color, #e8e6e3); } .highlight :-webkit-any(.m, .mb, .mf, .mh, .mi, .il, .mo) { - color: var(--darkreader-text--md-code-hl-number-color); + color: var(--darkreader-text--md-code-hl-number-color, #e8e6e3); } .highlight :is(.m, .mb, .mf, .mh, .mi, .il, .mo) { - color: var(--darkreader-text--md-code-hl-number-color); + color: var(--darkreader-text--md-code-hl-number-color, #e8e6e3); } .highlight :-webkit-any(.k, .kd, .kn, .kp, .kr, .kt) { - color: var(--darkreader-text--md-code-hl-keyword-color); + color: var(--darkreader-text--md-code-hl-keyword-color, #e8e6e3); } .highlight :is(.k, .kd, .kn, .kp, .kr, .kt) { - color: var(--darkreader-text--md-code-hl-keyword-color); + color: var(--darkreader-text--md-code-hl-keyword-color, #e8e6e3); } .highlight :-webkit-any(.kc, .n) { - color: var(--darkreader-text--md-code-hl-name-color); + color: var(--darkreader-text--md-code-hl-name-color, #e8e6e3); } .highlight :is(.kc, .n) { - color: var(--darkreader-text--md-code-hl-name-color); + color: var(--darkreader-text--md-code-hl-name-color, #e8e6e3); } .highlight :-webkit-any(.no, .nb, .bp) { - color: var(--darkreader-text--md-code-hl-constant-color); + color: var(--darkreader-text--md-code-hl-constant-color, #e8e6e3); } .highlight :is(.no, .nb, .bp) { - color: var(--darkreader-text--md-code-hl-constant-color); + color: var(--darkreader-text--md-code-hl-constant-color, #e8e6e3); } .highlight :-webkit-any(.nc, .ne, .nf, .nn) { - color: var(--darkreader-text--md-code-hl-function-color); + color: var(--darkreader-text--md-code-hl-function-color, #e8e6e3); } .highlight :is(.nc, .ne, .nf, .nn) { - color: var(--darkreader-text--md-code-hl-function-color); + color: var(--darkreader-text--md-code-hl-function-color, #e8e6e3); } .highlight :-webkit-any(.nd, .ni, .nl, .nt) { - color: var(--darkreader-text--md-code-hl-keyword-color); + color: var(--darkreader-text--md-code-hl-keyword-color, #e8e6e3); } .highlight :is(.nd, .ni, .nl, .nt) { - color: var(--darkreader-text--md-code-hl-keyword-color); + color: var(--darkreader-text--md-code-hl-keyword-color, #e8e6e3); } .highlight :-webkit-any(.c, .cm, .c1, .ch, .cs, .sd) { - color: var(--darkreader-text--md-code-hl-comment-color); + color: var(--darkreader-text--md-code-hl-comment-color, #e8e6e3); } .highlight :is(.c, .cm, .c1, .ch, .cs, .sd) { - color: var(--darkreader-text--md-code-hl-comment-color); + color: var(--darkreader-text--md-code-hl-comment-color, #e8e6e3); } .highlight :-webkit-any(.na, .nv, .vc, .vg, .vi) { - color: var(--darkreader-text--md-code-hl-variable-color); + color: var(--darkreader-text--md-code-hl-variable-color, #e8e6e3); } .highlight :is(.na, .nv, .vc, .vg, .vi) { - color: var(--darkreader-text--md-code-hl-variable-color); + color: var(--darkreader-text--md-code-hl-variable-color, #e8e6e3); } .highlight :-webkit-any(.ge, .gr, .gh, .go, .gp, .gs, .gu, .gt) { - color: var(--darkreader-text--md-code-hl-generic-color); + color: var(--darkreader-text--md-code-hl-generic-color, #e8e6e3); } .highlight :is(.ge, .gr, .gh, .go, .gp, .gs, .gu, .gt) { - color: var(--darkreader-text--md-code-hl-generic-color); + color: var(--darkreader-text--md-code-hl-generic-color, #e8e6e3); } .highlight .gd { - background-color: var(--darkreader-bg--md-typeset-del-color); + background-color: var(--darkreader-bg--md-typeset-del-color, #181a1b); } .highlight .gi { - background-color: var(--darkreader-bg--md-typeset-ins-color); + background-color: var(--darkreader-bg--md-typeset-ins-color, #181a1b); } .highlight .hll { - background-color: var(--darkreader-bg--md-code-hl-color); + background-color: var(--darkreader-bg--md-code-hl-color, #181a1b); } .highlight span.filename { - background-color: var(--darkreader-bg--md-default-fg-color--lighter); + background-color: var(--darkreader-bg--md-default-fg-color--lighter, #181a1b); border-bottom: .05rem solid var(--darkreader-border--md-default-fg-color--lightest); } .highlight [data-linenos]::before { - background-color: var(--darkreader-bg--md-code-bg-color); + background-color: var(--darkreader-bg--md-code-bg-color, #181a1b); box-shadow: -.05rem 0 var(--darkreader-bg--md-default-fg-color--lightest) inset; - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .highlighttable .linenos { - background-color: var(--darkreader-bg--md-code-bg-color); + background-color: var(--darkreader-bg--md-code-bg-color, #181a1b); } .highlighttable .linenodiv { box-shadow: -.05rem 0 var(--darkreader-bg--md-default-fg-color--lightest) inset; } .highlighttable .linenodiv pre { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .linenodiv a { color: inherit; } .md-typeset .keys span { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } :root { --darkreader-bgimg--md-tabbed-icon--next: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTguNTkgMTYuNTggMTMuMTcgMTIgOC41OSA3LjQxIDEwIDZsNiA2LTYgNi0xLjQxLTEuNDJaIi8+PC9zdmc+"); @@ -1343,17 +1343,17 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { } .md-typeset .tabbed-labels > label { border-bottom-color: transparent; - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-typeset .tabbed-labels > label:hover { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-typeset .tabbed-button { - color: var(--darkreader-text--md-default-fg-color--light); + color: var(--darkreader-text--md-default-fg-color--light, #e8e6e3); } .md-typeset .tabbed-button:hover { - background-color: var(--darkreader-bg--md-accent-fg-color--transparent); - color: var(--darkreader-text--md-accent-fg-color); + background-color: var(--darkreader-bg--md-accent-fg-color--transparent, #181a1b); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-typeset .tabbed-button::after { background-color: currentcolor; @@ -1385,7 +1385,7 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { .md-typeset .tabbed-set > input:nth-child(7):checked ~ .tabbed-labels > :nth-child(7), .md-typeset .tabbed-set > input:nth-child(8):checked ~ .tabbed-labels > :nth-child(8), .md-typeset .tabbed-set > input:nth-child(9):checked ~ .tabbed-labels > :nth-child(9) { - color: var(--darkreader-text--md-accent-fg-color); + color: var(--darkreader-text--md-accent-fg-color, #e8e6e3); } .md-typeset .no-js .tabbed-set > input:first-child:checked ~ .tabbed-labels > :first-child, .md-typeset .no-js .tabbed-set > input:nth-child(10):checked ~ .tabbed-labels > :nth-child(10), @@ -1450,14 +1450,14 @@ html .md-footer-meta.md-typeset a:is(:focus, :hover) { .md-typeset .tabbed-set > input:nth-child(7).focus-visible ~ .tabbed-labels > :nth-child(7), .md-typeset .tabbed-set > input:nth-child(8).focus-visible ~ .tabbed-labels > :nth-child(8), .md-typeset .tabbed-set > input:nth-child(9).focus-visible ~ .tabbed-labels > :nth-child(9) { - background-color: var(--darkreader-bg--md-accent-fg-color--transparent); + background-color: var(--darkreader-bg--md-accent-fg-color--transparent, #181a1b); } :root { --darkreader-bgimg--md-tasklist-icon: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMSAxMkMxIDUuOTI1IDUuOTI1IDEgMTIgMXMxMSA0LjkyNSAxMSAxMS00LjkyNSAxMS0xMSAxMVMxIDE4LjA3NSAxIDEyem0xNi4yOC0yLjcyYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTUuOTcgNS45Ny0yLjQ3LTIuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwzIDNhLjc1Ljc1IDAgMCAwIDEuMDYgMGw2LjUtNi41eiIvPjwvc3ZnPg=="); --darkreader-bgimg--md-tasklist-icon--checked: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMSAxMkMxIDUuOTI1IDUuOTI1IDEgMTIgMXMxMSA0LjkyNSAxMSAxMS00LjkyNSAxMS0xMSAxMVMxIDE4LjA3NSAxIDEyem0xNi4yOC0yLjcyYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTUuOTcgNS45Ny0yLjQ3LTIuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwzIDNhLjc1Ljc1IDAgMCAwIDEuMDYgMGw2LjUtNi41eiIvPjwvc3ZnPg=="); } .md-typeset .task-list-indicator::before { - background-color: var(--darkreader-bg--md-default-fg-color--lightest); + background-color: var(--darkreader-bg--md-default-fg-color--lightest, #181a1b); } .md-typeset [type="checkbox"]:checked + .task-list-indicator::before { background-color: rgb(43, 255, 152); @@ -2327,6 +2327,20 @@ a.user-redirect:hover { .user-stat-header { color: rgb(152, 143, 129); } +.profile-card { + border-color: rgb(58, 62, 65); + box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 8px; +} +.profile-card:hover { + box-shadow: rgba(0, 0, 0, 0.2) 0px 8px 16px; +} +.profile-card .card-header { + background-color: rgb(29, 31, 32); +} +.profile-card .medal-count { + background-color: rgba(37, 40, 42, 0.7); + color: rgb(232, 230, 227); +} .content-description pre, .content-description code, .content-description kbd, @@ -2336,12 +2350,12 @@ a.user-redirect:hover { } .content-description code, .content-description span.code { - background-color: var(--darkreader-bg--md-code-bg-color); - color: var(--darkreader-text--md-code-fg-color); + background-color: var(--darkreader-bg--md-code-bg-color, #181a1b); + color: var(--darkreader-text--md-code-fg-color, #e8e6e3); } .content-description pre { - background-color: var(--darkreader-bg--md-code-bg-color); - color: var(--darkreader-text--md-code-fg-color); + background-color: var(--darkreader-bg--md-code-bg-color, #181a1b); + color: var(--darkreader-text--md-code-fg-color, #e8e6e3); } .content-description pre code, .content-description pre div.code { @@ -2350,7 +2364,7 @@ a.user-redirect:hover { border-color: initial; border-style: initial; border-width: 0px; - color: var(--darkreader-text--md-code-fg-color); + color: var(--darkreader-text--md-code-fg-color, #e8e6e3); } .content-description pre.no-border { background-color: inherit; @@ -3159,6 +3173,9 @@ a.voted { .organization-row:hover { background-color: rgb(31, 33, 35); } +.organization-row:last-child { + border-bottom: none; +} .organization-container { border-color: rgb(62, 68, 70); } @@ -3237,10 +3254,10 @@ a.voted { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiPjxkZWZzPjxmaWx0ZXIgaWQ9ImRhcmtyZWFkZXItaW1hZ2UtZmlsdGVyIj48ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMC4yNDkgLTAuNjE0IC0wLjY3MiAwLjAwMCAxLjAzNSAtMC42NDYgMC4yODggLTAuNjY0IDAuMDAwIDEuMDIwIC0wLjYzNiAtMC42MDkgMC4yNTAgMC4wMDAgMC45OTQgMC4wMDAgMC4wMDAgMC4wMDAgMS4wMDAgMC4wMDAiIC8+PC9maWx0ZXI+PC9kZWZzPjxpbWFnZSB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIGZpbHRlcj0idXJsKCNkYXJrcmVhZGVyLWltYWdlLWZpbHRlcikiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QmxibUZpYkdVdFltRmphMmR5YjNWdVpEMGlibVYzSURBZ01DQTJOQ0EyTkNJZ2FHVnBaMmgwUFNJMk5IQjRJaUJwWkQwaVRHRjVaWEpmTVNJZ2RtVnljMmx2YmowaU1TNHhJaUIyYVdWM1FtOTRQU0l3SURBZ05qUWdOalFpSUhkcFpIUm9QU0kyTkhCNElpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJaUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklqNDhjR0YwYUNCa1BTSk5ORFV1TnpNc05qUklNelF1TnpVeVl5MHdMamN4TlN3d0xURXVNamsxTFRBdU1UY3pMVEV1TnpNNExUQXVOVEp6TFRBdU56azBMVEF1TnpVNExURXVNRFUyTFRFdU1qTTBiQzA1TGpRNE5DMHhOaTQxTmpRZ0lHTXRNQzR4TnpRc01DNDBOemd0TUM0ek5qa3NNQzQ0T0RjdE1DNDFPRFFzTVM0eU16UnNMVGd1T0RNMUxERTFMak16WXkwd0xqTXdOQ3d3TGpRek5DMHdMalkyTVN3d0xqZ3pOQzB4TGpBM01pd3hMakl3TVVNeE1TNDFOeklzTmpNdU9ERTJMREV4TGpBME1TdzJOQ3d4TUM0ek9URXNOalJJTUM0eE1qY2dJRXd4TlM0ek5pd3pPUzQyTkRGTU1DNDNNVElzTVRZdU5qYzFTREV4TGpZNVl6QXVOekUwTERBc01TNHlOQ3d3TGpBNU15d3hMalUzTml3d0xqSTNObU13TGpNek5Td3dMakU0TlN3d0xqWXpOQ3d3TGpRNU15d3dMamc1TXl3d0xqa3lObXc1TGpReUxERTFMamswT0NBZ1l6QXVNVEE0TFRBdU1qZ3NNQzR5TXpJdE1DNDFOVElzTUM0ek56UXRNQzQ0TVRKak1DNHhOQzB3TGpJMk1pd3dMakk1Tnkwd0xqVXpNU3d3TGpRM01TMHdMamd4TTJ3NExqSTFMVEUwTGpFMk1XTXdMak13TlMwd0xqUTNOeXd3TGpZeU1pMHdMamd5TXl3d0xqazFPQzB4TGpBMElDQmpNQzR6TXpZdE1DNHlNVGNzTUM0M05USXRNQzR6TWpVc01TNHlOVEV0TUM0ek1qVm9NVEF1TlRJMFRETXdMalUyTWl3ek9TNHhPRFpNTkRVdU56TXNOalI2SWk4K1BIQmhkR2dnWkQwaVRUWXhMamcwTERJekxqZzJZekF1TmpZM0xEQXNNUzR4T1RNc01DNHhPRE1zTVM0MU9Dd3dMalUxWXpBdU16ZzNMREF1TXpZMkxEQXVOVGdzTUM0NE5Td3dMalU0TERFdU5EVjJNeTQyU0RRekxqVXlNWFl0TW1Nd0xUQXVNemczTERBdU1EYzVMVEF1T0N3d0xqSXpPUzB4TGpJMElDQmpNQzR4Tmkwd0xqUXpPU3d3TGpRMExUQXVPRFFzTUM0NE5DMHhMakpzT0M0MExUZ3VORFpqTUM0M01qRXRNQzQzTWl3eExqTTBOeTB4TGpRd05pd3hMamc0TVMweUxqQTJZekF1TlRNekxUQXVOalV6TERBdU9UY3pMVEV1TWprM0xERXVNekU1TFRFdU9UTWdJR013TGpNME55MHdMall6TkN3d0xqWXdOaTB4TGpJMk55d3dMamM0TFRFdU9XTXdMakUzTXkwd0xqWXpNeXd3TGpJMkxURXVNekEwTERBdU1qWXRNaTR3TVdNd0xURXVNVFl0TUM0eU56Y3RNaTR3TlMwd0xqZ3pMVEl1TmpjZ0lHTXRNQzQxTlRNdE1DNDJNaTB4TGpNNU5pMHdMamt6TFRJdU5USTVMVEF1T1ROakxUQXVPVElzTUMweExqWTVOeXd3TGpJME15MHlMak16TERBdU56TmpMVEF1TmpNMExEQXVORGczTFRFdU1EY3NNUzR3T1MweExqTXhNU3d4TGpneElDQmpMVEF1TWpjNUxEQXVOek16TFRBdU5qUTJMREV1TWpJdE1TNHhMREV1TkRaakxUQXVORFV6TERBdU1qUXRNUzR4TERBdU1qa3pMVEV1T1RRc01DNHhObXd0TXk0eU9DMHdMalU0WXpBdU1qRXpMVEV1TkRVekxEQXVOakl6TFRJdU56SXNNUzR5TXkwekxqZ2dJR013TGpZd05pMHhMakE0TERFdU16VTVMVEV1T1Rnc01pNHlOaTB5TGpkak1DNDVMVEF1TnpJc01TNDVNeTB4TGpJMU55d3pMakE1TFRFdU5qRkROVEV1TmpZc01DNHhOemNzTlRJdU9UQTJMREFzTlRRdU1qUXNNR014TGpRek9Td3dMREl1TnpNMkxEQXVNakVzTXk0NE9URXNNQzQyTXlBZ1l6RXVNVFV5TERBdU5ESXNNaTR4TXpjc01TNHdNRE1zTWk0NU5Ea3NNUzQzTldNd0xqZ3hNeXd3TGpjME55d3hMalF6T0N3eExqWXpOeXd4TGpnM0xESXVOamRETmpNdU16Z3pMRFl1TURnekxEWXpMallzTnk0eU1pdzJNeTQyTERndU5EWWdJR013TERFdU1EWTJMVEF1TVRRNUxESXVNRFUwTFRBdU5EUTVMREl1T1RaakxUQXVNekF4TERBdU9UQTNMVEF1TnpFc01TNDNOekV0TVM0eU15d3lMalU1WXkwd0xqVXlMREF1T0RJdE1TNHhNak1zTVM0Mk1UTXRNUzQ0TVN3eUxqTTRJQ0JqTFRBdU5qZzNMREF1TnpZNExURXVOREUzTERFdU5UUTBMVEl1TVRrc01pNHpNMnd0TlM0Mk9Ua3NOUzQ0TkdNd0xqY3pNaTB3TGpJeU55d3hMalExT1Mwd0xqTTVPU3d5TGpFNExUQXVOVEpqTUM0M01pMHdMakV5TERFdU16ZzNMVEF1TVRnc01pMHdMakU0U0RZeExqZzBlaUl2UGp3dmMzWm5QZz09IiAvPjwvc3ZnPg=="); } .wmd-latex-button-display { - background-image: url("http://localhost:8000/static/pagedown/resources/latex-display.svg"); + background-image: url("http://127.0.0.1:8000/static/pagedown/resources/latex-display.svg"); } .wmd-link-button { - background-image: url("http://localhost:8000/static/pagedown/resources/link.svg"); + background-image: url("http://127.0.0.1:8000/static/pagedown/resources/link.svg"); } .wmd-user-reference-button { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPjxkZWZzPjxmaWx0ZXIgaWQ9ImRhcmtyZWFkZXItaW1hZ2UtZmlsdGVyIj48ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMC4yNDkgLTAuNjE0IC0wLjY3MiAwLjAwMCAxLjAzNSAtMC42NDYgMC4yODggLTAuNjY0IDAuMDAwIDEuMDIwIC0wLjYzNiAtMC42MDkgMC4yNTAgMC4wMDAgMC45OTQgMC4wMDAgMC4wMDAgMC4wMDAgMS4wMDAgMC4wMDAiIC8+PC9maWx0ZXI+PC9kZWZzPjxpbWFnZSB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbHRlcj0idXJsKCNkYXJrcmVhZGVyLWltYWdlLWZpbHRlcikiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BqeHpkbWNnYUdWcFoyaDBQU0l5TkNJZ2RtVnljMmx2YmowaU1TNHhJaUIzYVdSMGFEMGlNalFpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZZMk05SW1oMGRIQTZMeTlqY21WaGRHbDJaV052YlcxdmJuTXViM0puTDI1ekl5SWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQanhuSUhSeVlXNXpabTl5YlQwaWRISmhibk5zWVhSbEtEQWdMVEV3TWpndU5Da2lQanh3WVhSb0lHUTlJbTB4TWlBd1l5MHdMalF3TlNBd0xUQXVPREExSURBdU1EWXdNekkyTFRFdU1UZzRJREF1TVRVMk1qVXRNQzR5TWpRZ01DNHdOVFkzT0Mwd0xqUTBJREF1TVRNeE16VXRNQzQyTlRZZ01DNHlNVGczTlMwd0xqQTRNeUF3TGpBek5EQXhMVEF1TVRZM09TQXdMakExTlRNMExUQXVNalE1T0NBd0xqQTVNemMxTFRBdU1ETTBJREF1TURFMU9ETXRNQzR3TmlBd0xqQTBOVGswTFRBdU1Ea3pOeUF3TGpBMk1qVXRNQzR5TURNeUlEQXVNVEF3TlRndE1DNDBNREl4SURBdU1qRTNNRFF0TUM0MU9UTTNJREF1TXpRek56VXRNQzR3TWpjZ01DNHdNVGMwTFRBdU1EWTNNU0F3TGpBeE16TTVMVEF1TURrek9DQXdMakF6TVRJMUxUQXVNRFUyTXlBd0xqQXpPRFkwTFRBdU1UQXhJREF1TURnME1Ua3RNQzR4TlRZeUlEQXVNVEkwT1RVdE1DNHhOVFk1SURBdU1URXlOaTB3TGpNeU1UWWdNQzR5TVRZdE1DNDBOamc0SURBdU16UXpPQzB3TGpFek5ESWdNQzR4TWpBM0xUQXVNalE1TkNBd0xqSTNNalF0TUM0ek56VWdNQzQwTURZeUxUQXVOREkxTVNBd0xqUXpOVGt0TUM0M09UTTJJREF1T0RrM01TMHhMakE1TXpnZ01TNDBNemMyTFRBdU5URTFOQ0F3TGprd016UXRNQzQ1TURBeUlERXVPVEl3TlMweExqQTJNalFnTWk0NU5qZzNMVEF1TURjNE15MHdMakF4TmpVdE1DNHhOVEF4TFRBdU1ESXlOQzB3TGpJeE9EZ2dNQzB3TGpVeU5URWdNQzR4TnpFdE1DNDJOVFExSURFdU1UWTROUzB3TGpNeE1qVWdNaTR5TVRnM0lEQXVNakF3TnlBd0xqWXhOak1nTUM0MU16UTJJREV1TVRBeE5TQXdMamczTlNBeExqTTNOU0F3TGpRMU56TWdNUzQzTnpjNElERXVOREkxTnlBekxqSTFPVGdnTWk0Mk9EYzFJRFF1TVRnM09IWXhMakF6TVd3dE1TQXhMVElnTVdNdE1TNDJNVGN6SURBdU9EQXhMVE11TWpJNE5DQXhMall3TlMwMExqZzBNemdnTWk0ME1EWXRNQzQ0T1RVeE15QXdMalUwTFRFdU1qUXhOU0F4TGpZdE1TNHhOVFl5SURJdU5UazBJREF1TURReE5qWTBJREF1TmpJMkxUQXVNVGcwTkRnZ01TNDBNamNnTUM0ME16YzFJREV1T0RRMElEQXVOVGt3T1NBd0xqTXdOQ0F4TGpJNU5Ua2dNQzR4TURZZ01TNDVNemMxSURBdU1UVTJJREV1T0RjMk5pMHdMakF3TVNBekxqYzBPRFFnTUNBMUxqWXlOU0F3SURJdU5qWTVJREF1TURBeElEVXVNek14SURBZ09DQXdJREl1TXpZM0lEQWdOQzQzTWpjZ01DNHdNRFFnTnk0d09UUWdNQ0F3TGpjMk9DMHdMakExTkNBd0xqazRNUzB3TGpnMk5TQXdMamt3TmkweExqVWdNQzR3TVRRdE1DNDVNeklnTUM0d05qa3RNUzQ1TnpZdE1DNDJOVFl0TWk0Mk9EZ3RNQzQxT1RJdE1DNDJNREl0TVM0ME16UXRNQzQ0TkMweUxqRTFOaTB4TGpJMUxURXVNRFl4TFRBdU5USTFMVEl1TVRJNExURXVNRE0zTFRNdU1UZzRMVEV1TlRZeWJDMHlMVEV0TVMweGRpMHhMakF6TVdNeExqSTJNaTB3TGpreU9DQXlMakl6TFRJdU5ERWdNaTQyT0RndE5DNHhPRGM0SURBdU16UXRNQzR5TnpNMklEQXVOamMwTFRBdU56VTRPQ0F3TGpnM05DMHhMak0zTlNBd0xqTTBNaTB4TGpBMU1ESWdNQzR5TVRNdE1pNHdORGMzTFRBdU16RXlMVEl1TWpFNE55MHdMakEyT1Mwd0xqQXlNalF0TUM0eE5DMHdMakF4TmpVdE1DNHlNVGtnTUMwd0xqRTJNaTB4TGpBME9ESXRNQzQxTkRjdE1pNHdOalV6TFRFdU1EWXlMVEl1T1RZNE55MHdMak10TUM0MU5EQTFMVEF1TmpZNUxURXVNREF4TnkweExqQTVOQzB4TGpRek56WXRNQzR4TWpZdE1DNHhNek00TFRBdU1qUXhMVEF1TWpnMU5TMHdMak0zTlMwd0xqUXdOakl0TUM0d01EWXRNQzR3TURVMUxUQXVNREkxSURBdU1EQTFOUzB3TGpBek1TQXdMVEF1TXpreUxUQXVNelE1T1Mwd0xqZ3lOeTB3TGpZeE9EazBMVEV1TWpneExUQXVPRFF6TnpVdE1DNHhNVFV0TUM0d05UWXlNaTB3TGpJeU55MHdMakV3T0RVMExUQXVNelEwTFRBdU1UVTJNalV0TUM0d09EUXRNQzR3TXpRd01TMHdMakUyTlMwd0xqQTJOREkyTFRBdU1qVXRNQzR3T1RNM05TMHdMakkxTlMwd0xqQTRPRFE0TFRBdU5URTJMVEF1TVRjek5UWXRNQzQzT0RJdE1DNHlNVGczTlMwd0xqQXlMVEF1TURBek5EQTFMVEF1TURReUlEQXVNREF6TVRRNExUQXVNRFl5SURBdE1DNHlORGt0TUM0d016a3hORFF0TUM0ME9UVXRNQzR3TmpVeU5TMHdMamMxTFRBdU1EWXlOWG9pSUdacGJHdzlJaU16TkRRNU5XVWlJSFJ5WVc1elptOXliVDBpZEhKaGJuTnNZWFJsS0RBZ01UQXlPQzQwS1NJdlBqeHdZWFJvSUdROUltMHdJREV3TlRFdU5HTXdMakF5TmpReE9TQXdMak1nTUM0eE1qWTFNU0F3TGpZZ01DNDBNemMxSURBdU9DQXdMalU1TURrZ01DNHpJREV1TWprMU9TQXdMakVnTVM0NU16YzFJREF1TW1nMUxqWXlOU0E0SURjdU1EazBZekF1TlRjMkxUQXVNU0F3TGpnME1pMHdMalVnTUM0NU1EWXRNV2d0TWpSNklpQm1hV3hzUFNJak1tTXpaVFV3SWk4K1BDOW5Qand2YzNablBnPT0iIC8+PC9zdmc+"); @@ -3249,10 +3266,10 @@ a.voted { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiPjxkZWZzPjxmaWx0ZXIgaWQ9ImRhcmtyZWFkZXItaW1hZ2UtZmlsdGVyIj48ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMC4yNDkgLTAuNjE0IC0wLjY3MiAwLjAwMCAxLjAzNSAtMC42NDYgMC4yODggLTAuNjY0IDAuMDAwIDEuMDIwIC0wLjYzNiAtMC42MDkgMC4yNTAgMC4wMDAgMC45OTQgMC4wMDAgMC4wMDAgMC4wMDAgMS4wMDAgMC4wMDAiIC8+PC9maWx0ZXI+PC9kZWZzPjxpbWFnZSB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbHRlcj0idXJsKCNkYXJrcmVhZGVyLWltYWdlLWZpbHRlcikiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1Bqd2hSRTlEVkZsUVJTQnpkbWNnSUZCVlFreEpReUFuTFM4dlZ6TkRMeTlFVkVRZ1UxWkhJREV1TVM4dlJVNG5JQ0FuYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2UjNKaGNHaHBZM012VTFaSEx6RXVNUzlFVkVRdmMzWm5NVEV1WkhSa0p6NDhjM1puSUdWdVlXSnNaUzFpWVdOclozSnZkVzVrUFNKdVpYY2dNQ0F3SURRNElEUTRJaUJvWldsbmFIUTlJalE0Y0hnaUlHbGtQU0pNWVhsbGNsOHpJaUIyWlhKemFXOXVQU0l4TGpFaUlIWnBaWGRDYjNnOUlqQWdNQ0EwT0NBME9DSWdkMmxrZEdnOUlqUTRjSGdpSUhodGJEcHpjR0ZqWlQwaWNISmxjMlZ5ZG1VaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpUGp4blBqeHdZWFJvSUdROUlrMHdMREk0TGpNM05XZ3hNaTQyTjJNdE1DNHdOaklzTXk0ek1TMHhMak16T0N3MkxqTXhNeTB6TGpRd015dzRMalpqTFRBdU9UUTFMREF1T0RreUxURXVPVGd5TERFdU5EQTRMVEl1T0RjNUxERXVOekEySUNBZ1l5MHhMakVzTUM0ek1qZ3RNaTR5Tml3d0xqTTVOaTB5TGpnNE15d3dMalF3T0Vnd2RqSXVNamcyYURndU56VjJMVEF1TURBell6Y3VNakExTFRBdU1ETXlMREV6TGpBME15MDFMamd4Tml3eE15NHhOemN0TVRJdU9UazNTREl5ZGkweU1rZ3dWakk0TGpNM05Yb2lJR1pwYkd3OUlpTXlOREZHTWpBaUx6NDhjR0YwYUNCa1BTSk5NallzTmk0ek56VjJNakpvTVRJdU56UmpNQ3d5TGprNU1TMHhMRFV1TnpReUxUSXVOamMwTERjdU9UVTJZeTB3TGpnek9Td3hMakE0T1MweExqZ3lPQ3d4TGpjNU1pMHlMamMyTVN3eUxqSXpNeUFnSUdNdE1DNHdNRGdzTUM0d01EUXRNQzR3TVRZc01DNHdNRGd0TUM0d01qTXNNQzR3TVRKakxUQXVNVE01TERBdU1EWTFMVEF1TWpjMExEQXVNVEl5TFRBdU5EQTVMREF1TVRjMll5MHhMalV4TkN3d0xqVTFOeTB6TGpreE5Td3dMalU0Tnkwekxqa3hOU3d3TGpVNE4wZ3lObll5TGpJNE5tZzRMamMxSUNBZ1l6Y3VNekUzTERBc01UTXVNalV0TlM0NU16TXNNVE11TWpVdE1UTXVNalYyTFRJeVNESTJlaUlnWm1sc2JEMGlJekkwTVVZeU1DSXZQand2Wno0OEwzTjJaejQ9IiAvPjwvc3ZnPg=="); } .wmd-code-button { - background-image: url("http://localhost:8000/static/pagedown/resources/code.svg"); + background-image: url("http://127.0.0.1:8000/static/pagedown/resources/code.svg"); } .wmd-image-button { - background-image: url("http://localhost:8000/static/pagedown/resources/image.svg"); + background-image: url("http://127.0.0.1:8000/static/pagedown/resources/image.svg"); } .wmd-olist-button { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPjxkZWZzPjxmaWx0ZXIgaWQ9ImRhcmtyZWFkZXItaW1hZ2UtZmlsdGVyIj48ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMC4yNDkgLTAuNjE0IC0wLjY3MiAwLjAwMCAxLjAzNSAtMC42NDYgMC4yODggLTAuNjY0IDAuMDAwIDEuMDIwIC0wLjYzNiAtMC42MDkgMC4yNTAgMC4wMDAgMC45OTQgMC4wMDAgMC4wMDAgMC4wMDAgMS4wMDAgMC4wMDAiIC8+PC9maWx0ZXI+PC9kZWZzPjxpbWFnZSB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbHRlcj0idXJsKCNkYXJrcmVhZGVyLWltYWdlLWZpbHRlcikiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BqeHpkbWNnWm1sc2JEMGlibTl1WlNJZ2FHVnBaMmgwUFNJeU5DSWdkbWxsZDBKdmVEMGlNQ0F3SURJMElESTBJaUIzYVdSMGFEMGlNalFpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUkrUEhCaGRHZ2daRDBpVFRZdU1EQXdNU0F5TGpjMVF6WXVNREF3TVNBeUxqTTVOVGMzSURVdU56VXlNamNnTWk0d09EazROQ0ExTGpRd05UYzJJREl1TURFMk16TkROUzR3TmpBeE1TQXhMamswTXlBMExqY3hNRE1nTWk0eE1qQTROaUEwTGpVMk5UZ2dNaTQwTkRNd00wdzBMalUyTkRJMklESXVORFEyTXpkRE5DNDFOakl5TmlBeUxqUTFNRFkzSURRdU5UVTRORElnTWk0ME5UZzRNU0EwTGpVMU1qYzFJREl1TkRjd05ESkROQzQxTkRFMElESXVORGt6TmpZZ05DNDFNakk0TWlBeUxqVXpNRFUxSURRdU5EazNNRFFnTWk0MU56Z3dPRU0wTGpRME5USTNJREl1Tmpjek5UWWdOQzR6TmpVNE5DQXlMamd3T1RRMUlEUXVNalU1TkNBeUxqazJNalE0UXpRdU1EUXhOellnTXk0eU56VXpOeUF6TGpjek5UTTRJRE11TmpJME9EZ2dNeTR6TlRJM05TQXpMamcyTXpreFF6TXVNREF4TkRRZ05DNHdPRE16TmlBeUxqZzVORFUySURRdU5UUTJNRFVnTXk0eE1UUXdNU0EwTGpnNU56TTFRek11TXpNek5EWWdOUzR5TkRnMk5pQXpMamM1TmpFMUlEVXVNelUxTlRRZ05DNHhORGMwTmlBMUxqRXpOakE1UXpRdU1qY3lNRFVnTlM0d05UZ3lOaUEwTGpNNE9UVTJJRFF1T1RjME56TWdOQzQxTURBeElEUXVPRGczTmpWV055NHlOVU0wTGpVd01ERWdOeTQyTmpReU1TQTBMamd6TlRnNUlEZ2dOUzR5TlRBeElEaEROUzQyTmpRek1TQTRJRFl1TURBd01TQTNMalkyTkRJeElEWXVNREF3TVNBM0xqSTFWakl1TnpWYUlpQm1hV3hzUFNJak1qRXlNVEl4SWk4K1BIQmhkR2dnWkQwaVRURTVMalE1T1RVZ01UaElNVEF1T1RrNU5Vd3hNQzQ0T0RJNUlERTRMakF3TmpkRE1UQXVNemcxTmlBeE9DNHdOalExSURrdU9UazVOVEVnTVRndU5EZzNNaUE1TGprNU9UVXhJREU1UXprdU9UazVOVEVnTVRrdU5UVXlNeUF4TUM0ME5EY3lJREl3SURFd0xqazVPVFVnTWpCSU1Ua3VORGs1TlV3eE9TNDJNVFl4SURFNUxqazVNek5ETWpBdU1URXpOU0F4T1M0NU16VTFJREl3TGpRNU9UVWdNVGt1TlRFeU9DQXlNQzQwT1RrMUlERTVRekl3TGpRNU9UVWdNVGd1TkRRM055QXlNQzR3TlRFNElERTRJREU1TGpRNU9UVWdNVGhhSWlCbWFXeHNQU0lqTWpFeU1USXhJaTgrUEhCaGRHZ2daRDBpVFRFNUxqUTVPVFVnTVRFdU5VZ3hNQzQ1T1RrMVRERXdMamc0TWprZ01URXVOVEEyTjBNeE1DNHpPRFUySURFeExqVTJORFVnT1M0NU9UazFNU0F4TVM0NU9EY3lJRGt1T1RrNU5URWdNVEl1TlVNNUxqazVPVFV4SURFekxqQTFNak1nTVRBdU5EUTNNaUF4TXk0MUlERXdMams1T1RVZ01UTXVOVWd4T1M0ME9UazFUREU1TGpZeE5qRWdNVE11TkRrek0wTXlNQzR4TVRNMUlERXpMalF6TlRVZ01qQXVORGs1TlNBeE15NHdNVEk0SURJd0xqUTVPVFVnTVRJdU5VTXlNQzQwT1RrMUlERXhMamswTnpjZ01qQXVNRFV4T0NBeE1TNDFJREU1TGpRNU9UVWdNVEV1TlZvaUlHWnBiR3c5SWlNeU1USXhNakVpTHo0OGNHRjBhQ0JrUFNKTk1Ua3VORGs1TlNBMVNERXdMams1T1RWTU1UQXVPRGd5T1NBMUxqQXdOamN6UXpFd0xqTTROVFlnTlM0d05qUTBPU0E1TGprNU9UVXhJRFV1TkRnM01UWWdPUzQ1T1RrMU1TQTJRemt1T1RrNU5URWdOaTQxTlRJeU9DQXhNQzQwTkRjeUlEY2dNVEF1T1RrNU5TQTNTREU1TGpRNU9UVk1NVGt1TmpFMk1TQTJMams1TXpJM1F6SXdMakV4TXpVZ05pNDVNelUxTVNBeU1DNDBPVGsxSURZdU5URXlPRFFnTWpBdU5EazVOU0EyUXpJd0xqUTVPVFVnTlM0ME5EYzNNaUF5TUM0d05URTRJRFVnTVRrdU5EazVOU0ExV2lJZ1ptbHNiRDBpSXpJeE1qRXlNU0l2UGp4d1lYUm9JR1E5SWswMUxqRTFNRGt6SURFd0xqVXhPVGxETkM0NE5EazFOeUF4TUM0ME5qWTNJRFF1TkRjME5EUWdNVEF1TlRnMk15QTBMakk0TURNeElERXdMamM0TURSRE15NDVPRGMwTVNBeE1TNHdOek16SURNdU5URXlOVE1nTVRFdU1EY3pNeUF6TGpJeE9UWTFJREV3TGpjNE1EUkRNaTQ1TWpZM055QXhNQzQwT0RjMElESXVPVEkyTnpnZ01UQXVNREV5TmlBekxqSXhPVFk1SURrdU56RTVOamxETXk0M056VTFOaUE1TGpFMk16ZzFJRFF1TmpVd05EUWdPQzQ1TURnMElEVXVOREV4TlRjZ09TNHdOREkzUXpVdU9EQTVJRGt1TVRFeU9ETWdOaTR5TVRjeklEa3VNamszTVNBMkxqVXlOekl5SURrdU5qUTRNelJETmk0NE5ESTJJREV3TGpBd05UZ2dOeUF4TUM0ME56STNJRGNnTVRGRE55QXhNUzQyTVRrMUlEWXVOekk0T1RVZ01USXVNRGdnTmk0ek9UUXdOaUF4TWk0ME1qQTFRell1TVRFMk15QXhNaTQzTURJNUlEVXVOell6TVRVZ01USXVPVE14SURVdU5EZzRNallnTVRNdU1UQTROa3cxTGpRd09EYzBJREV6TGpFMk1ERkROUzR5TVRNME9DQXhNeTR5T0RjZ05TNHdOVFF5T0NBeE15NHpPVGNnTkM0NU1qWTROaUF4TXk0MVNEWXVNalZETmk0Mk5qUXlNU0F4TXk0MUlEY2dNVE11T0RNMU9DQTNJREUwTGpJMVF6Y2dNVFF1TmpZME1pQTJMalkyTkRJZ01UVWdOaTR5TkRrNU9TQXhOVWd6TGpjMVF6TXVNek0xTnprZ01UVWdNeUF4TkM0Mk5qUXlJRE1nTVRRdU1qVkRNeUF4TWk0NU16WTBJRE11T1Rnek9EVWdNVEl1TWprM01TQTBMalUzTlRBMUlERXhMamt4TTB3MExqWXpOVEl5SURFeExqZzNNemxETkM0NU5USTFPU0F4TVM0Mk5qYzNJRFV1TVRZNE5ETWdNVEV1TlRJM05TQTFMak15TkRZNUlERXhMak0yT0RaRE5TNDBOVGcxTlNBeE1TNHlNekkxSURVdU5TQXhNUzR4TXpBMklEVXVOU0F4TVVNMUxqVWdNVEF1TnpjM05DQTFMalF6T0RZMUlERXdMalk0TVRnZ05TNDBNREkwTnlBeE1DNDJOREE0UXpVdU16WXdPRE1nTVRBdU5Ua3pOaUExTGpJNE5EYzFJREV3TGpVME16VWdOUzR4TlRBNU15QXhNQzQxTVRrNVdpSWdabWxzYkQwaUl6SXhNakV5TVNJdlBqeHdZWFJvSUdROUlrMHlMamsyT1RZM0lESXhMakk0TURORE1pNDVOamsyTnlBeU1TNHlPREF6SURNdU1EWXlOVEVnTWpFdU16WTBNU0F5TGprM05ESTJJREl4TGpJNE5EbE1NaTQ1TnprMk1pQXlNUzR5T1RBeFRESXVPVGt5T1NBeU1TNHpNREk0UXpNdU1EQXlPRGNnTWpFdU16RXlNU0F6TGpBeE5UQTVJREl4TGpNeU16TWdNeTR3TWprMU5pQXlNUzR6TXpVNVF6TXVNRFU0TkRnZ01qRXVNell4TWlBekxqQTVOalV6SURJeExqTTVNamNnTXk0eE5ETTNOU0F5TVM0ME1qZ3hRek11TWpNNE1TQXlNUzQwT1RnNUlETXVNelk1T1RZZ01qRXVOVGcySURNdU5UTTVOVGtnTWpFdU5qY3dPRU16TGpnNE1UTXhJREl4TGpnME1UY2dOQzR6TnpBME15QXlNaUExSURJeVF6VXVOak01TWpFZ01qSWdOaTR4T1RVNU5pQXlNUzQ0TVRnMklEWXVOakF4TXpJZ01qRXVORFl3TlVNM0xqQXdPVEl5SURJeExqRXdNREVnTnk0eU1URTJNeUF5TUM0Mk1ETXlJRGN1TVRrMU5UTWdNakF1TVRBeFF6Y3VNVGd5TVRrZ01Ua3VOamcwTmlBM0xqQXlPVEF6SURFNUxqTXdOVE1nTmk0M05qazROaUF4T1VNM0xqQXlPVEF6SURFNExqWTVORGNnTnk0eE9ESXhPU0F4T0M0ek1UVTBJRGN1TVRrMU5UTWdNVGN1T0RrNVF6Y3VNakV4TmpNZ01UY3VNemsyT0NBM0xqQXdPVEl5SURFMkxqZzVPVGtnTmk0Mk1ERXpNaUF4Tmk0MU16azFRell1TVRrMU9UWWdNVFl1TVRneE5DQTFMall6T1RJeElERTJJRFVnTVRaRE5DNHpOekEwTXlBeE5pQXpMamc0TVRNeElERTJMakUxT0RNZ015NDFNemsxT1NBeE5pNHpNamt5UXpNdU16WTVPVFlnTVRZdU5ERTBJRE11TWpNNE1TQXhOaTQxTURFeElETXVNVFF6TnpVZ01UWXVOVGN4T1VNekxqQTVOalV6SURFMkxqWXdOek1nTXk0d05UZzBPQ0F4Tmk0Mk16ZzRJRE11TURJNU5UWWdNVFl1TmpZME1VTXpMakF4TlRBNUlERTJMalkzTmpjZ015NHdNREk0TnlBeE5pNDJPRGM1SURJdU9Ua3lPU0F4Tmk0Mk9UY3lUREl1T1RjNU5qSWdNVFl1TnpBNU9Vd3lMamszTkRJeklERTJMamN4TlRGTU1pNDVOekU0T1NBeE5pNDNNVGMxVERJdU9UY3dPVEVnTVRZdU56RTROVXd5TGprMk9UWTNJREUyTGpjeE9UZERNaTQyTnpZM09DQXhOeTR3TVRJMklESXVOamMyTnpnZ01UY3VORGczTkNBeUxqazJPVFkzSURFM0xqYzRNRE5ETXk0eU5UZzJJREU0TGpBMk9UTWdNeTQzTWpRMk1pQXhPQzR3TnpNeUlEUXVNREU0TXpRZ01UY3VOemt5TVVNMExqQXlNVGNnTVRjdU56ZzVNaUEwTGpBek1ERTRJREUzTGpjNE1pQTBMakEwTXpjMUlERTNMamMzTVRsRE5DNHdOelEwSURFM0xqYzBPRGtnTkM0eE16QXdOQ0F4Tnk0M01URWdOQzR5TVRBME1TQXhOeTQyTnpBNFF6UXVNelk0TmprZ01UY3VOVGt4TnlBMExqWXlPVFUzSURFM0xqVWdOU0F4Tnk0MVF6VXVNell3TnprZ01UY3VOU0ExTGpVek5qQXhJREUzTGpVNU9Ua2dOUzQyTURneE1pQXhOeTQyTmpNMlF6VXVOamMzTmpnZ01UY3VOekkxTVNBMUxqWTVPREl6SURFM0xqYzVNRGNnTlM0Mk9UWXpJREUzTGpnMU1VTTFMalk1TkRJeklERTNMamt4TlRVZ05TNDJOalF3TXlBeE9DNHdNREkzSURVdU5UY3lOemdnTVRndU1EZ3hPRU0xTGpRNE5EVWdNVGd1TVRVNE5DQTFMak13T1RZeUlERTRMakkxSURVZ01UZ3VNalZETkM0MU9EVTNPU0F4T0M0eU5TQTBMakkxSURFNExqVTROVGdnTkM0eU5TQXhPVU0wTGpJMUlERTVMalF4TkRJZ05DNDFPRFUzT1NBeE9TNDNOU0ExSURFNUxqYzFRelV1TXpBNU5qSWdNVGt1TnpVZ05TNDBPRFExSURFNUxqZzBNVFlnTlM0MU56STNPQ0F4T1M0NU1UZ3lRelV1TmpZME1ETWdNVGt1T1RrM015QTFMalk1TkRJeklESXdMakE0TkRVZ05TNDJPVFl6SURJd0xqRTBPVU0xTGpZNU9ESXpJREl3TGpJd09UTWdOUzQyTnpjMk9DQXlNQzR5TnpRNUlEVXVOakE0TVRJZ01qQXVNek0yTkVNMUxqVXpOakF4SURJd0xqUXdNREVnTlM0ek5qQTNPU0F5TUM0MUlEVWdNakF1TlVNMExqWXlPVFUzSURJd0xqVWdOQzR6TmpnMk9TQXlNQzQwTURneklEUXVNakV3TkRFZ01qQXVNekk1TWtNMExqRXpNREEwSURJd0xqSTRPU0EwTGpBM05EUWdNakF1TWpVeE1TQTBMakEwTXpjMUlESXdMakl5T0RGRE5DNHdNekF4T0NBeU1DNHlNVGdnTkM0d01qRTNJREl3TGpJeE1EZ2dOQzR3TVRnek5DQXlNQzR5TURjNVF6TXVOekkwTmpJZ01Ua3VPVEkyT0NBekxqSTFPRFlnTVRrdU9UTXdOeUF5TGprMk9UWTNJREl3TGpJeE9UZERNaTQyTnpZM09DQXlNQzQxTVRJMklESXVOamMyTnpnZ01qQXVPVGczTkNBeUxqazJPVFkzSURJeExqSTRNRE5hVFRJdU9UY3hPRGtnTVRZdU56RTNOVXd5TGprM01Ea3hJREUyTGpjeE9EVkRNaTQ1TnpjMklERTJMamN4TWprZ015NHhOekU0TWlBeE5pNDFOVEUxSURJdU9UY3hPRGtnTVRZdU56RTNOVm9pSUdacGJHdzlJaU15TVRJeE1qRWlMejQ4TDNOMlp6ND0iIC8+PC9zdmc+"); @@ -3267,10 +3284,10 @@ a.voted { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9Qanh6ZG1jZ2RtbGxkMEp2ZUQwaU1DQXdJREl3SURJd0lpQjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaVBqeHdZWFJvSUdROUlrMHhJREZvTW5ZeVNERldNWHB0TUNBMGFESjJNa2d4VmpWNmJUQWdOR2d4T0hZeVNERldPWHB0TUNBMGFESjJNa2d4ZGkweWVtMHdJRFJvTW5ZeVNERjJMVEo2VFRVZ01XZ3lkakpJTlZZeGVtMHdJREUyYURKMk1rZzFkaTB5ZWswNUlERm9Nbll5U0RsV01YcHRNQ0EwYURKMk1rZzVWalY2YlRBZ09HZ3lkakpJT1hZdE1ucHRNQ0EwYURKMk1rZzVkaTB5ZW0wMExURTJhREoyTW1ndE1sWXhlbTB3SURFMmFESjJNbWd0TW5ZdE1ucHROQzB4Tm1neWRqSm9MVEpXTVhwdE1DQTBhREoyTW1ndE1sWTFlbTB3SURob01uWXlhQzB5ZGkweWVtMHdJRFJvTW5ZeWFDMHlkaTB5ZWlJdlBqd3ZjM1puUGc9PSIgLz48L3N2Zz4="); } .wmd-undo-button { - background-image: url("http://localhost:8000/static/pagedown/resources/undo.svg"); + background-image: url("http://127.0.0.1:8000/static/pagedown/resources/undo.svg"); } .wmd-redo-button { - background-image: url("http://localhost:8000/static/pagedown/resources/redo.svg"); + background-image: url("http://127.0.0.1:8000/static/pagedown/resources/redo.svg"); } .wmd-admonition-button { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QandoUkU5RFZGbFFSU0J6ZG1jZ0lGQlZRa3hKUXlBbkxTOHZWek5ETHk5RVZFUWdVMVpISURFdU1TOHZSVTRuSUNBbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdlIzSmhjR2hwWTNNdlUxWkhMekV1TVM5RVZFUXZjM1puTVRFdVpIUmtKejQ4YzNabklHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lEVXhNaUExTVRJaUlHbGtQU0pNWVhsbGNsOHhJaUIyWlhKemFXOXVQU0l4TGpFaUlIWnBaWGRDYjNnOUlqQWdNQ0ExTVRJZ05URXlJaUI0Yld3NmMzQmhZMlU5SW5CeVpYTmxjblpsSWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJajQ4Wno0OFp6NDhjR0YwYUNCa1BTSk5NelkxTERFMk55NDRTREl5T0M0eVl5MDFMamNzTUMweE1DNDBMVFF1TnkweE1DNDBMVEV3TGpSMkxUQXVPR013TFRVdU55dzBMamN0TVRBdU5Dd3hNQzQwTFRFd0xqUklNelkxWXpVdU55d3dMREV3TGpRc05DNDNMREV3TGpRc01UQXVOQ0FnSUNCMk1DNDRRek0zTlM0MUxERTJNeTR4TERNM01DNDRMREUyTnk0NExETTJOU3d4TmpjdU9Ib2lJR1pwYkd3OUlpTXpNRE5CTTBZaUx6NDhjR0YwYUNCa1BTSk5NelkxTERJeU9DNDRTREUxTXk0NVl5MDFMamNzTUMweE1DNDBMVFF1TnkweE1DNDBMVEV3TGpSMkxUQXVPR013TFRVdU55dzBMamN0TVRBdU5Dd3hNQzQwTFRFd0xqUklNelkxWXpVdU55d3dMREV3TGpRc05DNDNMREV3TGpRc01UQXVOQ0FnSUNCMk1DNDRRek0zTlM0MUxESXlOQzR4TERNM01DNDRMREl5T0M0NExETTJOU3d5TWpndU9Ib2lJR1pwYkd3OUlpTXpNRE5CTTBZaUx6NDhjR0YwYUNCa1BTSk5NelkxTERJNE9TNDRTREUxTXk0NVl5MDFMamNzTUMweE1DNDBMVFF1TnkweE1DNDBMVEV3TGpSMkxUQXVPR013TFRVdU55dzBMamN0TVRBdU5Dd3hNQzQwTFRFd0xqUklNelkxWXpVdU55d3dMREV3TGpRc05DNDNMREV3TGpRc01UQXVOQ0FnSUNCMk1DNDRRek0zTlM0MUxESTROUzR4TERNM01DNDRMREk0T1M0NExETTJOU3d5T0RrdU9Ib2lJR1pwYkd3OUlpTXpNRE5CTTBZaUx6NDhjR0YwYUNCa1BTSk5NelkxTERNMU1DNDVTREUxTXk0NVl5MDFMamNzTUMweE1DNDBMVFF1TnkweE1DNDBMVEV3TGpSMkxUQXVPR013TFRVdU55dzBMamN0TVRBdU5Dd3hNQzQwTFRFd0xqUklNelkxWXpVdU55d3dMREV3TGpRc05DNDNMREV3TGpRc01UQXVOQ0FnSUNCMk1DNDRRek0zTlM0MUxETTBOaTR5TERNM01DNDRMRE0xTUM0NUxETTJOU3d6TlRBdU9Yb2lJR1pwYkd3OUlpTXpNRE5CTTBZaUx6NDhjR0YwYUNCa1BTSk5NelkxTERReE1TNDVTREUxTXk0NVl5MDFMamNzTUMweE1DNDBMVFF1TnkweE1DNDBMVEV3TGpSMkxUQXVPR013TFRVdU55dzBMamN0TVRBdU5Dd3hNQzQwTFRFd0xqUklNelkxWXpVdU55d3dMREV3TGpRc05DNDNMREV3TGpRc01UQXVOQ0FnSUNCMk1DNDRRek0zTlM0MUxEUXdOeTR5TERNM01DNDRMRFF4TVM0NUxETTJOU3cwTVRFdU9Yb2lJR1pwYkd3OUlpTXpNRE5CTTBZaUx6NDhMMmMrUEhCaGRHZ2daRDBpVFRNNU1pdzBNeTQxU0RFM09TNHliRE00TGpZc05URXVOR2d4TkRRdU4yTXlOeTR5TERBc05Ea3VOU3d5TWk0ekxEUTVMalVzTkRrdU5YWXlOamt1TTJNd0xESTNMakl0TWpJdU15dzBPUzQxTFRRNUxqVXNORGt1TlVneE5UUXVOQ0FnSUdNdE1qY3VNaXd3TFRRNUxqVXRNakl1TXkwME9TNDFMVFE1TGpWV01UVXdMamxNTmpVdU15dzVPQzQwWXkwd0xqTXNNaTQzTFRBdU9DdzFMak10TUM0NExEaDJNelF5TGpOak1Dd3pOQzQyTERJNExqTXNOak1zTmpNc05qTklNemt5WXpNMExqWXNNQ3cyTXkweU9DNHpMRFl6TFRZelZqRXdOaTQwSUNBZ1F6UTFOQzQ1TERjeExqZ3NOREkyTGpZc05ETXVOU3d6T1RJc05ETXVOWG9pSUdacGJHdzlJaU16TUROQk0wWWlMejQ4Wno0OGNHRjBhQ0JrUFNKTk1USTFMalVzTVRRNUxqaHNOamd1TXl3eU5XTXpMallzTVM0ekxEWXVOUzB3TGpjc05pNHpMVFF1Tm13dE15NHlMVGN5TGpkakxUQXVNUzB4TGpVdE1DNDFMVEl1T1MweExqTXROQzR6YkRBdU1TMHdMakVnSUNBZ1l5MHdMakV0TUM0eUxUQXVNeTB3TGpRdE1DNDBMVEF1Tm13dE5EZ3VPQzAyTmk0MmJDMHhOaXd4TVM0M2JEUTBMakVzTmpBdU1tTXhMamdzTWk0MExERXVNaXcxTGpndE1TNHlMRGN1Tm13dE15NDRMREl1T0dNdE1pNDBMREV1T0MwMUxqZ3NNUzR5TFRjdU5pMHhMakpNTVRFNExEUTJMamtnSUNBZ2JDMHhOUzQ0TERFeExqWnNORFF1TkN3Mk1DNDNZekV1Tml3eUxqSXNNUzR4TERVdU1pMHhMakVzTmk0NGJDMDBMamNzTXk0MVl5MHlMaklzTVM0MkxUVXVNaXd4TGpFdE5pNDRMVEV1TVV3NE9TNDJMRFkzTGpaTU56SXVOaXc0TUd3ME55NHlMRFkwTGpRZ0lDQWdRekV5TVN3eE5EWXVPQ3d4TWpNc01UUTRMamtzTVRJMUxqVXNNVFE1TGpoNklFMHhNemdzTVRReExqbHNORGN1Tmkwek5DNDVZekl1T1MweUxqRXNOeTQyTERFdU15dzNMamdzTlM0NGJERXVNU3d6T1M0M1l5MHdMamNzTUM0eUxURXVOQ3d3TGpNdE1pd3dMamRzTFRFMExqSXNNVEF1TkNBZ0lDQmpMVEF1TVN3d0xqRXRNQzR6TERBdE1DNHpMREF1TVd3dE16WXVPQzB4TWk0MlF6RXpOeXd4TkRrdU5pd3hNelV1TVN3eE5EUXNNVE00TERFME1TNDVlaUlnWm1sc2JEMGlJek13TTBFelJpSXZQanh3WVhSb0lHUTlJazAyT0M0NUxEYzFMak5zTFRVdU55MDNMamRqTFRFd0xqVXRNVFF1TXkwM0xqTXRNelF1TlN3M0xUUTFiREl5TFRFMkxqRmpNVFF1TXkweE1DNDFMRE0wTGpVdE55NHpMRFExTERkc05TNDNMRGN1TjB3Mk9DNDVMRGMxTGpONklpQm1hV3hzUFNJak16QXpRVE5HSWk4K1BDOW5Qand2Wno0OEwzTjJaejQ9IiAvPjwvc3ZnPg=="); @@ -3664,9 +3681,6 @@ div.dmmd-preview-stale { .recently-attempted ul { list-style-image: initial; } -.organization-row:last-child { - border-bottom: none; -} .katex * { border-color: currentcolor; } diff --git a/resources/organization.scss b/resources/organization.scss index dd13738..c76f59a 100644 --- a/resources/organization.scss +++ b/resources/organization.scss @@ -43,6 +43,10 @@ background-color: #f3f3f3; } +.organization-row:last-child { + border-bottom: none; +} + .organization-container { border: 1px #ccc solid; margin-bottom: 3em; @@ -53,4 +57,3 @@ display: block; color: gray; } - diff --git a/resources/users.scss b/resources/users.scss index 44aacd8..971daf9 100644 --- a/resources/users.scss +++ b/resources/users.scss @@ -512,4 +512,78 @@ a.edit-profile { .user-stat-header { color: gray; +} + +.profile-card { + border: 1px solid #ddd; + border-radius: 8px; + overflow: hidden; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + transition: box-shadow 0.3s; + + &:hover { + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); + } + + .card-header { + background-color: #f7f7f7; + text-align: center; + padding: 5px; + } + + .avatar { + width: 80px; + height: 80px; + border-radius: 50%; + } + + .card-body { + padding: 20px; + padding-bottom: 5px; + } + + .user-info { + display: flex; + justify-content: space-between; + margin-bottom: 10px; + } + + .user-info-body { + font-weight: bold; + } + + /* Medals Container */ + .medals-container { + display: flex; + justify-content: center; + padding: 10px; + padding-top: 0px; + gap: 5px; + } + + /* Medal Item */ + .medal-item { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + + img { + width: 70px; /* Adjust size based on your actual image size */ + height: auto; + } + } + + .medal-count { + background-color: hsla(30, 4%, 91%, .7); + border-radius: 50%; + bottom: .5rem; + color: black; + font-size: 1em; + line-height: 1; + padding: 0.8em 0; + right: .5rem; + text-align: center; + width: 2.5em; + } } \ No newline at end of file diff --git a/templates/blog/list.html b/templates/blog/list.html index 7380f4b..d6eec60 100644 --- a/templates/blog/list.html +++ b/templates/blog/list.html @@ -2,16 +2,16 @@ {% block three_col_media %} {% include "blog/media-css.html" %} {% endblock %} @@ -98,7 +98,8 @@ {% endif %} {% include 'contests-countdown.html' %} - {% include 'recent-organization.html' %} + {% include 'profile-table.html' %} {% include 'top-users.html' %} + {% include 'recent-organization.html' %} {% endblock %} \ No newline at end of file diff --git a/templates/organization/list.html b/templates/organization/list.html index 719c835..aeed914 100644 --- a/templates/organization/list.html +++ b/templates/organization/list.html @@ -2,7 +2,7 @@ {% block two_col_media %} -{% endblock %} - {% if recent_organizations %} @@ -86,7 +86,7 @@

{{_('Awards')}}

- {% for medal in awards.medals %} + {% for medal in awards %} {% if medal.ranking == 1 %} {% set medal_url = static('awards/gold-medal.png') %} {% elif medal.ranking == 2%}