feat: improve language and project handling
- Default values for `lang` and `project` added in `render_template` to ensure consistent rendering parameters. - Included `lang` and `project` parameters in error and article templates for better context in error messages. - Enhanced search form in base template to persist selected `lang` and `project` improving user experience. These changes provide a more consistent and localized user experience by maintaining language and project context across different parts of the application. Fixes #17.
This commit is contained in:
parent
f91ccba437
commit
1e31998f50
2 changed files with 11 additions and 3 deletions
|
@ -92,6 +92,9 @@ def render_template(*args, **kwargs) -> Text:
|
|||
Returns:
|
||||
Text: The rendered template.
|
||||
"""
|
||||
kwargs.setdefault("lang", "en")
|
||||
kwargs.setdefault("project", "wiki")
|
||||
|
||||
return flask_render_template(
|
||||
*args,
|
||||
**kwargs,
|
||||
|
@ -237,6 +240,8 @@ def wiki_article(
|
|||
"article.html",
|
||||
title="Article not found",
|
||||
content=f"Sorry, the article {title} was not found in the {project} project in the {lang} language.",
|
||||
lang=lang,
|
||||
project=project,
|
||||
),
|
||||
404,
|
||||
)
|
||||
|
@ -247,6 +252,8 @@ def wiki_article(
|
|||
"article.html",
|
||||
title="Error",
|
||||
content=f"An error occurred while fetching the article {title} from the {project} project in the {lang} language.",
|
||||
lang=lang,
|
||||
project=project,
|
||||
),
|
||||
500,
|
||||
)
|
||||
|
@ -274,7 +281,6 @@ def wiki_article(
|
|||
a["href"] = f"/{project}/{lang}{href}"
|
||||
|
||||
elif href.startswith("//") or href.startswith("https://"):
|
||||
print(f"Checking {href}")
|
||||
parts = urlparse(href)
|
||||
|
||||
target_domain = f"https://{parts.netloc}"
|
||||
|
@ -337,6 +343,8 @@ def wiki_article(
|
|||
"article.html",
|
||||
title=title.replace("_", " "),
|
||||
content=processed_html,
|
||||
lang=lang,
|
||||
project=project,
|
||||
rtl=rtl,
|
||||
)
|
||||
|
||||
|
|
|
@ -12,12 +12,12 @@
|
|||
<form id="search-form" action="{{ url_for('search') }}" method="post">
|
||||
<select name="project" id="project">
|
||||
{% for key, value in wikimedia_projects.items() %}
|
||||
<option value="{{ key }}">{{ value }}</option>
|
||||
<option {% if key == project %}selected="selected"{% endif %} value="{{ key }}">{{ value }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<select name="lang" id="lang">
|
||||
{% for key, value in languages.items() %}
|
||||
<option {% if key == "en" %}selected="selected"{% endif %} value="{{ key }}">{{ value["name"] }}</option>
|
||||
<option {% if key == lang %}selected="selected"{% endif %} value="{{ key }}">{{ value["name"] }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<input type="text" name="query" id="query" placeholder="Search Wikipedia">
|
||||
|
|
Loading…
Reference in a new issue