如何自定义 sphinx.application.Sphinx.connect 的事件?
How can I customize the event of sphinx.application.Sphinx.connect?
我是Sphinx初学者,想了解一下运行机制。
以下内容来自本link.
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 and ref2),里面解释了它的函数的参数应该是,可是我怎么知道detail怎么写在这个功能?
当然可以参考一下,调试一下就知道是怎么回事了。 (但如果没有其他参考,只有本机代码存在怎么办。)
授人以鱼,供人一日;教他钓鱼,你养他一辈子请教我钓鱼
希望回答者能告诉我:
是否存在默认函数的事件?
是:
- 脚本的位置来自哪里?
- 你怎么知道的? (有没有什么技巧,比如hook 找一找,或者开发者你是其中之一吗?)
否:
- 有没有什么建议知道怎么写内容。 (不引用其他作者,仅引用本机源代码)
我知道有一些主观性的问题,但我很乐意接受任何'pearls of wisdom'他们愿意传授的,认为!
我明白了,答案是
是
- 来自
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搜索。
在路径中查找 → 范围 → 所有位置
我是Sphinx初学者,想了解一下运行机制。 以下内容来自本link.
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 and ref2),里面解释了它的函数的参数应该是,可是我怎么知道detail怎么写在这个功能?
当然可以参考一下,调试一下就知道是怎么回事了。 (但如果没有其他参考,只有本机代码存在怎么办。)
授人以鱼,供人一日;教他钓鱼,你养他一辈子请教我钓鱼
希望回答者能告诉我:
是否存在默认函数的事件?
是:
- 脚本的位置来自哪里?
- 你怎么知道的? (有没有什么技巧,比如hook 找一找,或者开发者你是其中之一吗?)
否:
- 有没有什么建议知道怎么写内容。 (不引用其他作者,仅引用本机源代码)
我知道有一些主观性的问题,但我很乐意接受任何'pearls of wisdom'他们愿意传授的,认为!
我明白了,答案是
是
- 来自
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搜索。
在路径中查找 → 范围 → 所有位置