Как использовать sphinx_js с «классом экспорта по умолчанию»?

#javascript #python #python-sphinx #jsdoc

#javascript #питон #python-sphinx #jsdoc

Вопрос:

У меня есть проект с кодом на Python и Javascript, который я хотел бы задокументировать с помощью Sphinx. Мне не удается заставить sphinx_js работать. Мой проект Sphinx находится во вложенной папке docs. Код Javascript находится во внешнем интерфейсе / src, поэтому в моем docs/conf.py я настроил:

 js_source_path = "../frontend/src"
 

Мой JS-код в frontend/src/foo_controller.js выглядит следующим образом:

 /**
 * Some JSDoc like documentation just for testing.
 */
export default class extends Controller {
    /**
     * More JSDoc documentation for a function.
     */
    connect() {...}
}
 

В моем индексе.сначала у меня есть:

 .. js:autoclass:: ???
      :members:
 

Что бы я ни пробовал для ??? (foo_controller, controller / foo_controller, FooController, …) Я всегда получаю сообщение об ошибке:

Не было найдено документации JSDoc для объекта «…» или любого пути, заканчивающегося на это.

Как мне заменить ??? , чтобы задокументировать мой класс?

Комментарии:

1. Я не пробовал это, но autodoc логика именования объекта (вашего ??? ) была бы package.module.class в этом случае. Интересная вещь (если я не ошибаюсь) заключается в том, что export default class безымянный (вам придется поправить меня в этом). Итак, каким бы именем вы ни ссылались на «безымянный класс» , это должно быть то, что вы использовали бы в ??? maybe default , или foo_controller.default . Обходным путем было бы присвоить ему имя и попробовать использовать это имя… (Я размышляю по сравнению с python-sphinx)

2. js_source_path должно быть , по отношению к вашему conf.py . В вашем проекте вы настроили это значение таким образом, чтобы frontend и docs были братьями и сестрами в одной папке. Это правильно? Предполагая, что это правильно, тогда попробуйте .. js:autoclass:: Controller . Если это не сработает, то, возможно, проблема заключается в export default or extends внутри вашего объявления класса?