Читайте документы поиск не работает - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь написать документацию, используя Sphinx в сочетании с темой read the docs, но функция поиска, похоже, не работает.

Я использую Python 3.7 с последней версией Sphinx иПрочитайте Docs Theme (оба установлены с pip install) в Windows 10. После создания страницы и открытия index.html в браузере (пробовал Edge и Chrome) я не могу найти мою автономную документацию.Страница поиска открывается, но отображается только анимация Search -> Search . -> Search .. -> Search …. Если я переключаю тему обратно на стандартную тему, поиск работает без проблем.

Поскольку поиск работает для стандартных тем, похоже, чтобыть проблемой, связанной с браузером, и при этом она не связана с тем фактом, что я не размещаю страницу на localhost.

Если я смотрю на ошибки в консоли, я вижу две ошибки

jquery.js:4 Failed to load file:///C:/user/documentation/_build/html/searchindex.js: 
Cross origin requests are only supported for protocol 
schemes: http, data, chrome, chrome-extension, https.

и

searchtools.js:144 Uncaught ReferenceError: Stemmer is not defined
at Object.query (searchtools.js:144)
at Object.setIndex (searchtools.js:83)
at searchindex.js:1

Я не смог найти ничего полезного для решения этой проблемы при поиске в Интернете.Также не работало обновление кэша браузера (Ctrl + F5), как описано в https://github.com/rtfd/readthedocs.org/issues/4026.

Кто-нибудь испытывал такую ​​же проблему?

1 Ответ

0 голосов
/ 24 сентября 2018

Я решил проблему с помощью следующего решения (https://github.com/rtfd/sphinx_rtd_theme/pull/672/commits/4b9053cb9e805211f227399d66d82361b3e2bf56).

Кредит переходит к пользователю GitHub @ tk0miya.

Сначала перейдите в папку установки Pythonи найдите layout.html внутри ./Lib/site-packages/sphinx_rtd_theme/layout.html.

Затем замените строку 191 - 204, содержащую

<script type="text/javascript"> 
        var DOCUMENTATION_OPTIONS = { 
            URL_ROOT:'{{ url_root }}', 
            VERSION:'{{ release|e }}', 
            LANGUAGE:'{{ language }}', 
            COLLAPSE_INDEX:false, 
            FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}', 
            HAS_SOURCE:  {{ has_source|lower }}, 
            SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}' 
        }; 
    </script> 
    {%- for scriptfile in script_files %} 
      <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script> 
    {%- endfor %} 

, на следующий код

{% if sphinx_version >= "1.8.0" %} 
      <script type="text/javascript" id="documentation_options" data-url_root="{{ pathto('', 1) }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script> 
      {%- for scriptfile in script_files %} 
        {{ js_tag(scriptfile) }} 
      {%- endfor %} 
    {% else %} 
      <script type="text/javascript"> 
          var DOCUMENTATION_OPTIONS = { 
              URL_ROOT:'{{ url_root }}', 
              VERSION:'{{ release|e }}', 
              LANGUAGE:'{{ language }}', 
              COLLAPSE_INDEX:false, 
              FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}', 
              HAS_SOURCE:  {{ has_source|lower }}, 
              SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}' 
          }; 
      </script> 
      {%- for scriptfile in script_files %} 
        <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script> 
      {%- endfor %} 
    {% endif %} 

Затем выполните make clean и make html внутри вашей папки с документацией для консоли. Важно, чтобы команды консоли выполнялись внутри вашей папки с документацией.

...