From 17c8ebed2d5f892cb074f5adf1a6310b804b397b Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 21 Jan 2026 05:36:09 +0100 Subject: [PATCH 1/3] Chore: Fix broken links / satisfy link checker --- CHANGES.md | 5 ++--- README.md | 4 ++-- docs/backlog.md | 2 +- docs/conf.py | 14 ++++++++++++++ docs/infocard.md | 2 +- docs/snippets/myst/infocard.md | 2 +- docs/snippets/rst/infocard.rst | 2 +- tests/test_hyper.py | 12 ++++++------ tests/test_snippets/snippet_myst_post_infocard.xml | 4 ++-- tests/test_snippets/snippet_myst_pre_infocard.xml | 4 ++-- tests/test_snippets/snippet_rst_post_infocard.xml | 6 +++--- tests/test_snippets/snippet_rst_pre_infocard.xml | 6 +++--- 12 files changed, 38 insertions(+), 25 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index c2d125d..c9d83ad 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,8 +7,7 @@ - Dependencies: Added compatibility with sphinx 7 - 9 ## v0.4.0 - 2024-06-27 -- Dependencies: Update to sphinx-design 0.6.0 - See also [sphinx-design change log]. +- Dependencies: Updated to [sphinx-design 0.6.0] - Remove support for Python 3.7 and 3.8, following `sphinx-design`. ## v0.3.2 - 2024-05-28 @@ -41,4 +40,4 @@ - Add "tag(s)" shortcuts, using roles `tag` and `tags` -[sphinx-design change log]: https://sphinx-design.readthedocs.io/en/furo-theme/changelog.html#v0-6-0-2024-05-23 +[sphinx-design 0.6.0]: https://github.com/executablebooks/sphinx-design/releases/tag/v0.6.0 diff --git a/README.md b/README.md index ebd3493..ef83e42 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ and maintaining [MyST Parser] and [sphinx-design]. [sphinx-design-elements]: https://sphinx-design-elements.readthedocs.io/ [badge-coverage]: https://codecov.io/gh/tech-writing/sphinx-design-elements/branch/main/graph/badge.svg -[badge-downloads-per-month]: https://pepy.tech/badge/sphinx-design-elements/month +[badge-downloads-per-month]: https://static.pepy.tech/badge/sphinx-design-elements/month [badge-license]: https://img.shields.io/github/license/tech-writing/sphinx-design-elements.svg [badge-docutils-versions]: https://img.shields.io/badge/docutils-0.19%20--%200.22-blue.svg [badge-package-version]: https://img.shields.io/pypi/v/sphinx-design-elements.svg @@ -80,7 +80,7 @@ and maintaining [MyST Parser] and [sphinx-design]. [badge-status]: https://img.shields.io/pypi/status/sphinx-design-elements.svg [badge-tests]: https://github.com/tech-writing/sphinx-design-elements/actions/workflows/main.yml/badge.svg [project-codecov]: https://codecov.io/gh/tech-writing/sphinx-design-elements -[project-downloads]: https://pepy.tech/project/sphinx-design-elements/ +[project-downloads]: https://pepy.tech/project/sphinx-design-elements [project-docutils]: https://docutils.sourceforge.io/ [project-license]: https://github.com/tech-writing/sphinx-design-elements/blob/main/LICENSE [project-pypi]: https://pypi.org/project/sphinx-design-elements diff --git a/docs/backlog.md b/docs/backlog.md index cf444c3..8a23de4 100644 --- a/docs/backlog.md +++ b/docs/backlog.md @@ -7,7 +7,7 @@ orphan: true - Documentation: Render on multiple themes, like `sphinx-design`. - From `sphinx-design` - horizontal card (grid row inside card, picture on left) - - subtitle for card (see ) + - subtitle for card (see ) - hyper: Maintain a synthetic intersphinx inventory for caching titles from extracted HTML pages, so that subsequent invocations do not need to extract titles over and over again. diff --git a/docs/conf.py b/docs/conf.py index d7e1337..d92e2a0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -34,6 +34,20 @@ } exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +# Configure link checker. +linkcheck_ignore = [ + "https://github.com/", + "https://jkalina.carrd.co/", + "https://simpleicons.org/", + "https://unsplash.com/", +] +linkcheck_anchors_ignore_for_url = [ + # Requires JavaScript. + # After opting-in to new GitHub issues, Sphinx can no longer grok the HTML anchor references. + "https://github.com/", +] + myst_enable_extensions = [ "attrs_block", "attrs_inline", diff --git a/docs/infocard.md b/docs/infocard.md index 3fbc17c..7f01008 100644 --- a/docs/infocard.md +++ b/docs/infocard.md @@ -22,7 +22,7 @@ without the maintenance nightmares of tables. :::{grid-item} :columns: 8 -[example.org/beagles](https://example.org/beagles) +[example.org](https://example.org/) A module for collecting votes from beagles, \ and for consolidating them. diff --git a/docs/snippets/myst/infocard.md b/docs/snippets/myst/infocard.md index 5807af2..9b7d25a 100644 --- a/docs/snippets/myst/infocard.md +++ b/docs/snippets/myst/infocard.md @@ -2,7 +2,7 @@ :::{grid-item} :columns: 8 -[example.org/beagles](https://example.org/beagles) +[example.org](https://example.org/) A module for collecting votes from beagles, \ and for consolidating them. diff --git a/docs/snippets/rst/infocard.rst b/docs/snippets/rst/infocard.rst index 5915a0f..6c8d3d8 100644 --- a/docs/snippets/rst/infocard.rst +++ b/docs/snippets/rst/infocard.rst @@ -3,7 +3,7 @@ .. grid-item:: :columns: 8 - `example.org/beagles `_ + `example.org `_ | A module for collecting votes from beagles, | and for consolidating them. diff --git a/tests/test_hyper.py b/tests/test_hyper.py index 349961c..ff52424 100644 --- a/tests/test_hyper.py +++ b/tests/test_hyper.py @@ -21,7 +21,7 @@ def test_hyper_http_url_valid(sphinx_doctree_no_tr: CreateDoctree): ptree == """ - Example Domain + https://example.org """.lstrip() ) @@ -152,7 +152,7 @@ def test_hyper_button_basic(render): == """ - Example Domain + https://example.org """.lstrip() ) @@ -166,7 +166,7 @@ def test_hyper_button_with_icon(render): assert ' - Example Domain + https://example.org """.lstrip() ) @@ -208,7 +208,7 @@ def test_hyper_card_minimal(render): - Example Domain + https://example.org @@ -234,7 +234,7 @@ def test_hyper_card_full(render): title - Example Domain + https://example.org footer diff --git a/tests/test_snippets/snippet_myst_post_infocard.xml b/tests/test_snippets/snippet_myst_post_infocard.xml index 9b6b7a0..1866560 100644 --- a/tests/test_snippets/snippet_myst_post_infocard.xml +++ b/tests/test_snippets/snippet_myst_post_infocard.xml @@ -10,8 +10,8 @@ - - example.org/beagles + + example.org A module for collecting votes from beagles, diff --git a/tests/test_snippets/snippet_myst_pre_infocard.xml b/tests/test_snippets/snippet_myst_pre_infocard.xml index 9b6b7a0..1866560 100644 --- a/tests/test_snippets/snippet_myst_pre_infocard.xml +++ b/tests/test_snippets/snippet_myst_pre_infocard.xml @@ -10,8 +10,8 @@ - - example.org/beagles + + example.org A module for collecting votes from beagles, diff --git a/tests/test_snippets/snippet_rst_post_infocard.xml b/tests/test_snippets/snippet_rst_post_infocard.xml index 6d84682..bf66f84 100644 --- a/tests/test_snippets/snippet_rst_post_infocard.xml +++ b/tests/test_snippets/snippet_rst_post_infocard.xml @@ -10,9 +10,9 @@ - - example.org/beagles - + + example.org + A module for collecting votes from beagles, diff --git a/tests/test_snippets/snippet_rst_pre_infocard.xml b/tests/test_snippets/snippet_rst_pre_infocard.xml index 6d84682..bf66f84 100644 --- a/tests/test_snippets/snippet_rst_pre_infocard.xml +++ b/tests/test_snippets/snippet_rst_pre_infocard.xml @@ -10,9 +10,9 @@ - - example.org/beagles - + + example.org + A module for collecting votes from beagles, From b1f0583e3dabf4b2c976e34fff9e0bc8d52e5236 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 21 Jan 2026 05:36:33 +0100 Subject: [PATCH 2/3] Chore: Update GitHub organization name --- docs/conf.py | 4 ++-- docs/css_classes.md | 2 +- docs/get_started.md | 2 +- docs/sandbox.md | 10 +++++----- pyproject.toml | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index d92e2a0..16dfa8a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -3,8 +3,8 @@ import os project = "Sphinx Design Elements" -copyright = "2023-2025, Panodata Developers" -author = "Panodata Developers" +copyright = "2023-2026, Tech Writing Developers" +author = "Tech Writing Developers" extensions = [ "myst_parser", diff --git a/docs/css_classes.md b/docs/css_classes.md index 1adc199..4783760 100644 --- a/docs/css_classes.md +++ b/docs/css_classes.md @@ -69,4 +69,4 @@ Taxi quer durch Bayern. :::: ::::: -[`compiled/style.css`]: https://github.com/panodata/sphinx-design-elements/blob/main/sphinx_design_elements/compiled/style.css +[`compiled/style.css`]: https://github.com/tech-writing/sphinx-design-elements/blob/main/sphinx_design_elements/compiled/style.css diff --git a/docs/get_started.md b/docs/get_started.md index 5b80d59..5612c02 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -3,7 +3,7 @@ # Getting Started ```{article-info} -:author: "[The Panodata Developers](https://github.com/panodata)" +:author: "[The Tech Writing Developers](https://github.com/tech-writing)" :date: "{sub-ref}`today`" :read-time: "1 min read" ``` diff --git a/docs/sandbox.md b/docs/sandbox.md index 5a4ed75..64693d3 100644 --- a/docs/sandbox.md +++ b/docs/sandbox.md @@ -9,7 +9,7 @@ After invoking `poe check`, and observing the software tests succeed, you should be ready to start hacking. ```shell -git clone https://github.com/panodata/sphinx-design-elements +git clone https://github.com/tech-writing/sphinx-design-elements cd sphinx-design-elements python3 -m venv .venv source .venv/bin/activate @@ -66,7 +66,7 @@ poe release ``` -[`compiled/style.css`]: https://github.com/panodata/sphinx-design-elements/blob/main/sphinx_design_elements/compiled/style.css -[`gridtable.py`]: https://github.com/panodata/sphinx-design-elements/blob/main/sphinx_design_elements/gridtable.py -[`infocard.py`]: https://github.com/panodata/sphinx-design-elements/blob/main/sphinx_design_elements/infocard.py -[`tag.py`]: https://github.com/panodata/sphinx-design-elements/blob/main/sphinx_design_elements/tag.py +[`compiled/style.css`]: https://github.com/tech-writing/sphinx-design-elements/blob/main/sphinx_design_elements/compiled/style.css +[`gridtable.py`]: https://github.com/tech-writing/sphinx-design-elements/blob/main/sphinx_design_elements/gridtable.py +[`infocard.py`]: https://github.com/tech-writing/sphinx-design-elements/blob/main/sphinx_design_elements/infocard.py +[`tag.py`]: https://github.com/tech-writing/sphinx-design-elements/blob/main/sphinx_design_elements/tag.py diff --git a/pyproject.toml b/pyproject.toml index 401e1e1..c767000 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -116,10 +116,10 @@ optional-dependencies.test = [ "sphinx-pytest<0.3", "verlib2", ] -urls.changelog = "https://github.com/panodata/sphinx-design-elements/blob/main/CHANGES.md" +urls.changelog = "https://github.com/tech-writing/sphinx-design-elements/blob/main/CHANGES.md" urls.documentation = "https://sphinx-design-elements.readthedocs.io/" urls.homepage = "https://sphinx-design-elements.readthedocs.io/" -urls.repository = "https://github.com/panodata/sphinx-design-elements" +urls.repository = "https://github.com/tech-writing/sphinx-design-elements" [tool.setuptools.packages.find] namespaces = false From 1765bbfc28f3d4d3b5421b32a64e1cfcab944a82 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 21 Jan 2026 05:37:26 +0100 Subject: [PATCH 3/3] CI: Add job `docs-linkcheck` --- .github/workflows/docs.yml | 61 ++++++++++++++++++++++++++++++++++++++ pyproject.toml | 5 +++- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..38b633e --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,61 @@ +--- +name: Docs + +on: + pull_request: + push: + branches: [ main ] + + # Allow job to be triggered manually. + workflow_dispatch: + +# Cancel in-progress jobs when pushing to the same branch. +concurrency: + cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.ref }} + +jobs: + + tests: + + runs-on: "ubuntu-latest" + strategy: + fail-fast: false + matrix: + python-version: [ + "3.14", + ] + + env: + PYTHON: ${{ matrix.python-version }} + UV_SYSTEM_PYTHON: true + + name: Link checker + steps: + + - name: Acquire sources + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + + - name: Set up uv + uses: astral-sh/setup-uv@v7 + with: + cache-dependency-glob: | + pyproject.toml + cache-suffix: ${{ matrix.python-version }} + enable-cache: true + version: "latest" + + - name: Set up project + run: | + + # Install package in editable mode. + uv pip install --editable='.[develop,docs]' + + - name: Run link checker + run: | + poe docs-linkcheck diff --git a/pyproject.toml b/pyproject.toml index c767000..267e932 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -238,7 +238,10 @@ docs-autobuild = [ { cmd = "sphinx-autobuild --open-browser --watch sphinx_design_elements docs docs/_build" }, ] docs-html = [ - { cmd = "sphinx-build -W --keep-going docs docs/_build" }, + { cmd = "sphinx-build --builder=html -W --keep-going docs docs/_build" }, +] +docs-linkcheck = [ + { cmd = "sphinx-build --builder=linkcheck -W --keep-going docs docs/_build" }, ] format = [