Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change banner to nudge viewers on old editions to latest #4006

Merged
merged 2 commits into from
Feb 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/server/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def render_template(template, *args, **kwargs):
year = kwargs.get("year", request.view_args.get("year", DEFAULT_YEAR))
previous_year = get_previous_year(year)
config = kwargs.get("config", get_config(year))
slug = kwargs.get("slug", "")

# If the lang has already been set (e.g. for error pages) then use that
# Otherwise the requested lang, otherwise the default lang
Expand Down Expand Up @@ -108,6 +109,7 @@ def render_template(template, *args, **kwargs):
plural_ru=plural_ru,
DEFAULT_YEAR=DEFAULT_YEAR,
en_supported_years=en_supported_years,
slug=slug
)
return flask_render_template(template, *args, **kwargs)

Expand Down
13 changes: 7 additions & 6 deletions src/server/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def root(lang):
@app.route("/<lang>/<year>/table-of-contents")
@validate
def table_of_contents(lang, year):
return render_template("%s/%s/table_of_contents.html" % (lang, year))
return render_template("%s/%s/table_of_contents.html" % (lang, year), slug="table-of-contents")


@app.route("/<lang>/<year>/contributors")
Expand All @@ -47,13 +47,13 @@ def contributors(lang, year):
contributors_list = list(config["contributors"].items())
random.shuffle(contributors_list)
config["contributors"] = dict(contributors_list)
return render_template("%s/%s/contributors.html" % (lang, year), config=config)
return render_template("%s/%s/contributors.html" % (lang, year), config=config, slug="contributors")


@app.route("/<lang>/<year>/methodology")
@validate
def methodology(lang, year):
return render_template("%s/%s/methodology.html" % (lang, year))
return render_template("%s/%s/methodology.html" % (lang, year), slug="methodology")


# Accessibility Statement needs special case handling for trailing slashes
Expand All @@ -66,7 +66,7 @@ def accessibility_statement(lang):
if request.base_url[-1] == "/":
return redirect("/%s/accessibility-statement" % (lang)), 301
else:
return render_template("%s/accessibility_statement.html" % (lang))
return render_template("%s/accessibility_statement.html" % (lang), slug="accessibility-statement")


# Search needs special case handling for trailing slashes
Expand All @@ -85,7 +85,7 @@ def search(lang):
if request.base_url[-1] == "/":
return redirect("/%s/search" % lang), 301
else:
return render_template("%s/search.html" % lang)
return render_template("%s/search.html" % lang, slug="search")


# Redirect search by year
Expand Down Expand Up @@ -177,6 +177,7 @@ def chapter(lang, year, chapter):
prev_chapter=prev_chapter,
next_chapter=next_chapter,
chapter_config=chapter_config,
slug=chapter
)


Expand Down Expand Up @@ -219,7 +220,7 @@ def ebook(lang, year):
config["contributors"].items(), key=lambda items: items[1]["name"]
)
config["contributors"] = dict(sorted_contributors)
return render_template("%s/%s/ebook.html" % (lang, year), config=config)
return render_template("%s/%s/ebook.html" % (lang, year), config=config, slug="ebook")


