Skip to content

Commit

Permalink
Pin sphinxcontrib-* for docs and workaround sphinxemoji issue in conf.py
Browse files Browse the repository at this point in the history
  • Loading branch information
domdfcoding committed Jun 27, 2024
1 parent c9d73a4 commit 193d134
Show file tree
Hide file tree
Showing 7 changed files with 104 additions and 12 deletions.
13 changes: 9 additions & 4 deletions repo_helper/files/docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,16 @@

class DocRequirementsManager(RequirementsManager):
target_requirements = {
ComparableRequirement("sphinxemoji>=0.1.6"), # latest 0.2.0
ComparableRequirement("sphinx-notfound-page>=0.5"), # latest 0.8.3
ComparableRequirement("sphinx-copybutton>=0.2.12"), # latest 0.5.2
ComparableRequirement("sphinxemoji>=0.1.6"),
ComparableRequirement("sphinx-notfound-page>=0.5"),
ComparableRequirement("sphinx-copybutton>=0.2.12"),
ComparableRequirement("sphinx-pyproject>=0.1.0"),
# ComparableRequirement("sphinx-autodoc-typehints==1.11.1"),
ComparableRequirement("sphinxcontrib-applehelp==1.0.4"),
ComparableRequirement("sphinxcontrib-devhelp==1.0.2"),
ComparableRequirement("sphinxcontrib-htmlhelp==2.0.1"),
ComparableRequirement("sphinxcontrib-jsmath==1.0.1"),
ComparableRequirement("sphinxcontrib-qthelp==1.0.3"),
ComparableRequirement("sphinxcontrib-serializinghtml==1.1.5"),
}

def __init__(self, repo_path: PathLike, templates: Environment):
Expand Down
23 changes: 19 additions & 4 deletions repo_helper/templates/conf._py
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,30 @@ latex_elements = {
}


# Fix for pathlib issue with sphinxemoji on Python 3.9 and Sphinx 4.x
def copy_asset_files(app, exc):
from domdf_python_tools.compat import importlib_resources
from sphinx.util.fileutil import copy_asset

if exc:
return

asset_files = ['twemoji.js', 'twemoji.css']
for path in asset_files:
path_str = os.fspath(importlib_resources.files('sphinxemoji') / path)
copy_asset(path_str, os.path.join(app.outdir, '_static'))


def setup(app):
# 3rd party
from sphinx_toolbox.latex import better_header_layout
from sphinxemoji import sphinxemoji

app.connect("config-inited", lambda app, config: better_header_layout(config))
app.connect('build-finished', sphinxemoji.copy_asset_files)
app.add_js_file('https://unpkg.com/twemoji@latest/dist/twemoji.min.js')
app.add_js_file('twemoji.js')
app.add_css_file('twemoji.css')
app.connect("build-finished", copy_asset_files)
app.add_js_file("https://unpkg.com/twemoji@latest/dist/twemoji.min.js")
app.add_js_file("twemoji.js")
app.add_css_file("twemoji.css")
app.add_transform(sphinxemoji.EmojiSubstitutions)

