Add components.json (#2362)

This commit is contained in:
Joakim Sørensen 2022-10-12 23:14:43 +02:00 committed by GitHub
parent 22b8120c66
commit 7212f4beb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 2 deletions

33
components.py Normal file
View File

@ -0,0 +1,33 @@
import os
import json
def setup(app):
"""Setup connects events to the components output builder"""
app.connect("html-page-context", add_component_details)
app.connect("build-finished", create_output)
app.compoents_output = {}
is_production = os.getenv("NETLIFY") == "true"
return {
"version": "1.0.0",
"parallel_read_safe": True,
"parallel_write_safe": not is_production,
}
def add_component_details(app, pagename, templatename, context, doctree):
"""As each page is built, collect page details for the output."""
if pagename.startswith("components/"):
app.compoents_output[pagename] = {
"title": context["title"],
"url": context["pageurl"]
}
def create_output(app, exception):
"""Generates the components.json from the collected component pages"""
with open(os.path.join(app.builder.outdir, "components.json"), "wt") as f:
f.write(json.dumps(app.compoents_output))

View File

@ -39,7 +39,8 @@ sys.path.append(os.path.abspath("."))
extensions = [
"github",
"seo",
"sitemap",
"components",
"sitemap"
]
# Add any paths that contain templates here, relative to this directory.

View File

@ -13,7 +13,7 @@ from docutils import nodes
# This file is not processed by default as extension unless added.
# To add this extension from command line use:
# -Dextensions=github,seo,sitemap,schema_doc"
# -Dextensions=github,seo,sitemap,components,schema_doc"
# also for improve performance running old version
# -d_build/.doctrees-schema