1{% extends "!search.html" %}
2{% block extrahead %}
3    {{ super() }}
4    <script type="text/javascript">
5        var GLOSSARY_PAGE = 'glossary.html';
6
7        jQuery(function() {
8            $.getJSON("_static/glossary.json", function(glossary) {
9                var RESULT_TEMPLATE = '<div style="display: none" class="admonition seealso" id="glossary-result">' +
10                                      '  <p class="topic-title">' +
11                                      '    <a class="glossary-title" href="#"></a>' +
12                                      '  </p>' +
13                                      '  <div class="glossary-body"></div>' +
14                                      '</div>';
15                $("#search-results").prepend(RESULT_TEMPLATE);
16
17                var params = $.getQueryParameters();
18                if (params.q) {
19                    var search_param = params.q[0].toLowerCase();
20                    var glossary_item = glossary[search_param];
21                    if (glossary_item) {
22                        var resultDiv = $("#glossary-result");
23
24                        // set up the title text with a link to the glossary page
25                        resultDiv.find(".glossary-title").text('Glossary: ' + glossary_item.title);
26                        var link_target = search_param.replace(/ /g, '-');
27                        resultDiv.find(".glossary-title").attr(
28                            'href', GLOSSARY_PAGE + '#term-' + link_target
29                        );
30
31                        // rewrite any anchor links (to other glossary terms)
32                        // to have a full reference to the glossary page
33                        var body = $(glossary_item.body).children();
34                        body.find("a[href^='#']").each(function() {
35                            var current_url = $(this).attr('href');
36                            $(this).attr('href', GLOSSARY_PAGE + current_url);
37                        });
38                        resultDiv.find(".glossary-body").html(body);
39
40                        resultDiv.show();
41                    } else {
42                        $("#glossary-result").hide('');
43                    }
44                }
45            });
46        });
47    </script>
48{% endblock %}