Skip to content

Commit

Permalink
Create a 'search field' component for themes (#11045)
Browse files Browse the repository at this point in the history
``searchfield.html`` is similar to the existing ``searchbox.html``, but does not
have the heading "Quick Search". Instead, it uses "Search" as a placeholder
text. This gives a cleaner and less cluttered appearance.

The searchfield component is added to the basic theme and thus can be used
in any derivative theme. It is not used by default for backward compatibility.

The searchfield compenent is made the default in the sphinx13 theme.

CSS changes ensure that the top of the search field is aligned with the
top of the main content.
  • Loading branch information
timhoffm authored Apr 21, 2023
1 parent e2f66ce commit b430e05
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion doc/_themes/sphinx13/layout.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ <h3>{{ _('Navigation') }}</h3>
{%- block content %}
<div class="document">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
{%- include "searchbox.html" %}
{%- include "searchfield.html" %}
<div class="sphinxsidebar-navigation__contents">
<h3>{{ _('On this page') }}</h3>
{{ toc }}
Expand Down
5 changes: 5 additions & 0 deletions doc/_themes/sphinx13/static/sphinx13.css
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ div.sphinxsidebar {
overflow-wrap: break-word;
margin: 0;
padding-right: 15px;
padding-top: 0.5em;
font-size: 1em;
}

Expand Down Expand Up @@ -127,6 +128,10 @@ div.sphinxsidebar li.current > a {
display: none;
}

div.sphinxsidebar #searchbox {
margin: 12px 0 20px 0;
}

div.footer {
background-color: var(--colour-sphinx-blue);
color: #ccc;
Expand Down
23 changes: 23 additions & 0 deletions sphinx/themes/basic/searchfield.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{#
basic/searchfield.html
~~~~~~~~~~~~~~~~~~~~~~

Sphinx sidebar template: search field.
This component is similar to searchbox.html but does not include an
extra heading ("Quick search"). Instead, it uses a placeholder text
in the search field.

:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if pagename != "search" and builder != "singlehtml" %}
<div id="searchbox" style="display: none" role="search">
<div class="searchformwrapper">
<form class="search" action="{{ pathto('search') }}" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search"/>
<input type="submit" value="{{ _('Go') }}" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
{%- endif %}

0 comments on commit b430e05

Please sign in to comment.