django-admin-inline-controls 0.1.0__tar.gz → 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/CHANGELOG.md +8 -0
  2. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/PKG-INFO +7 -7
  3. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/README.md +6 -6
  4. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/pyproject.toml +16 -3
  5. django_admin_inline_controls-0.1.1/src/django_admin_inline_controls/__init__.py +1 -0
  6. django_admin_inline_controls-0.1.0/src/django_admin_inline_controls/__init__.py +0 -1
  7. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/.github/workflows/compat-matrix.yml +0 -0
  8. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/.github/workflows/js-tests.yml +0 -0
  9. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/.github/workflows/pre-commit.yml +0 -0
  10. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/.github/workflows/pytest.yml +0 -0
  11. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/.github/workflows/release.yml +0 -0
  12. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/.gitignore +0 -0
  13. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/.pre-commit-config.yaml +0 -0
  14. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/CONTRIBUTING.md +0 -0
  15. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/LICENSE +0 -0
  16. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/biome.json +0 -0
  17. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/screenshots/.gitkeep +0 -0
  18. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/screenshots/actions.png +0 -0
  19. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/screenshots/footer-rows.png +0 -0
  20. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/screenshots/hero.png +0 -0
  21. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/screenshots/row-actions.png +0 -0
  22. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/screenshots/save-inline.png +0 -0
  23. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/themes/unfold/stacked.png +0 -0
  24. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/themes/unfold/tab-dark.png +0 -0
  25. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/themes/unfold/tabular.png +0 -0
  26. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/docs/themes/unfold.md +0 -0
  27. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/demo/__init__.py +0 -0
  28. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/demo/admin.py +0 -0
  29. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/demo/admin_unfold.py +0 -0
  30. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/demo/management/__init__.py +0 -0
  31. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/demo/management/commands/__init__.py +0 -0
  32. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/demo/management/commands/seed_demo.py +0 -0
  33. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/demo/migrations/0001_initial.py +0 -0
  34. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/demo/migrations/__init__.py +0 -0
  35. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/demo/models.py +0 -0
  36. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/example/__init__.py +0 -0
  37. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/example/settings.py +0 -0
  38. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/example/settings_unfold.py +0 -0
  39. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/example/urls.py +0 -0
  40. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/example/urls_unfold.py +0 -0
  41. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/example/wsgi.py +0 -0
  42. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/example/manage.py +0 -0
  43. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/package-lock.json +0 -0
  44. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/package.json +0 -0
  45. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/actions.py +0 -0
  46. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/apps.py +0 -0
  47. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/checks.py +0 -0
  48. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/contrib/__init__.py +0 -0
  49. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/contrib/filters.py +0 -0
  50. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/contrib/nested.py +0 -0
  51. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/contrib/unfold.py +0 -0
  52. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/controls.py +0 -0
  53. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/locale/es/LC_MESSAGES/django.mo +0 -0
  54. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/locale/es/LC_MESSAGES/django.po +0 -0
  55. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/mixins.py +0 -0
  56. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/py.typed +0 -0
  57. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/row_actions.py +0 -0
  58. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/static/django_admin_inline_controls/css/contrib/unfold.css +0 -0
  59. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/static/django_admin_inline_controls/css/core.css +0 -0
  60. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/static/django_admin_inline_controls/js/actions.js +0 -0
  61. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/static/django_admin_inline_controls/js/contrib/unfold.js +0 -0
  62. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/static/django_admin_inline_controls/js/core.js +0 -0
  63. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/static/django_admin_inline_controls/js/save.js +0 -0
  64. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/templates/django_admin_inline_controls/footer.html +0 -0
  65. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/templates/django_admin_inline_controls/inline.html +0 -0
  66. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/templates/django_admin_inline_controls/inline_response.html +0 -0
  67. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/templates/django_admin_inline_controls/row_actions.html +0 -0
  68. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/templates/django_admin_inline_controls/tfoot.html +0 -0
  69. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/templates/django_admin_inline_controls/toolbar.html +0 -0
  70. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/templatetags/__init__.py +0 -0
  71. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/templatetags/inline_controls.py +0 -0
  72. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/src/django_admin_inline_controls/types.py +0 -0
  73. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/__init__.py +0 -0
  74. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/admin.py +0 -0
  75. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/conftest.py +0 -0
  76. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/e2e/__init__.py +0 -0
  77. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/e2e/test_e2e.py +0 -0
  78. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/js/inline_controls.test.js +0 -0
  79. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/settings.py +0 -0
  80. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/templates/custom/footer.html +0 -0
  81. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/templates/custom/inline.html +0 -0
  82. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/templates/custom/tfoot.html +0 -0
  83. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/templates/custom/themed_tabular.html +0 -0
  84. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/templates/custom/toolbar.html +0 -0
  85. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_actions.py +0 -0
  86. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_checks.py +0 -0
  87. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_contrib.py +0 -0
  88. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_edge_cases.py +0 -0
  89. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_footer_rows.py +0 -0
  90. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_helpers.py +0 -0
  91. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_i18n.py +0 -0
  92. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_inline_controls.py +0 -0
  93. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_media.py +0 -0
  94. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_row_actions.py +0 -0
  95. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_save_inline.py +0 -0
  96. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_selectors.py +0 -0
  97. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/test_templates.py +0 -0
  98. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/tests/urls.py +0 -0
  99. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/uv.lock +0 -0
  100. {django_admin_inline_controls-0.1.0 → django_admin_inline_controls-0.1.1}/vitest.config.js +0 -0
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.1.1] - 2026-10-07
9
+
10
+ ### Fixed
11
+
12
+ - The README's screenshots and links on PyPI: the README keeps relative
13
+ paths, made absolute in the package's description when it is built
14
+ (`hatch-fancy-pypi-readme`).
15
+
8
16
  ## [0.1.0] - 2026-10-05
