1

I have static html documentation built using sphinx in:

$AIRFLOW_HOME/plugins/docs/

I want to create a new menu link "My Documentation" in the Airflow UI so this works:

class DocsView(BaseView):
    @expose("/")
    def my_docs(self):
        return send_from_directory(os.path.abspath("plugins/docs/build/html"), 'index.html')

docs_view = DocsView(
    category="My Documentation",
    name="Plugins",
    endpoint="my_docs"
)

And in my custom plugin class:

class MyPlugin(AirflowPlugin):
    admin_views = [docs_view]

The link is successfully showing in the menu bar and works but only for index.html. I don't use templates and just need section where the documentation for all the custom code could be read.

meneldor
  • 223
  • 1
  • 8

1 Answers1

0

I found a solution. I have to add the static url and folder path in DocsView as sphinx creates additional directories in build/html:

docs_view = DocsView(
    static_folder=os.path.abspath("plugins/docs/build/html"),
    static_url_path="/",
    category="My Documentation",
    name="Plugins",
    endpoint="my_docs"
)
meneldor
  • 223
  • 1
  • 8