{% for line in sphinx_conf_epilogue %}{{ line }}
Expand Down
12 changes: 12 additions & 0 deletions tests/test_files/test_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,12 @@ def test_ensure_doc_requirements(tmp_pathplus: PathPlus, demo_environment: Envir
"sphinx-notfound-page>=0.5",
"sphinx-pyproject>=0.1.0",
"sphinx-toolbox>=3.5.0",
"sphinxcontrib-applehelp==1.0.4",
"sphinxcontrib-devhelp==1.0.2",
"sphinxcontrib-htmlhelp==2.0.1",
"sphinxcontrib-jsmath==1.0.1",
"sphinxcontrib-qthelp==1.0.3",
"sphinxcontrib-serializinghtml==1.1.5",
"sphinxemoji>=0.1.6",
"toctree-plus>=0.6.1",
'',
Expand All @@ -163,6 +169,12 @@ def test_ensure_doc_requirements(tmp_pathplus: PathPlus, demo_environment: Envir
"sphinx-notfound-page>=0.5",
"sphinx-pyproject>=0.1.0",
"sphinx-toolbox>=3.5.0",
"sphinxcontrib-applehelp==1.0.4",
"sphinxcontrib-devhelp==1.0.2",
"sphinxcontrib-htmlhelp==2.0.1",
"sphinxcontrib-jsmath==1.0.1",
"sphinxcontrib-qthelp==1.0.3",
"sphinxcontrib-serializinghtml==1.1.5",
"sphinxemoji>=0.1.6",
"toctree-plus>=0.6.1",
'',
Expand Down
17 changes: 16 additions & 1 deletion tests/test_files/test_docs_/test_make_conf_alabaster_._py_
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,28 @@ latex_elements = {
}


# Fix for pathlib issue with sphinxemoji on Python 3.9 and Sphinx 4.x
def copy_asset_files(app, exc):
# 3rd party
from domdf_python_tools.compat import importlib_resources
from sphinx.util.fileutil import copy_asset

if exc:
return

asset_files = ["twemoji.js", "twemoji.css"]
for path in asset_files:
path_str = os.fspath(importlib_resources.files("sphinxemoji") / path)
copy_asset(path_str, os.path.join(app.outdir, "_static"))


def setup(app):
# 3rd party
from sphinx_toolbox.latex import better_header_layout
from sphinxemoji import sphinxemoji

app.connect("config-inited", lambda app, config: better_header_layout(config))
app.connect("build-finished", sphinxemoji.copy_asset_files)
app.connect("build-finished", copy_asset_files)
app.add_js_file("https://unpkg.com/twemoji@latest/dist/twemoji.min.js")
app.add_js_file("twemoji.js")
app.add_css_file("twemoji.css")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,28 @@ latex_elements = {
}


# Fix for pathlib issue with sphinxemoji on Python 3.9 and Sphinx 4.x
def copy_asset_files(app, exc):
# 3rd party
from domdf_python_tools.compat import importlib_resources
from sphinx.util.fileutil import copy_asset

if exc:
return

asset_files = ["twemoji.js", "twemoji.css"]
for path in asset_files:
path_str = os.fspath(importlib_resources.files("sphinxemoji") / path)
copy_asset(path_str, os.path.join(app.outdir, "_static"))


def setup(app):
# 3rd party
from sphinx_toolbox.latex import better_header_layout
from sphinxemoji import sphinxemoji

app.connect("config-inited", lambda app, config: better_header_layout(config))
app.connect("build-finished", sphinxemoji.copy_asset_files)
app.connect("build-finished", copy_asset_files)
app.add_js_file("https://unpkg.com/twemoji@latest/dist/twemoji.min.js")
app.add_js_file("twemoji.js")
app.add_css_file("twemoji.css")
Expand Down
17 changes: 16 additions & 1 deletion tests/test_files/test_docs_/test_make_conf_furo_._py_
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,28 @@ latex_elements = {
}


# Fix for pathlib issue with sphinxemoji on Python 3.9 and Sphinx 4.x
def copy_asset_files(app, exc):
# 3rd party
from domdf_python_tools.compat import importlib_resources
from sphinx.util.fileutil import copy_asset

if exc:
return

asset_files = ["twemoji.js", "twemoji.css"]
for path in asset_files:
path_str = os.fspath(importlib_resources.files("sphinxemoji") / path)
copy_asset(path_str, os.path.join(app.outdir, "_static"))


def setup(app):
# 3rd party
from sphinx_toolbox.latex import better_header_layout
from sphinxemoji import sphinxemoji

app.connect("config-inited", lambda app, config: better_header_layout(config))
app.connect("build-finished", sphinxemoji.copy_asset_files)
app.connect("build-finished", copy_asset_files)
app.add_js_file("https://unpkg.com/twemoji@latest/dist/twemoji.min.js")
app.add_js_file("twemoji.js")
app.add_css_file("twemoji.css")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,28 @@ latex_elements = {
}


# Fix for pathlib issue with sphinxemoji on Python 3.9 and Sphinx 4.x
def copy_asset_files(app, exc):
# 3rd party
from domdf_python_tools.compat import importlib_resources
from sphinx.util.fileutil import copy_asset

if exc:
return

asset_files = ["twemoji.js", "twemoji.css"]
for path in asset_files:
path_str = os.fspath(importlib_resources.files("sphinxemoji") / path)
copy_asset(path_str, os.path.join(app.outdir, "_static"))


def setup(app):
# 3rd party
from sphinx_toolbox.latex import better_header_layout
from sphinxemoji import sphinxemoji

app.connect("config-inited", lambda app, config: better_header_layout(config))
app.connect("build-finished", sphinxemoji.copy_asset_files)
app.connect("build-finished", copy_asset_files)
app.add_js_file("https://unpkg.com/twemoji@latest/dist/twemoji.min.js")
app.add_js_file("twemoji.js")
app.add_css_file("twemoji.css")
Expand Down

0 comments on commit 193d134

Please sign in to comment.