Skip to content

Commit

Permalink
Add title to glossary result
Browse files Browse the repository at this point in the history
  • Loading branch information
ammaraskar committed Feb 10, 2019
1 parent 569acf7 commit 826ac81
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 8 deletions.
28 changes: 24 additions & 4 deletions Doc/tools/extensions/glossary_search.py
Expand Up @@ -9,10 +9,14 @@
"""
from os import path
from sphinx.addnodes import glossary
from sphinx.util import logging
from docutils.nodes import definition_list_item
import json


logger = logging.getLogger(__name__)


def process_glossary_nodes(app, doctree, fromdocname):
if app.builder.format != 'html':
return
Expand All @@ -25,13 +29,29 @@ def process_glossary_nodes(app, doctree, fromdocname):
definition = glossary_item[1]

rendered = app.builder.render_partial(definition)
terms[term] = rendered['html_body']
terms[term] = {
'title': glossary_item[0].astext(),
'body': rendered['html_body']
}

if hasattr(app.env, 'glossary_terms'):
app.env.glossary_terms.update(terms)
else:
app.env.glossary_terms = terms

def on_build_finish(app, exc):
if not hasattr(app.env, 'glossary_terms'):
return
if not app.env.glossary_terms:
return

logger.info('Writing glossary.json', color='green')
with open(path.join(app.outdir, '_static', 'glossary.json'), 'w') as f:
json.dump(app.env.glossary_terms, f)

if terms:
with open(path.join(app.outdir, '_static', 'glossary.json'), 'w') as f:
json.dump(terms, f)

def setup(app):
app.connect('doctree-resolved', process_glossary_nodes)
app.connect('build-finished', on_build_finish)

return {'version': '0.1', 'parallel_read_safe': True}
16 changes: 12 additions & 4 deletions Doc/tools/templates/search.html
Expand Up @@ -4,14 +4,22 @@
<script type="text/javascript">
jQuery(function() {
$.getJSON("_static/glossary.json", function(glossary) {
$("#search-results").prepend('<div style="display: none" class="admonition seealso" id="glossary-result"></div>');
var RESULT_TEMPLATE = '<div style="display: none" class="admonition seealso" id="glossary-result">' +
' <p class="glossary-title topic-title"></p>' +
' <div class="glossary-body"></div>' +
'</div>';
$("#search-results").prepend(RESULT_TEMPLATE);

var params = $.getQueryParameters();
if (params.q) {
var glossary_item = glossary[params.q[0].toLowerCase()];
var search_param = params.q[0].toLowerCase();
var glossary_item = glossary[search_param];
if (glossary_item) {
glossary_item = $(glossary_item).children();
$("#glossary-result").html(glossary_item).show();
var resultDiv = $("#glossary-result");
var body = $(glossary_item.body).children();
resultDiv.find(".glossary-body").html(body);
resultDiv.find(".glossary-title").text(glossary_item.title);
resultDiv.show();
} else {
$("#glossary-result").hide('');
}
Expand Down

0 comments on commit 826ac81

Please sign in to comment.