Skip to content

Commit 43d177c

Browse files
committed
Avoid passing the app object around
1 parent 117abcb commit 43d177c

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

sphinxext/opengraph/__init__.py

+19-8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from typing import Any
1616

1717
from sphinx.application import Sphinx
18+
from sphinx.builders import Builder
1819
from sphinx.config import Config
1920
from sphinx.environment import BuildEnvironment
2021
from sphinx.util.typing import ExtensionMetadata
@@ -58,10 +59,14 @@ def make_tag(property: str, content: str, type_: str = "property") -> str:
5859

5960

6061
def get_tags(
61-
app: Sphinx,
6262
context: dict[str, Any],
6363
doctree: nodes.document,
64+
*,
65+
srcdir: str | Path,
66+
outdir: str | Path,
6467
config: Config,
68+
builder: Builder,
69+
env: BuildEnvironment,
6570
) -> str:
6671
# Get field lists for per-page overrides
6772
fields = context["meta"]
@@ -119,9 +124,7 @@ def get_tags(
119124

120125
# url tag
121126
# Get the URL of the specific page
122-
page_url = urljoin(
123-
config.ogp_site_url, app.builder.get_target_uri(context["pagename"])
124-
)
127+
page_url = urljoin(config.ogp_site_url, builder.get_target_uri(context["pagename"]))
125128
tags["og:url"] = page_url
126129

127130
# site name tag, False disables, default to project if ogp_site_name not
@@ -173,10 +176,10 @@ def get_tags(
173176
title=title,
174177
description=description,
175178
pagename=context["pagename"],
176-
srcdir=app.srcdir,
177-
outdir=app.outdir,
179+
srcdir=srcdir,
180+
outdir=outdir,
178181
config=config,
179-
env=app.env,
182+
env=env,
180183
)
181184
ogp_use_first_image = False
182185

@@ -306,7 +309,15 @@ def html_page_context(
306309
doctree: nodes.document,
307310
) -> None:
308311
if doctree:
309-
context["metatags"] += get_tags(app, context, doctree, app.config)
312+
context["metatags"] += get_tags(
313+
context,
314+
doctree,
315+
srcdir=app.srcdir,
316+
outdir=app.outdir,
317+
config=app.config,
318+
builder=app.builder,
319+
env=app.env,
320+
)
310321

311322

312323
def setup(app: Sphinx) -> ExtensionMetadata:

0 commit comments

Comments
 (0)