Как я могу настроить событие sphinx.application.Sphinx.connect? - PullRequest
0 голосов
/ 28 мая 2020

Я новичок в Sphinx и хочу разобраться в механизме работы. Следующее содержимое взято из этой ссылки .

from sphinx.application import Sphinx

def html_page_context(app, pagename, templatename, context, doctree):
    ...

def setup(app: Sphinx):
    # event:
    # from sphinx.events import core_events
    # https://www.sphinx-doc.org/en/master/extdev/appapi.html#event-html-page-context
    # https://www.sphinx-doc.org/en/1.0/ext/appapi.html#event-html-page-context
    app.connect(event='html-page-context', callback=html_page_context)

Мой вопрос: как он узнает, как написать эту функцию (def html_page_context() ...)?

Я учусь в документация ( ref1 и ref2 ), и в нем объясняется, что параметры его функции должны быть, но как я могу узнать, как написать деталь в этом функция?

Конечно, я могу сослаться на это и отладить, чтобы знать, что происходит. (но что, если другой ссылки нет, существует только собственный код.)

Дайте человеку фи sh, и вы накормите его в течение дня; научи его, sh, и ты будешь кормить его всю жизнь. Пожалуйста, научи меня sh.

Надеюсь, ответчик, который скажет мне:

Является ли существующее событие функцией по умолчанию?

Да:

  1. Откуда взялось расположение скриптов?
  2. Откуда вы это знаете? (Есть ли какие-то навыки, например, ловушка для выяснения, или вы один из них разработчик?)

Нет:

  • Есть ли какие-то предложения знать, как писать контент. (не для ссылок от других авторов, только собственный исходный код)

Я знаю, что есть некоторые проблемы с некоторой субъективностью, но я с радостью приму любые «жемчужины мудрости», которые они готовы поделиться , думает!

1 Ответ

0 голосов
/ 28 мая 2020

Понятно, ответ

Да

  • Это из sphinx.builders.html.__init__.py setup()
  • Используйте поиск для поиска проекта sphinx.

простой способ - использовать поиск в IDE.

открыть путь X://.../PythonXX/Lib/site-packages/sphinx как проект,

, а затем начать поиск в любом ключевое слово, которое вам нравится, например, html-page-context

, наконец, вы найдете app.connect('html-page-context', setup_js_tag_helper), которое находится в sphinx.builders.html.__init__.py setup()), поэтому функция setup_js_tag_helper является поведением по умолчанию, и вы можете установить точки останова, чтобы узнать больше об интересных вещах.


быстрый поиск

Вы можете напрямую искать с PyCharm.

Найти на пути → Область → Все места enter image description here

...