sphinx-doc/sphinx

searchindex.js contains rst_epilog matches for all pages in docs

Open

#4248 aperta il 17 nov 2017

Vedi su GitHub
 (1 commento) (0 reazioni) (0 assegnatari)Python (1985 fork)batch import
good first issuehelp wantedhtml search

Metriche repository

Star
 (5625 star)
Metriche merge PR
 (Merge medio 13g 10h) (8 PR mergiate in 30 g)

Descrizione

Problem: rst_epilog values are returned for all pages when searched for.

My understanding is that the searchindex.js file is built from the doctrees cache. https://github.com/sphinx-doc/sphinx/blob/master/sphinx/search/__init__.py#L239

Each doctree file contains all of the rst_epilog values. As a result, these are included for every page when indexed, e.g. this is included in all doctrees files: .. |TEST1| replace:: TestWord

Reproduce:

  1. Add something like this to the conf.py and build
rst_epilog = '''
.. |TEST1| replace:: TestWord
.. |TEST2| replace:: TestWord2
'''
  1. Search the rebuilt docs for "testword"
  2. All pages in the doc set will be returned, and none will not actually contain "testword"
  3. if you take a look at searchindex.js you will see the rst_epilog values indexed for all pages, e.g. {testword2:[0,1,2],testword:[0,1,2]}

Env: Tested using Sphinx 1.5.5 and 1.6.5 & python 2.7.10

Regards, Brian

Guida contributor