# Redirect requests for http2 to new http URLs
Expand Down
2 changes: 1 addition & 1 deletion src/templates/base/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@
{% block content%}
<div id="skiptocontent"><a href="#maincontent">{{ self.skip_navigation() }}</a></div>
{% block announcement %}
{% if self.announcement_text %}
{% if self.announcement_text() %}
<aside class="banner">
<div class="container">
{{ self.announcement_text() }}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/en/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}HTTP Archive&#8217;s annual<br> <b>state of the web</b> report{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
You’re viewing a previous edition of the Web Almanac.
Check out the <a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">{{ DEFAULT_YEAR }} edition!</a>
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/es/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}HTTP Archive informe del<br><b>estado de la web</b> anual{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
Estás viendo una edición anterior del Web Almanac.
¡Consulta <a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">a edición de {{ DEFAULT_YEAR }}!</a>
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
15 changes: 8 additions & 7 deletions src/templates/fr/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}Rapport annuel<br>de HTTP Archive sur<br><b>l’état du Web</b>{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
Vous consultez une édition précédente du Web Almanac.
Découvrez <a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">l’édition {{ DEFAULT_YEAR }}!</a>
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down Expand Up @@ -147,7 +148,7 @@
{% endif %}

{% block contributors_description %}
Le Web Almanac a été rendu possible grâce au travail acharné de la communauté Web. {{ self.contributors() }} personnes ont consacré bénévolement d’innombrables heures à planifier, faire des recherches, rédiger et mettre à votre disposition l'édition {{ year }} du Web Almanac.
Le Web Almanac a été rendu possible grâce au travail acharné de la communauté Web. {{ self.contributors() }} personnes ont consacré bénévolement d’innombrables heures à planifier, faire des recherches, rédiger et mettre à votre disposition lédition {{ year }} du Web Almanac.
{% endblock %}
{% block contributors_link %}Voir les contributeurs et contributrices{% endblock %}

Expand Down Expand Up @@ -225,7 +226,7 @@
"developers": "Développement",
"editors": "Édition",
"leads": "Gestion de projet",
"committee": "Comité d'organisation",
"committee": "Comité dorganisation",
"reviewers": "Relecture",
"translators": "Traduction",
}
Expand All @@ -239,7 +240,7 @@
"developers": "Développement",
"editors": "Édition",
"leads": "Gestion de projet",
"committee": "Comité d'organisation",
"committee": "Comité dorganisation",
"reviewers": "Relecture",
"translators": "Traduction",
}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/hi/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}HTTP Archive के वार्षिक<br> <b>वेब की स्थिति</b> की रिपोर्ट{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
आप वेब पंचांग का पिछला संस्करण देख रहे हैं।
<a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">{{ DEFAULT_YEAR }} संस्करण</a> देखें!
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
19 changes: 10 additions & 9 deletions src/templates/it/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,18 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}Rapporto annuale<br> <b>sullo stato del web</b> di HTTP Archive{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
Stai visualizzando un’edizione precedente del Web Almanac.
Dai un’occhiata all’<a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">edizione del {{ DEFAULT_YEAR }}!</a>
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
<p>
La nostra missione è combinare le statistiche grezze e le tendenze del HTTP Archive con l'esperienza della comunità web. Il Web Almanac è un rapporto completo sullo stato del web, supportato da dati reali e da esperti web di fiducia. L'edizione {{ year }} è composta da {{supported_chapters | length}} capitoli che abbracciano aspetti del page content, user experience, publishing e distribution.
La nostra missione è combinare le statistiche grezze e le tendenze del HTTP Archive con lesperienza della comunità web. Il Web Almanac è un rapporto completo sullo stato del web, supportato da dati reali e da esperti web di fiducia. Ledizione {{ year }} è composta da {{supported_chapters | length}} capitoli che abbracciano aspetti del page content, user experience, publishing e distribution.
</p>
{% endblock %}

Expand All @@ -42,7 +43,7 @@
{% block translation_not_available %}Inglese - non disponibile in italiano{% endblock %}
{% block in_english %} (Inglese){% endblock %}
{% block language_switcher %}Seleziona la lingua{% endblock %}
{% block year_switcher %}Seleziona l'anno{% endblock %}
{% block year_switcher %}Seleziona lanno{% endblock %}
{% block table_of_contents_switcher %}Seleziona sommario{% endblock %}

{% block home %}Pagina iniziale{% endblock %}
Expand Down Expand Up @@ -155,7 +156,7 @@
{% block methodology_stat_2_title %}Dati trattati{% endblock %}
{% block methodology_link %}Scopri la nostra metodologia{% endblock %}
{% block methodology_description %}
Se non diversamente specificato, le metriche in tutti i {{ supported_chapters | length }} capitoli del Web Almanac {{ year }} provengono dal dataset dell'archivio HTTP. HTTP Archive è un progetto gestito dalla comunità che tiene traccia del modo in cui è costruito il Web dal 2010. Utilizzando WebPageTest e Lighthouse "under the hood", i metadati di {{ self.total_websites() }} di siti Web vengono testati mensilmente e inclusi in un database BigQuery pubblico per l'analisi. Il set di dati di {{ self.dataset() }} è stato utilizzato come base per le metriche del Web Almanac {{ year }}. Per ulteriori informazioni, vedere la pagina Methodology.
Se non diversamente specificato, le metriche in tutti i {{ supported_chapters | length }} capitoli del Web Almanac {{ year }} provengono dal dataset dellarchivio HTTP. HTTP Archive è un progetto gestito dalla comunità che tiene traccia del modo in cui è costruito il Web dal 2010. Utilizzando WebPageTest e Lighthouse "under the hood", i metadati di {{ self.total_websites() }} di siti Web vengono testati mensilmente e inclusi in un database BigQuery pubblico per lanalisi. Il set di dati di {{ self.dataset() }} è stato utilizzato come base per le metriche del Web Almanac {{ year }}. Per ulteriori informazioni, vedere la pagina Methodology.
{% endblock %}

{% block introduction %}Introduzione{% endblock %}
Expand All @@ -169,13 +170,13 @@

{% block ebook_title %}Ebook{% endblock %}
{% block ebook_download_short %}Ebook PDF ({{ ebook_size_in_mb }}MB){% endblock %}
{% block ebook_download %}Download l'intera Web Almanac del {{ year }} in formato PDF ({{ ebook_size_in_mb }}MB){% endblock %}
{% block ebook_download %}Download lintera Web Almanac del {{ year }} in formato PDF ({{ ebook_size_in_mb }}MB){% endblock %}
{% block ebook_download_note %}(Generato con <a href="https://www.princexml.com/">www.princexml.com</a>){% endblock %}

{%
set localizedPartTitles = {
"I. Page Content": "I. Contenuto della Pagina",
"II. User Experience": "II. L'Esperienza Utente",
"II. User Experience": "II. LEsperienza Utente",
"III. Content Publishing": "III. Pubblicazione di Contenuti",
"IV. Content Distribution": "IV. Distribuzione dei Contenuti"
}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/ja/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}HTTP Archiveの年次報告書<br> <b>ウェブの状態</b>レポート{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
ご覧になっているのは、Web Almanac の以前の版です。
<a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">{{ DEFAULT_YEAR }} 年版</a>をご覧ください。
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/nl/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}HTTP Archive&#8217;s jaarlijkse<br><b>staat van het web</b>rapport{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
U bekijkt een eerdere editie van de Web Almanac.
Bekijk de <a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">editie van {{ DEFAULT_YEAR }}!</a>
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/pt/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}HTTP Archive relatório annual do <br> <b>estado da web</b>{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
Você está visualizando uma edição anterior do Web Almanac.
Confira a <a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">edição de {{ DEFAULT_YEAR }}!</a>
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/ru/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}Ежегодный отчёт<br>HTTP Archive<br>о <b>состоянии веба</b>{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
Вы просматриваете предыдущий выпуск Веб-альманаха.
Ознакомьтесь с выпуском <a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">{{ DEFAULT_YEAR }} года!</a>
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/tr/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}HTTP Archive&#8217;ın yıllık<br> <b>web durumu</b> raporu{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
Web Almanac'ın önceki bir baskısını görüntülüyorsunuz.
<a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">{{ DEFAULT_YEAR }} baskısına</a> göz atın!.
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/uk/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}Щорічний звіт HTTP&nbsp;Archive<br>про <b>стан вебу</b>{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
Ви переглядаєте попереднє видання веб-альманаху.
Перегляньте випуск <a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">{{ DEFAULT_YEAR }} року!</a>
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/zh-CN/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}HTTP Archive的年度报告<br> <b>网络状态</b>报告{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
您正在查看 Web 年鉴的上一版。
查看 <a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">{{ DEFAULT_YEAR }} 年版!</a>.
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
9 changes: 5 additions & 4 deletions src/templates/zh-TW/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
{% block intro_title %}Web Almanac{% endblock %}
{% block intro_sub_title %}HTTP Archive 的年度<br> <b>網路狀態</b> 報告{% endblock %}

{% block announcement_text %}
{% block announcement_text -%}
{%- if year < DEFAULT_YEAR -%}
<p lang="en">
Join our second live stream for this year's edition on Thursday, 16th January 2025 on
<a href="https://www.youtube.com/live/zCiMls26CL8?si=eMsU_MmNYdL-UB4Z">YouTube</a>,
or save the <a href="/static/live-stream2.ics">calendar event</a>!
您正在查看舊版網路年鑑。
查看 <a href="/{{ lang }}/{{ DEFAULT_YEAR }}/{% if chapter_lang_exists(lang, DEFAULT_YEAR, slug) or page_lang_exists(lang, DEFAULT_YEAR, slug) %}{{ slug }}{% endif %}">{{ DEFAULT_YEAR }} 年版!</a>.
</p>
{%- endif -%}
{% endblock %}

{% block mission %}
Expand Down
Loading