Skip to content

Commit

Permalink
Merge branch 'main' into dependabot/github_actions/actions/checkout-4
Browse files Browse the repository at this point in the history
  • Loading branch information
agoose77 authored Oct 29, 2023
2 parents 29b3b29 + 8fbb76c commit bf122b4
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 16 deletions.
8 changes: 4 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ exclude: >
repos:

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
rev: v4.5.0
hooks:
- id: check-json
- id: check-yaml
Expand All @@ -24,17 +24,17 @@ repos:
- id: isort

- repo: https://github.com/psf/black
rev: 22.6.0
rev: 23.10.0
hooks:
- id: black

- repo: https://github.com/PyCQA/flake8
rev: 5.0.2
rev: 6.1.0
hooks:
- id: flake8
additional_dependencies: [flake8-bugbear~=22.7]

- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.971
rev: v1.6.1
hooks:
- id: mypy
15 changes: 15 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Contributing

`sphinx-external-toc` is part of the executablebooks project, who also are responsible for `jupyter-book`.

We're excited you're here and want to contribute.

The Jupyter Book project is run by a community of people like you, we'd love to have you
help out!

Please take a look at the [Jupyter Book contributor guide](https://jupyterbook.org/en/stable/contribute/intro.html)
which steps you through the codebase and how to contribute to this project.
If you have any questions that aren't answered there, please let us know by
[opening an issue][link_issues]!

Thank you for you interest in contributing ✨
17 changes: 9 additions & 8 deletions sphinx_external_toc/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,6 @@ def insert_toctrees(app: Sphinx, doctree: nodes.document) -> None:
node_list: List[nodes.Element] = []

for toctree in doc_item.subtrees:

subnode = toctree_node()
subnode["parent"] = app.env.docname
subnode.source = doctree["source"]
Expand All @@ -245,13 +244,10 @@ def insert_toctrees(app: Sphinx, doctree: nodes.document) -> None:
wrappernode.append(subnode)

for entry in toctree.items:

if isinstance(entry, UrlItem):

subnode["entries"].append((entry.title, entry.url))

elif isinstance(entry, FileItem):

child_doc_item = site_map[entry]
docname = str(entry)
title = child_doc_item.title
Expand Down Expand Up @@ -326,13 +322,18 @@ def ensure_index_file(app: Sphinx, exception: Optional[Exception]) -> None:
exception is not None
or "html" not in app.builder.format
or app.config.master_doc == "index"
# TODO rewrite the redirect if master_doc has changed since last build
# TODO: rewrite the redirect if master_doc has changed since last build
or index_path.exists()
):
return

root_name = remove_suffix(app.config.master_doc, app.config.source_suffix)
# TODO the other way to do this would be to
# simply copy the contents of the root file? (this method was taken from jupyter-book)
redirect_text = f'<meta http-equiv="Refresh" content="0; url={root_name}.html" />\n'

if app.builder.name == "html":
redirect_url = f"{root_name}.html"
elif app.builder.name == "dirhtml":
redirect_url = f"{root_name}/index.html"

redirect_text = f'<meta http-equiv="Refresh" content="0; url={redirect_url}" />\n'
index_path.write_text(redirect_text, encoding="utf8")
logger.info("[etoc] missing index.html written as redirect to '%s.html'", root_name)
2 changes: 0 additions & 2 deletions sphinx_external_toc/parsing.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,6 @@ def _parse_doc_item(

toctrees = []
for toc_idx, toc_data in enumerate(subtrees_data):

toc_path = path if shorthand_used else f"{path}{toc_idx}/"

if not (isinstance(toc_data, Mapping) and items_key in toc_data):
Expand All @@ -209,7 +208,6 @@ def _parse_doc_item(
# generate items list
items: List[Union[GlobItem, FileItem, UrlItem]] = []
for item_idx, item_data in enumerate(items_data):

if not isinstance(item_data, Mapping):
raise MalformedError(
f"entry not a mapping type @ '{toc_path}{items_key}/{item_idx}'"
Expand Down
1 change: 0 additions & 1 deletion sphinx_external_toc/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ def create_site_from_toc(

# create files
for docname in chain(site_map, additional_files):

# create document
filename = docname
if not any(docname.endswith(ext) for ext in {".rst", ".md"}):
Expand Down
1 change: 0 additions & 1 deletion tests/test_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ def test_file_to_sitemap(path: Path, tmp_path: Path, data_regression):


def test_create_site_map_from_path(tmp_path: Path, data_regression):

# create project files
files = [
"index.rst",
Expand Down

0 comments on commit bf122b4

Please sign in to comment.