9
17
 
10
18
  First release.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: django-admin-inline-controls
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Pagination, filtering and ordering for Django admin inlines.
5
5
  Project-URL: Homepage, https://github.com/rodolvbg/django-admin-inline-controls
6
6
  Project-URL: Issues, https://github.com/rodolvbg/django-admin-inline-controls/issues
@@ -62,7 +62,7 @@ Description-Content-Type: text/markdown
62
62
  Pagination, filtering and sortable columns for Django admin inlines —
63
63
  without leaving the change form.
64
64
 
65
- ![A tabular inline with an action menu and two selected rows, filters, sorting by pages, View/Feature/Delete buttons on each row, Total and Average rows, page links and the Save books button](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/hero.png)
65
+ ![A tabular inline with an action menu and two selected rows, filters, sorting by pages, View/Feature/Delete buttons on each row, Total and Average rows, page links and the Save books button](https://raw.githubusercontent.com/rodolvbg/django-admin-inline-controls/HEAD/docs/screenshots/hero.png)
66
66
 
67
67
  - **Pagination**: page links, or infinite scroll that appends rows as you
68
68
  reach the end of the inline.
@@ -224,7 +224,7 @@ class AuthorAdmin(InlineControlsAdminMixin, admin.ModelAdmin):
224
224
  A **"Save books"** button (named after the inline's `verbose_name_plural`)
225
225
  appears in the inline's footer, next to the pagination.
226
226
 
227
- ![The "Save books" button after saving an edited row](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/save-inline.png)
227
+ ![The "Save books" button after saving an edited row](https://raw.githubusercontent.com/rodolvbg/django-admin-inline-controls/HEAD/docs/screenshots/save-inline.png)
228
228
 
229
229
  **How it works**
230
230
 
@@ -309,7 +309,7 @@ class AuthorAdmin(InlineControlsAdminMixin, admin.ModelAdmin):
309
309
  inlines = [BookInline]
310
310
  ```
311
311
 
312
- ![Inline actions: row checkboxes, the action menu and the selection count](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/actions.png)
312
+ ![Inline actions: row checkboxes, the action menu and the selection count](https://raw.githubusercontent.com/rodolvbg/django-admin-inline-controls/HEAD/docs/screenshots/actions.png)
313
313
 
314
314
  **How it works**
315
315
 
@@ -367,7 +367,7 @@ no "Go". The API is [django-inline-actions](https://github.com/escaped/django-in
367
367
  `DeleteAction`, `(request, obj, parent_obj=None)` — so its inlines move
368
368
  here by changing the imports.
369
369
 
370
- ![Row actions: View, Feature/Unfeature and Delete on each row](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/row-actions.png)
370
+ ![Row actions: View, Feature/Unfeature and Delete on each row](https://raw.githubusercontent.com/rodolvbg/django-admin-inline-controls/HEAD/docs/screenshots/row-actions.png)
371
371
 
372
372
  ```python
373
373
  from django_admin_inline_controls.actions import DefaultActionsMixin
@@ -449,7 +449,7 @@ class BookInline(InlineControlsMixin, admin.TabularInline):
449
449
  ]
450
450
  ```
451
451
 
452
- ![Total and Average rows below the Pages column](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/footer-rows.png)
452
+ ![Total and Average rows below the Pages column](https://raw.githubusercontent.com/rodolvbg/django-admin-inline-controls/HEAD/docs/screenshots/footer-rows.png)
453
453
 
454
454
  - Each row is a label and `{column: value}`. A value is an **aggregate**
455
455
  (`Sum`, `Avg`, `Count`, `Max`…, `filter=` included), a
@@ -579,7 +579,7 @@ available.
579
579
 
580
580
  ### Themes
581
581
 
582
- - [django-unfold](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/themes/unfold.md): `UnfoldInlineControlsMixin` (the
582
+ - [django-unfold](https://github.com/rodolvbg/django-admin-inline-controls/blob/HEAD/docs/themes/unfold.md): `UnfoldInlineControlsMixin` (the
583
583
  `unfold` extra).
584
584
 
585
585
  ## Customizing templates
@@ -9,7 +9,7 @@
9
9
  Pagination, filtering and sortable columns for Django admin inlines —
10
10
  without leaving the change form.
11
11
 
12
- ![A tabular inline with an action menu and two selected rows, filters, sorting by pages, View/Feature/Delete buttons on each row, Total and Average rows, page links and the Save books button](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/hero.png)
12
+ ![A tabular inline with an action menu and two selected rows, filters, sorting by pages, View/Feature/Delete buttons on each row, Total and Average rows, page links and the Save books button](docs/screenshots/hero.png)
13
13
 
14
14
  - **Pagination**: page links, or infinite scroll that appends rows as you
15
15
  reach the end of the inline.
@@ -171,7 +171,7 @@ class AuthorAdmin(InlineControlsAdminMixin, admin.ModelAdmin):
171
171
  A **"Save books"** button (named after the inline's `verbose_name_plural`)
172
172
  appears in the inline's footer, next to the pagination.
173
173
 
174
- ![The "Save books" button after saving an edited row](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/save-inline.png)
174
+ ![The "Save books" button after saving an edited row](docs/screenshots/save-inline.png)
175
175
 
176
176
  **How it works**
177
177
 
@@ -256,7 +256,7 @@ class AuthorAdmin(InlineControlsAdminMixin, admin.ModelAdmin):
256
256
  inlines = [BookInline]
257
257
  ```
258
258
 
259
- ![Inline actions: row checkboxes, the action menu and the selection count](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/actions.png)
259
+ ![Inline actions: row checkboxes, the action menu and the selection count](docs/screenshots/actions.png)
260
260
 
261
261
  **How it works**
262
262
 
@@ -314,7 +314,7 @@ no "Go". The API is [django-inline-actions](https://github.com/escaped/django-in
314
314
  `DeleteAction`, `(request, obj, parent_obj=None)` — so its inlines move
315
315
  here by changing the imports.
316
316
 
317
- ![Row actions: View, Feature/Unfeature and Delete on each row](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/row-actions.png)
317
+ ![Row actions: View, Feature/Unfeature and Delete on each row](docs/screenshots/row-actions.png)
318
318
 
319
319
  ```python
320
320
  from django_admin_inline_controls.actions import DefaultActionsMixin
@@ -396,7 +396,7 @@ class BookInline(InlineControlsMixin, admin.TabularInline):
396
396
  ]
397
397
  ```
398
398
 
399
- ![Total and Average rows below the Pages column](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/screenshots/footer-rows.png)
399
+ ![Total and Average rows below the Pages column](docs/screenshots/footer-rows.png)
400
400
 
401
401
  - Each row is a label and `{column: value}`. A value is an **aggregate**
402
402
  (`Sum`, `Avg`, `Count`, `Max`…, `filter=` included), a
@@ -526,7 +526,7 @@ available.
526
526
 
527
527
  ### Themes
528
528
 
529
- - [django-unfold](https://github.com/rodolvbg/django-admin-inline-controls/blob/main/docs/themes/unfold.md): `UnfoldInlineControlsMixin` (the
529
+ - [django-unfold](docs/themes/unfold.md): `UnfoldInlineControlsMixin` (the
530
530
  `unfold` extra).
531
531
 
532
532
  ## Customizing templates
@@ -1,12 +1,11 @@
1
1
  [build-system]
2
2
  build-backend = "hatchling.build"
3
- requires = [ "hatchling" ]
3
+ requires = [ "hatch-fancy-pypi-readme", "hatchling" ]
4
4
 
5
5
  [project]
6
6
  name = "django-admin-inline-controls"
7
- version = "0.1.0"
7
+ version = "0.1.1"
8
8
  description = "Pagination, filtering and ordering for Django admin inlines."
9
- readme = "README.md"
10
9
  keywords = [ "admin", "django", "filter", "inline", "ordering", "pagination" ]
11
10
  license = "MIT"
12
11
  license-files = [ "LICENSE" ]
@@ -34,6 +33,7 @@ classifiers = [
34
33
  "Programming Language :: Python :: 3.14",
35
34
  "Typing :: Typed",
36
35
  ]
36
+ dynamic = [ "readme" ]
37
37
  dependencies = [ "django>=4.2" ]
38
38
  optional-dependencies.dev = [
39
39
  "coverage[toml]>=7.4",
@@ -74,8 +74,21 @@ dev = [
74
74
  ]
75
75
 
76
76
  [tool.hatch]
77
+ # PyPI's description: the README with its relative links (images, docs)
78
+ # made absolute, so they work outside GitHub too. HEAD is the repo's
79
+ # default branch, whatever its name.
80
+ metadata.hooks.fancy-pypi-readme.content-type = "text/markdown"
81
+ metadata.hooks.fancy-pypi-readme.fragments = [ { path = "README.md" } ]
77
82
  build.targets.wheel.packages = [ "src/django_admin_inline_controls" ]
78
83
 
84
+ [[tool.hatch.metadata.hooks.fancy-pypi-readme.substitutions]]
85
+ pattern = '\]\((docs/[^)\s]+\.(?:png|jpe?g|gif|svg|webp))\)'
86
+ replacement = '](https://raw.githubusercontent.com/rodolvbg/django-admin-inline-controls/HEAD/\1)'
87
+
88
+ [[tool.hatch.metadata.hooks.fancy-pypi-readme.substitutions]]
89
+ pattern = '\]\(((?:docs/|CHANGELOG|CONTRIBUTING|LICENSE)[^)\s]*)\)'
90
+ replacement = '](https://github.com/rodolvbg/django-admin-inline-controls/blob/HEAD/\1)'
91
+
79
92
  [tool.ruff]
80
93
  target-version = "py310"
81
94
  line-length = 88